Je ne comprends pas

Fermé
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 18 févr. 2008 à 18:36
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 19 févr. 2008 à 19:11
Bonjour,

$reponse = mysql_query("SELECT * FROM base_physique"); // Requête SQL
$sql ="SELECT * FROM base_physique WHERE ";
$donnees = mysql_fetch_array($reponse);

if (($donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{

$sql .="auteur LIKE '%".$_POST['auteur']."%'";
$reponse2 = mysql_query($sql);
}


voila ce que cela me mets: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\tests\cc.php on line 170(while ($donnees = mysql_fetch_array($reponse2))

en fait quand je tape lauteur qui est a la premiere ligne de ma base de données ca marche mais si c'est un autre ca ne marche pas il ne gére que la 1ére ligne de la base de données mais je ne vois pas quoi changer...

15 réponses

ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
18 févr. 2008 à 18:55
quelqu'un a une idée?
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 09:08
sil vous plait quelqu'un peut m'aider.... c'est urgent!!
0
masdmaah Messages postés 48 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 9 décembre 2016 2
19 févr. 2008 à 11:00
$reponse = mysql_query("SELECT * FROM base_physique"); // Requête SQL
$sql ="SELECT * FROM base_physique WHERE ";
while($donnees = mysql_fetch_array($reponse) )
{
if (($donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{

$sql .="auteur LIKE '%".$_POST['auteur']."%'";
$reponse2 = mysql_query($sql);
}
}

en mettant ça dans une boucle je pense que ça serait mieux, car la tu ne récupère qu'un seul résultat, e qui pourrait expliqué pourquoi ça marche avec le première auteur de ta base.

Je ne sais pas si je répond bien à ta question car tu met que l'erreur est sur while ($donnees = mysql_fetch_array($reponse2))
et on ne voit pas ça dans la partie du code que tu met

cdt
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 11:32
$reponse = mysql_query("SELECT * FROM base_physique"); // Requête SQL
$sql ="SELECT * FROM base_physique WHERE ";

while ($donnees = mysql_fetch_array($reponse))
{

if (($donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{

$sql .="auteur LIKE '%".$_POST['auteur']."%'";
$reponse2 = mysql_query($sql);
}
.....
while ($donnees = mysql_fetch_array($reponse2))
{
?>

<p>

<strong>L'auteur est</strong> : <?php echo $donnees['auteur']; ?><br />
Le titre est : <?php echo $donnees['titre']; ?> et l'année est <?php echo $donnees['année']; ?> <br />
Le journal est : <?php echo $donnees['journal']; ?> et le volume est :<?php echo $donnees['volume']; ?> <br />
La page est :<?php echo $donnees['page']; ?> <br/>
Les mots clé de la recherche sont:<?php echo $donnees['motsclé']; ?> <br/>
<a href="<?php echo $donnees['pdf']?>"> Clique ici pour voir le pdf associé </a>
</p>

<?php
}
?>

le probléme est que si il y a un auteur qui ne figure qu'une fois dans la base de données le code marche correctrerment e m'affiche ce que je veux
en revanche si un ateur(ou titre...) figure plus dune fois dans la base de données cela ne marche pas et m'affiche l'erreur suivante;
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\tests\cc.php on line 172
( la ligne 172 étant while ($donnees = mysql_fetch_array($reponse2))

merrci de m'aider please pour que cela marche dans tous les cas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 12:37
quelqu'un a une idée svp???
c'est assez urgent...
0
masdmaah Messages postés 48 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 9 décembre 2016 2
19 févr. 2008 à 12:41
Merci je comprend mieux ton probleme malheureusement je ne pourrais pas t'aider, car j'avais le même probleme.

Dès que j'avais du code html dans la boucle while, il me mettais une erreur
j'ai donc rangé les info de la requète dans un tableau.
et j'ai mis le code html dans un boucle for allant de 0 => count($tableau)

C'est de la bidouille mais ça marche, après je pense qu'il y a d'autes solutions.


Sinon dans le code html tu peux remplacer <?php echo $donnees['titre']; ?> par <?=$donnees['titre'] ?>.

++
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 14:30
<?php
$mots = explode(" ", $_POST['motsclé']);

if (($_POST['auteur']=='') && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']!=''))
{

for($i=0;$i<sizeof($mots);$i++)
{
$reponse = mysql_query("SELECT * FROM base_physique WHERE motsclé LIKE '%".$mots[$i]."%'"); // Requête SQL

while ($donnees = mysql_fetch_array($reponse))
{

?>
<p>

<Les mots clé de la recherche sont:<?php echo $donnees['motsclé']; ?> <br/>
</p>
<?php
}
}
}
?>

mon probléme est que si -j'ai une ligne dans ma base de données qui est : silicium precision atomes dans le champs motsclé
-j'ai une autre ligne ou il y a: atomes physique dans le champs motsclé

le probléme est que quand je tape atomes precision en recherche ca maffiche

Les mots clé de la recherche sont: atomes physique
Les mots clé de la recherche sont: silicium precision atomes
Les mots clé de la recherche sont: silicium preciion atomes


vous l'avez compris le probléme est qu'il m'affiche 2fois la ligne avec les mots clé silicium precision atomes
en gros il regarde dabord pour le mot atomes et affiche les ligne correspondantes puis regarde precision et affiche la ligne
il faudrait donc que je fasse un truc pour dire que si la ligneestr deja affichée je la réaffiche plus mais je ne sais pas comment faire
please help me
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 15:02
quelqu'un peut m'aider svp.....
0
neo2099 Messages postés 164 Date d'inscription vendredi 13 avril 2007 Statut Membre Dernière intervention 9 avril 2020 12
19 févr. 2008 à 15:04
Bonjour,

Ben une fois que la boucle while a trouver ce que tu chercher donc un SI dans ton while puis avant la fin du SI tu met un exit(); la boucle s'arretera. Voili voila si tu as besoin de plus de precision n'hesite pas a demander.
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 15:55
oue mais jvois pas quoi mettre dans mon if pour que cela fasse que si la ligne a déja été affiché elle ne se réaffiche plus...
help me plz
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 16:52
please need help
je suis bloqué sur une ereur pas dure je pense mais je tourne e nrond...
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 17:06
donc comment faire poru dire que si une ligne a déja été affiché on ne la réaffiche pas *???
je pensais utiliser les id dans un if mais je suis bloqué
aidez moi pleaes c'est urgent!!
0
masdmaah Messages postés 48 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 9 décembre 2016 2
19 févr. 2008 à 19:07
"aidez moi pleaes c'est urgent!!"
ce n'est pas en répétant ça qu'on va t'aider plus ;)
ce que je comprend c'est que tu n'exposes plus du tout le même pb qu'au début du post, le premier probleme est résolu?
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
19 févr. 2008 à 19:11
ben en fait le probléme c'était ça....j'avais mal interprété donc la il faudrait que je resolve ce probléme la...
désolé si je répéte mais c'est car c'est urgent...
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
19 févr. 2008 à 19:11
salut,

tu utilises la même variable dans les deux boucles.

essaie avec :
while ($donnees2 = mysql_fetch_array($reponse2)) 

et en modifiant après.
0