J'ai plusieurs champs dans une table DB PostgreSQL à laquelle je veux accéder dans une boucle PHP, car je veux que la même chose arrive à chacun d'entre eux.
Ils sont nommés similairement (3 minuscules), par exemple "mor", "gls", etc, et les différents noms sont stockés dans un tableau appelé $ fields.
Le noyau du code J'utilise est la suivante (je récupérer chaque ligne de la table, puis essayer de boucle à travers les champs):
$sql="select * from mytable order by id";
$result=pg_query($db_handle,$sql);
while ($row=pg_fetch_object($result))
{
foreach ($fields as $field)
{
$myfield=$row->$field;
<do something with $myfield>
}
}
Malheureusement, le row- de $ > Le champ $ ne fonctionne pas. Je reçois le texte suivant:
PHP Notice: Undefined property: stdClass::$mor
PHP Notice: Undefined property: stdClass::$gls
J'ai essayé diverses permutations de crochets et de citations, mais je ne peux pas sembler trouver la poussière magique. Est-ce faisable?
Merci.
objet (stdClass) # 1 (11) {... [ "mor"] => string (63) "bla bla" ...} Oui, il va revenir avec les données correctes. – donnek
Ok, mais il n'a pas de champ comme 'mor' -' mor' est une clé d'un tableau ici - essayez '$ row [$ field]'. – hsz
"mor", "gls", etc sont des champs de 3 lettres dans la ligne, et sont répertoriés dans le tableau $ fields. J'essaie d'utiliser ça pour les insérer dans la construction $ row-> afin de ne pas avoir à les nommer par nom. Malheureusement, $ row [$ field] ne fonctionne pas. – donnek