Aller au contenu

[PHP] Problème de row

Featured Replies

Posté(e)

Bonsoir/jour à tous,

Je débute en PHP, et je bute ( :dd: ) sur une erreur:

$noms_temp = mysql_query("SELECT username FROM users WHERE user_id = " . $_POST['expediteur'] . " OR user_id = " . $_POST['destinataire']);
$noms = mysql_fetch_row($noms_temp);

Je veux donc lancer une requète SQL et placer les résultats dans un tableau numéroté.

Ce dont je suis sûr:

- Mes variables $_POST. Vérifiées avec un echo avant.

- Ma requète SQL, elle me renvois le résultat voulu avec PhpMyAdmin.

- Aucune erreur de syntaxe à priori :dd:

- Un printr($noms) me renvois une seule ligne, alors qu'il devrait y en avoir deux.

Après avoir vaillamment luté, je m'en remet à vous :yes:

Merci d'avance.

Posté(e)

Bonjour,

Je pense que ça doit être ça la solution, faire une boucle pour afficher toutes les valeurs.

$noms_temp = mysql_query("SELECT username FROM users WHERE user_id = " . $_POST['expediteur'] . " OR user_id = " . $_POST['destinataire']);
$noms = mysql_fetch_row($noms_temp);
foreach( $nom as $toto )
 echo $toto . '<br />';

Posté(e)
  • Auteur

En fait je ne veux aucunement les afficher. Normalement, la requête devrait me renvoyer deux résultats, et j'aimerais les placer les deux dans mon row.

Seulement, dans le tableau il n'y a qu'un seul résultat, printr me le confirme :dd:

Posté(e)
En fait je ne veux aucunement les afficher. Normalement, la requête devrait me renvoyer deux résultats, et j'aimerais les placer les deux dans mon row.

Seulement, dans le tableau il n'y a qu'un seul résultat, printr me le confirme :dd:

var_dump($noms)

Posté(e)

Bonjour,

J'avais pas vu que tu utilisais mysql_fetch_row(), cette fonction ne renvoie qu'une ligne du résultat de ta requête mysql et avance le pointeur d'un cran. Si tu veux tous les enregistrements il te faut faire une boucle:

$noms_temp = mysql_query("SELECT username FROM users WHERE user_id = " . $_POST['expediteur'] . " OR user_id = " . $_POST['destinataire']);
$i=0;
while($row=mysql_fetch_row($noms_temp)){
 $nom[$i] = $row[0];
 $i++;
}

Ou alors utilise la fonction mysql_fetch_array() à la place:

$noms_temp = mysql_query("SELECT username FROM users WHERE user_id = " . $_POST['expediteur'] . " OR user_id = " . $_POST['destinataire']);
$noms = mysql_fetch_array($noms_temp);

Posté(e)
  • Auteur

Bon, ça ne fonctionne correctement qu'en séparant la requête en deux, et en utilisant mysql_fetch_array, comme tu me le conseillais. Merci à toi :incline:

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.