pb recuperation de données dans BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb recuperation de données dans BDD

Re: pb recuperation de données dans BDD

par AB » 06 juil. 2010, 00:10

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>

Re: pb recuperation de données dans BDD

par fafa1107 » 05 juil. 2010, 23:40

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

par AB » 05 juil. 2010, 23:15

Mais c'est déjà ordonné dans ta requête avec la clause ORDER BY

Re: pb recuperation de données dans BDD

par fafa1107 » 05 juil. 2010, 22:47

pour qu'il soit ordonnée

Re: pb recuperation de données dans BDD

par AB » 05 juil. 2010, 22:44

... mais je les voudraient dans $id[$i].
Pourquoi faire ?

Re: pb recuperation de données dans BDD

par fafa1107 » 05 juil. 2010, 22:18

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

par AB » 05 juil. 2010, 22:10

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

par fafa1107 » 05 juil. 2010, 19:03

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

par ouckileou » 05 juil. 2010, 18:30

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

par fafa1107 » 05 juil. 2010, 17:39

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

par ouckileou » 05 juil. 2010, 16:22

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.

pb recuperation de données dans BDD

par fafa1107 » 05 juil. 2010, 15:10

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.