Probleme dans la requete

Fermé
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 14 févr. 2008 à 10:36
 Alex - 14 févr. 2008 à 11:04
Bonjour,
je ne comprends pas pourquoi mais aparament ma requete ne marche pas .voici mon code :

<?php

mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("physique"); // Sélection de la base coursphp


$sql ="SELECT * FROM base_physique WHERE ";


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

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

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

?>
<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
}
}



je ne compreds pas pourquoi mais il ne m'affiche aucun resultat
help me please

10 réponses

carbooky Messages postés 57 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 1 mai 2008 11
14 févr. 2008 à 10:39
SELECT * FROM base_physique WHERE

deja ta une clause "where" qui est vide.
Met plutot: SELECT * FROM base_physique
0
Ta base se nomme physique, pourquoi utilise tu :

$sql ="SELECT * FROM base_physique WHERE ";


Ne devrais tu pas utiliser :

$sql ="SELECT * FROM physique WHERE ";
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
14 févr. 2008 à 10:46
nan ma base se nomme base_physique
en fait ce que je voulais faire c'est dire $sql="SELECT * FROM base_physique WHERE ";


et dans le cas ou $donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']=='')


alors je concatene a sql auteur LIKE '%".$_POST["auteur"]."%'";
et ensuite je fais ma requete $reponse = mysql_query($sql);

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


je veux faire ca car dans un autre cas je pars encore de $sql="SELECT * FROM base_physique WHERE ";
mais je concaténerais un autre truc si je veux par exemple faire une recherche par 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
14 févr. 2008 à 10:46
nan ma base se nomme base_physique
en fait ce que je voulais faire c'est dire $sql="SELECT * FROM base_physique WHERE ";


et dans le cas ou $donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']=='')


alors je concatene a sql auteur LIKE '%".$_POST["auteur"]."%'";
et ensuite je fais ma requete $reponse = mysql_query($sql);

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


je veux faire ca car dans un autre cas je pars encore de $sql="SELECT * FROM base_physique WHERE ";
mais je concaténerais un autre truc si je veux par exemple faire une recherche par titre....
0

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

Posez votre question
Hé bien alors tu ne dois pas mettre :

mysql_select_db("physique"); 


Mais :

mysql_select_db("base_physique"); 
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
14 févr. 2008 à 10:51
ben si physique c'est la bae et bse_physique c'est la table...
0
Ok, excuse moi.
Tente de vérifier la valeur de $sql avant la query avec un Echo, et renvoie nous le résultat s'il te plait.
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
14 févr. 2008 à 11:00
<?php
}
if (($donnees['auteur']==$_POST['auteur']) && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motsclé']==''))
{

$sql .=" auteur LIKE '%".$_POST["auteur"]."%'";
echo $sql;

$reponse = mysql_query($sql);

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

ca ne maffiche rien
en fait vu que je fais ma recherche sur une autre page et que je fais form action vers la page dont on parle depuis tout a lheure je me demande si il peut repéré ce qu'il y a dans le if
car si il ne reconnait pas qu'il est dans le if c'estr normal que ca marche pas
0
carbooky Messages postés 57 Date d'inscription mercredi 16 janvier 2008 Statut Membre Dernière intervention 1 mai 2008 11
14 févr. 2008 à 11:00
ta tester ta requete avec mysql ou autre je sais pas se que t'utilise? pour voir se qu'elle te ranvoi.
0
Je pense que tu as trouvé ta solution, en fait ton if test des valeur a la volé, mais ne les sauvegarde dans aucune variable, essaye tout bêtement d'incrémenter tout tes $_POST dans des variables, pour voir si cela peut provenir de là.
0