Page 1 sur 1
pb recuperation de données dans BDD
Posté : 05 juil. 2010, 15:10
par fafa1107
Bonjour,
j'ai un petit probleme de recuperation de données dans une table, enfin pas de toutes les données seulement le champ id. En effet je peut recuperer toutes les données mais si l'id est superieur a 10 cela ne me recupere que les dizaines,le champs id est en int(25) et auto-increnent.
Voila mon code de recuperation des données:
<?$result = mysql_query('SELECT * FROM commentaire WHERE wallpaper='.$id.' ORDER BY id ASC LIMIT ' . $page_commentaire . ',4');
if($result)
{
for ($i = 1; $i <=5; $i++)
{
if($row = mysql_fetch_assoc($result))
{
$id[$i] = $row['id'];
$commentaire[$i] = $row['commentaire'];
$nickname[$i] = $row['nickname'];
}
}
}?>
Merci de votre aide.
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 16:22
par ouckileou
Si c'est un problème de récupération de données il nous faut le SQL exécuté, comment veux-tu qu'on sache la requête que tu exécutes avec ce code ?
Lis cet article :
sql-bases-donnees/php-sql-etapes-suivre ... 19378.html et appliques les conseils.
Et expliques nous comment tu as constaté ton soucis.
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 17:39
par fafa1107
alors j'ai essayé ma requete dans phpadmin elle fonctionne nickel, j'ai deux entrées dans ma table quand je demande de m'afficher l'id de la premiere entrée qui est egal a 8 cela fontionne , mais si je demande de m'afficher l'id de la deuxieme entrée qui est egal à 13 cela m'affiche 1??????
j'utilise ce code:
$db_host = "*****";
$db_user = "*******";
$db_pass = "********";
$db_name = "*******";
$link = mysql_connect($db_host,$db_user,$db_pass,true);
mysql_select_db($db_name,$link);
$result = mysql_query('SELECT * FROM commentaire WHERE wallpaper=31 ORDER BY id ASC LIMIT 0,4') ;;
if($result)
{
for ($i = 1; $i <=5; $i++)
{
if($row = mysql_fetch_assoc($result))
{
$id[$i] = $row['id'];
$commentaire[$i] = $row['commentaire'];
$nickname[$i] = $row['nickname'];
}
}
}
echo $id[2];
et donc echo $id[1] m'affiche 8 qui est le bon id mais echo $id[2] m'affiche 1 alors que l'id est de 13.
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 18:30
par ouckileou
Remplace ton for() et if() par un while(), ce sera plus simple déjà:
while ($row = mysql_fetch_assoc($result)) {
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 19:03
par fafa1107
voila c'est fait
$result = mysql_query('SELECT * FROM commentaire WHERE wallpaper=31 ORDER BY id ASC LIMIT 0,4') ;;
$i=1;
while ($i <= 10)
{$row = mysql_fetch_assoc($result);
$id[$i] = $row['id'];
$commentaire[$i] = $row['commentaire'];
$nickname[$i] = $row['nickname'];
$i++;
}
echo $id[1];
Mais cela ne resout pas le pb????
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 22:10
par AB
voila c'est fait
$result = mysql_query('SELECT * FROM commentaire WHERE wallpaper=31 ORDER BY id ASC LIMIT 0,4') ;;
$i=1;
while ($i <= 10)
{$row = mysql_fetch_assoc($result);
$id[$i] = $row['id'];
$commentaire[$i] = $row['commentaire'];
$nickname[$i] = $row['nickname'];
$i++;
}
echo $id[1];
Mais cela ne resout pas le pb????
Bah c'est un peu farfelu comme code puisqu'avec LIMIT 0,4 (y'a d'ailleurs un ; en trop après dans ton code) tu limites le nombre d'enregistrements retournés à 4 et qu'ensuite tu fait une condition while pour limiter le nombre à 10...
Essaies plutôt
while ($row = mysql_fetch_assoc($result))
{
echo $row['commentaire'].'<br />';
}
pour voir ce que cela retourne
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 22:18
par fafa1107
cela m'affiche bien les commentaires correspondant, et si je remplace 'commentaire' par 'id' cela m'affiche les bon id mais je les voudraient dans $id[$i].
lorsque j'utilise le code suivant
$result = mysql_query('SELECT * FROM commentaire WHERE wallpaper=31 ORDER BY id ASC LIMIT 0,4') ;;
$i=1;
while ($i <= 4)
{$row = mysql_fetch_assoc($result);
$id[$i] = $row['id'];
$commentaire[$i] = $row['commentaire'];
$nickname[$i] = $row['nickname'];
echo $row['id'].'<br />';
echo $id[$i].'<br />';
$i++;
}
cela m'affiche
8
8
13
1
pourquoi ce 1 et pas 13?????
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 22:44
par AB
... mais je les voudraient dans $id[$i].
Pourquoi faire ?
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 22:47
par fafa1107
pour qu'il soit ordonnée
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 23:15
par AB
Mais c'est déjà ordonné dans ta requête avec la clause ORDER BY
Re: pb recuperation de données dans BDD
Posté : 05 juil. 2010, 23:40
par fafa1107
si je veut afficher le premier commentaire recupereren haut a droite et le second en haut a gauche de ma page je fait comment pour connaitre le premier et le second avec $commentaire[$i]je m'y retrouve mais sans????
Re: pb recuperation de données dans BDD
Posté : 06 juil. 2010, 00:10
par AB
Faits par exemple comme cela :
//...
$tab_result = array();
while ($row = mysql_fetch_assoc($result))
{
$tab_result[] = $row['commentaire'];
}
Le premièr réultat, s'il existe, sera $tab_result [0], le second $tab_result [1] etc.
Donc dans ton code html, pour afficher le premier en haut à droite tu mets dans la balise <div> ou <p> correspondante :
<div><?php if (isset($tab_result[0])) echo $tab_result[0]?></div>