Autor Beitrag
hjl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22
Erhaltene Danke: 2

Windows 10 Enterprise (64 Bit)
Delphi 7, Delphi XE2, Delphi Berlin (10.1), Delphi Tokyo (10.2)
BeitragVerfasst: Di 11.07.17 14:40 
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.


ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22
Erhaltene Danke: 2

Windows 10 Enterprise (64 Bit)
Delphi 7, Delphi XE2, Delphi Berlin (10.1), Delphi Tokyo (10.2)
BeitragVerfasst: 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
ausblenden 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.