Tutorials

Eine immer größer werdende Tutorialdatenbank.

PHP-Fusion Core

Aktuelle PHP-Fusion Vollversionen und Updates

Addon Downloads

Alle Downloads garantiert Kostenlos

Support 24/7

24 Stunden, 7 Tage die Woche, das ganze Jahr.

Thema ansehen
PHP-Fusion.at - Offizielle Supportseite für PHP-Fusion » Support für die Versionen v7.00 und v7.01 » Allgemein
SHOW COLUMNS FROM Thema drucken
Benutzeravatar

Senior Mitglied


Rolly8-HL Geschrieben am 08.06.2017 um 16:46
 #1 Beitrag drucken Top
Hallo, habe da mal wieder eine Spezial Frage.
Ich suche eine Möglichkeit _access in verschiedenen Varianten auslesen zu lasse.
Momentan habe ich alles auf user_access geschrieben, Standart ist aber das die meisten DB ihre eigene haben.
Wie kann ich das im Script schreiben das die alle auf _access enden damit ausgelesen werden können um den
Wert zu verändern?

So wie ich es habe geht es schon, wollte es aber einwenig Dynamischer machen.


   $result = dbquery("SHOW TABLE STATUS ");
   if (dbrows($result)) {
      while ($data = dbarray($result)) {
         $result1 = dbquery("SHOW COLUMNS FROM ".$data['Name']." LIKE 'user_access'");
         if (dbrows($result1)) {
            while ($data1 = dbarray($result1)) {
               $subresult = dbquery("SELECT * FROM ".$data['Name']." WHERE user_access='".$_POST['cat_move_id']."' ");
               if (dbrows($subresult)) {
                  while ($subdata = dbarraynum($subresult)) {
         $update_101 = dbquery("UPDATE ".$data['Name']." SET user_access='".$_POST['group_move2']."' WHERE user_access='".$_POST['cat_move_id']."' ");
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Beiträge: 236 
http://rolly8-hl.de 
Benutzeravatar

Seiten Administrator


David Geschrieben am 11.06.2017 um 09:39
 #2 Beitrag drucken Top
Was genau magst du jetzt verändern an der Abfrage?
Liebe Grüße, euer David.


Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
Beiträge: 434 
http://www.php-fusion.at/ 
Benutzeravatar

Senior Mitglied


Rolly8-HL Geschrieben am 11.06.2017 um 14:46
 #3 Beitrag drucken Top
Wenn man sich die gesamte DB anschaut finde ich diese Einträge
article_cat_access
page_access
download_cat_access

und viele mehr, ich möchte jetzt alle *_access haben.
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Beiträge: 236 
http://rolly8-hl.de 
Benutzeravatar

Seiten Administrator


David Geschrieben am 16.06.2017 um 07:48
 #4 Beitrag drucken Top
Guten Morgen Rolly,

versuche mal bitte den nachfolgenden Code, ob dieser dass tut, was du möchtest.


// Get all Tables
$resultTables = dbquery("SHOW TABLE STATUS");
if (dbrows($resultTables)) {
   while ($dataTable = dbarray($resultTables)) {
   
      // Get all Access Columns
      $resultColumns = dbquery("SHOW COLUMNS FROM ".$dataTable['Name']." LIKE '%_access'");
      if (dbrows($resultColumns)) {
         while ($dataColumn = dbarray($resultColumns)) {

            // Handle Moving
            $subResult = dbquery("SELECT * FROM ".$dataTable['Name']." WHERE ".$dataColumn['Field']."='".$_POST['cat_move_id']."'");
            if (dbrows($subResult)) {
               while ($subData = dbarray($subResult)) {
                  dbquery("
                     UPDATE ".$dataTable['Name']." SET
                        ".$dataColumn['Field']."='".$_POST['group_move2']."'
                     WHERE ".$dataColumn['Field']."='".$_POST['cat_move_id']."'
                  ");
               }
            }
         }
      }
   }
}
Liebe Grüße, euer David.


Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
Beiträge: 434 
http://www.php-fusion.at/ 
Benutzeravatar

Senior Mitglied


Rolly8-HL Geschrieben am 16.06.2017 um 15:24
 #5 Beitrag drucken Top
Hallo @David
Habe es versucht, leider ein Fehler.

Zitat

Fatal error: Uncaught Error: Cannot use object of type PDOStatement as array

Ich benutze PHPv1.5 PDO

$subresult = dbquery("SELECT * FROM ".$data['Name']." WHERE ".$result1['Field']."='".$_POST['cat_move_id']."' ");
An der Stelle geht es dann nicht mehr weiter.
Hast Du da eine Idee?
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Beiträge: 236 
http://rolly8-hl.de 
Benutzeravatar

Seiten Administrator


David Geschrieben am 16.06.2017 um 17:30
 #6 Beitrag drucken Top
Ich schätze mal $result1 ist die Rückgabe eines dbquery() und nicht eines dbarray() ?

Falls ja liegt der Fehler wahrscheinlich darin.

Der Code von mir sollte ohne Änderungen funktionieren.
Liebe Grüße, euer David.


Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
Beiträge: 434 
http://www.php-fusion.at/ 
Benutzeravatar

Senior Mitglied


Rolly8-HL Geschrieben am 16.06.2017 um 19:38
 #7 Beitrag drucken Top
Ich habe es genauso gemacht wie Du es angegeben hast.

   $result = dbquery("SHOW TABLE STATUS ");
   if (dbrows($result)) {
      while ($data = dbarray($result)) {
         $result1 = dbquery("SHOW COLUMNS FROM ".$data['Name']." LIKE '%_access'");
         if (dbrows($result1)) {
            while ($data1 = dbarray($result1)) {
               $subresult = dbquery("SELECT * FROM ".$data['Name']." WHERE ".$result1['Field']."='".$_POST['cat_move_id']."' ");
               if (dbrows($subresult)) {
                  while ($subdata = dbarraynum($subresult)) {
         $update_101 = dbquery("UPDATE ".$data['Name']." ".$result1['Field']."='".$_POST['group_move2']."' WHERE ".$result1['Field']."='".$_POST['cat_move_id']."' ");

Wenn ich das so ändere

$result1 = dbarray("SHOW COLUMNS FROM ".$data['Name']." LIKE '%_access'");

erhalte ich einen anderen Fehler.

Zitat

Fatal error: Uncaught Error: Call to a member function setFetchMode() on string
dbarray('SHOW COLUMNS FR...') #1 {main} thrown
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Beiträge: 236 
http://rolly8-hl.de 
Benutzeravatar

Seiten Administrator


David Geschrieben am 16.06.2017 um 22:48
 #8 Beitrag drucken Top
$result1 sollte innerhalb der Datenbank-Anweisungen $data1 sein.

Siehe bei mir, da ist es $dataColumn welches von $resultColumn kommt.
Liebe Grüße, euer David.


Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
Beiträge: 434 
http://www.php-fusion.at/ 
Benutzeravatar

Senior Mitglied


Rolly8-HL Geschrieben am 17.06.2017 um 08:36
 #9 Beitrag drucken Top
Hallo, habe es jetzt 1:1 übernommen, geht alles wie es soll.
Kann aber immer noch nicht den Fehler erkennen, ist aber jetzt auch egal, werde mir das noch mal später anschauen wo ich den Fehler eingebaut habe.

Besten Dank für Deine Hilfe, hat mir jetzt einige Vorteile verschafft für weitere Entwicklungen, die da von Abhängig sind.

Zusammengefügt am 17. Juni 2017 um 08:50:00:
Nachtrag: Habe festgestellt im Rest vom Script befinden sich noch weitere $result1 die in etwa auf der selben Basis funktionieren, werden es noch mal komplett überarbeiten und jedem einen eindeutigen Namen zu weisen.
Bearbeitet von Rolly8-HL am 17.06.2017 um 08:50
Gruß Rolly8-HL
Was für Andere Wichtig ist muss für mich nicht genauso Wichtig sein!
Bin Dickkopf Unbelehrbar mache aus Protest nicht das was andere für Richtig halten!
Das gibt einem zu Denken oder?
Beiträge: 236 
http://rolly8-hl.de 
Benutzeravatar

Seiten Administrator


David Geschrieben am 17.06.2017 um 10:16
 #10 Beitrag drucken Top
Sehr gut, wichtig ist dass es klappt :-)
Liebe Grüße, euer David.


Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
Beiträge: 434 
http://www.php-fusion.at/ 
Springe ins Forum:
Anzeige


Anmelden


Registrieren Passwort vergessen

RSS Feeds

Feeds abonieren

Letzte News
Letzte Threads
Anzeige

© Copyright 2024 PHP-Fusion.at | Alle Rechte vorbehalten.

© 2016 Real Space. All rights reserved | Design by W3layouts | 19,866,345 eindeutige Besuche
Powered by PHP-Fusion copyright © 2002 - 2024 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.