Entwickler-Ecke

Programmiersprachen (Server) - Umstellungsproblem für MySQL bei PHP7


hjl - Di 11.07.17 14:40
Titel: Umstellungsproblem für MySQL bei PHP7
Habe mal jetzt eine Frage zum PHP7.
PHP4 und PHP5 habe ich schon gekannt und ich muss gestehen, dass ich heute nicht mehr ganz auf dem Laufenden bin.

Es geht mir darum, eine für alle Tabellen mit unterschiedlicher Anzahl an Feldern allgemein programmierte Prozedur wieder zum Laufen zu bringen.
Vorher ermittelte ich die Feldnamen, weil ich insbesondere in besagter Prozedur bestimmte Felder nicht anzeigen lassen will.

Hier unten ist mein Code:
Die Feldnamen sind hier bereits ermittelt im array $fieldname, soweit habe ich es wieder hinbekommen. Dies konnte ich an einer Ausgabe erkennen.
Früher wurden auf den zuletzt eingelesenen Tabellensatz die einzelner Felder mal über die Indexnummer angesprochen, also $row[$i],
heute über die Feldnamen selbst, also z.B. $row['feldname'].
Doch hier geht es nicht mehr über die Indexnummer.
Mit $row[$fieldname[$i]] kommt zwar keine Fehlermeldung, aber so geht es auch nicht - so etwas in der Art bräuchte ich.



PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
$sql="SELECT * FROM ".$tabellenname

foreach ($pdo->query($sqlas $row

  for($i=0$i < anzfields; $i++) 
  { 
    if  ($fieldname[$i] != "Zeitstempel" && $fieldname[$i] != "AnzahlBilder" && 
        $fieldname[$i] != "Format" && $fieldname[$i] != "TitelURL" && $fieldname[$i] != "Titelbreite" && 
        $fieldname[$i] != "Titelhoehe" && $fieldname[$i] != "HomeURL" && $fieldname[$i] != "Schalterversion" && 
        $fieldname[$i] != "HintergrundURL" && $fieldname[$i] != "Tabelle" && $fieldname[$i] != "Hintergrundfarbe" && 
        $fieldname[$i] != "ThumbMaxBreite" && $fieldname[$i] != "ThumbMaxHoehe" && (!strpos($fieldname[$i],"_alt"))  
    { 
       if ($fieldtyp[$i] == "blob"
         $row[$fieldname[$i]] = AddHttpToWWW($row[$i]]); 

       echo "<TD BGCOLOR=BBFFBB><FONT FACE=\"Verdana, Arial, Helvetica\" SIZE=2 COLOR=000000>".$row[$fieldname[$i]]."</TD>\n"
     } 
  } 
}


Moderiert von user profile iconMartok: PHP-Tags hinzugefügt


hjl - Mi 12.07.17 09:18

Das Problem ist schon gelöst.

Ganz nebenbei: bei anzfields vergaß ich $anzfields zu schreiben. Das war aber auch nicht die Ursache.

Statt mit PDO bin ich herangegangen mit

PHP-Quelltext
1:
2:
3:
4:
5:
$con = mysqli_connect($server,$user,$passwort,$db);
$sql = "SELECT * FROM ".$tabellenname
if ($result = mysqli_query($con,$sql)) 
  while ($row = mysqli_fetch_array($result)) 
    ...

Damit kann ich dann auch wieder über die Feldindexnummer, also mit $row[$i] auf die eingelesenen DB-Spalten-Inhalte zugreifen.