Une requete qui fonctionne super sur Mysql (19 enregistrements) et qui
oublie le premier enregistrement quand je la fait en PHP (plus que 18)
:
$sql1 = "SELECT A.id_a, B.nom_b, A.ord_a ";
$sql1 .= "FROM A, B ";
$sql1 .= "WHERE A.organisation = '".$orga."' ";
$sql1 .= "AND A.id_b = B.id_b ";
$sql1 .= "AND A.actif_a = 'OUI' ";
$sql1 .= "AND A.debut_a = 'OUI' ";
$sql1 .= "ORDER BY A.ord_a";
$res1 = mysql_query($sql1,$link);
avec un
while ($ligne_o = mysql_fetch_array($res1)) { ... }
pour afficher les valeurs.
Je dois avoir de la c**tte dans les yeux mais je comprend plus rien...
au secour ;oP
Une différence 19/18 lignes, ce n'est pas possible donc...
Ajouter un echo $sql1; juste avant cette ligne... la copier/coller dans phpMyAdmin : conclusion : 18 lignes également à mon avis :)
Ensuite comparer avec la requete initiale (celle qui retourne 19 lignes) pour comprendre la différence.
Antoine Dinimant
Une requete qui fonctionne super sur Mysql (19 enregistrements) et qui oublie le premier enregistrement quand je la fait en PHP (plus que 18)
...
$sql1 .= "WHERE A.organisation = '".$orga."' ";
au passage, tu peux écrire $sql1 .= "WHERE A.organisation = '$orga' "; c'est plus facile à lire !
avec un while ($ligne_o = mysql_fetch_array($res1)) { ... } pour afficher les valeurs.
qq suggestions :
- inverse l'ordre de tri, pour savoir si c'est le premier élément ou cet élément-là en particulier
- juste après mysql_query, affiche un mysql_numrows($res1) pour savoir si c'est PHP ou MySQL qui perd ton élément
- juste avant ta boucle, fait un mysql_data_seek($res1, 0) pour replacer le pointeur sur la première ligne ; si ça marche, c'est que tu as un autre mysql_fetch_truc avant
Une requete qui fonctionne super sur Mysql (19 enregistrements) et qui
oublie le premier enregistrement quand je la fait en PHP (plus que 18)
...
$sql1 .= "WHERE A.organisation = '".$orga."' ";
au passage, tu peux écrire
$sql1 .= "WHERE A.organisation = '$orga' ";
c'est plus facile à lire !
avec un
while ($ligne_o = mysql_fetch_array($res1)) { ... }
pour afficher les valeurs.
qq suggestions :
- inverse l'ordre de tri, pour savoir si c'est le premier élément ou cet
élément-là en particulier
- juste après mysql_query, affiche un mysql_numrows($res1) pour savoir
si c'est PHP ou MySQL qui perd ton élément
- juste avant ta boucle, fait un mysql_data_seek($res1, 0) pour replacer
le pointeur sur la première ligne ; si ça marche, c'est que tu as un
autre mysql_fetch_truc avant
Une requete qui fonctionne super sur Mysql (19 enregistrements) et qui oublie le premier enregistrement quand je la fait en PHP (plus que 18)
...
$sql1 .= "WHERE A.organisation = '".$orga."' ";
au passage, tu peux écrire $sql1 .= "WHERE A.organisation = '$orga' "; c'est plus facile à lire !
avec un while ($ligne_o = mysql_fetch_array($res1)) { ... } pour afficher les valeurs.
qq suggestions :
- inverse l'ordre de tri, pour savoir si c'est le premier élément ou cet élément-là en particulier
- juste après mysql_query, affiche un mysql_numrows($res1) pour savoir si c'est PHP ou MySQL qui perd ton élément
- juste avant ta boucle, fait un mysql_data_seek($res1, 0) pour replacer le pointeur sur la première ligne ; si ça marche, c'est que tu as un autre mysql_fetch_truc avant
blob
Je ferais un echo "<p>Nombre de lignes : ",mysqlnumrows($res1),"</p>;
pour avoir un accès direct au nombre de lignes retournées par le query, et vérifier que l'erreur que tu constates ne vient pas de ta boucle.
BLob
Je ferais un
echo "<p>Nombre de lignes : ",mysqlnumrows($res1),"</p>;
pour avoir un accès direct au nombre de lignes retournées par le query,
et vérifier que l'erreur que tu constates ne vient pas de ta boucle.