SHOW COLUMNS FROM |
|
|
Senior Mitglied
|
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?
|
|
|
|
Seiten Administrator
|
David Geschrieben am 11.06.2017 um 09:39 |
|
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.
|
|
|
|
Senior Mitglied
|
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?
|
|
|
|
Seiten Administrator
|
David Geschrieben am 16.06.2017 um 07:48 |
|
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.
|
|
|
|
Senior Mitglied
|
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?
|
|
|
|
Seiten Administrator
|
David Geschrieben am 16.06.2017 um 17:30 |
|
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.
|
|
|
|
Senior Mitglied
|
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?
|
|
|
|
Seiten Administrator
|
David Geschrieben am 16.06.2017 um 22:48 |
|
$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.
|
|
|
|
Senior Mitglied
|
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?
|
|
|
|
Seiten Administrator
|
David Geschrieben am 17.06.2017 um 10:16 |
|
Sehr gut, wichtig ist dass es klappt :-) |
Liebe Grüße, euer David.
Aktiver PHP-Fusion Nutzer seit 3. September 2006
--------------------------------------------------------
PHP-Fusion Österreich Seitenbetreiber.
|
|
|