Aller au contenu

[PHP] Problème de row


DataMAX

Messages recommandés

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)

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)

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.

×
×
  • Créer...