Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#16 27-06-2005 05:13:30

aurelie
Membre
Date d'inscription: 21-06-2005
Messages: 28

Re: requetes sql succesives

si c'est indifferent, je veux à la fois rouge et vert, c'est à dire que je veux toutes les possibilites, à la fois rouge et à la fois vert.
De ne pas avoir de couleur indifferent est bien mon probleme, je ne vois pas comment stocker dans une meme variable soit le choix rouge soit vert soit indifferent qui signifie tout  pour l'utiliser dans la requete finale.
Ou alors, je peut peut-être stocker dans une variable les choix définis tels rouge et vert et dans une autre le choix  indifferent-tout, et interroger dans ma requete finale l'une OU l'autre des deux variables ?
Du genre WHERE couleur = "$couleur" OR "$indiff".
D'ailleurs, j'ai deja essaye mais ca marchait pas.
Je crois que je suis pas tres claire!

Hors ligne

 

#17 27-06-2005 05:22:58

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: requetes sql succesives

mais, non
si c'est indifférent, tu ne mets aucune couleur.

Code:

if(@isset($_GET['couleur']) && $_GET['couleur'] != 'indifferent') {
$couleur=$_POST['couleur'];
$sqlC .= " WHERE couleur = '$couleur'"; // L'espace avant WHERE est important !!!
} 

ainsi, si c'est indifférent, tu n'aura pas de where, donc toutes les couleurs

Hors ligne

 

#18 27-06-2005 05:53:19

aurelie
Membre
Date d'inscription: 21-06-2005
Messages: 28

Re: requetes sql succesives

c'est ce que j'ai fait.
Ca fonctionne parfaitement si j'exploite le resultat de suite en affichant les resultats obtenus mais si j'utilie mon resultat dans une autre requete ca fonctionne pas.
Je m'explique:

Code:

<!--mon formulaire-->
<form name="recherche" method="post" action="recherche.php">
        <table>
               <tr>
            <td>couleur</td>
            <td><select name="couleur">
                <option value="indifferent" selected>indiff&eacute;rent</option>
                <option value="rouge">rouge</option>
                <option value="vert">vert</option>             
             </select>
              </font></td>
          </tr>
        </table>
        <p align="center"><font face="Verdana, Arial, Helvetica, sans-serif"> 
          </font></p>
                
        <div align="center">
          <input type="submit" value="Envoi">
          <input type="hidden" name="Valide" value="1">
        </div>
      </form>
<!--ma requete finale qui fonctionne sauf pour indifferent et dont j'ai besoin car en principe j'ai 5 select à interroger donc je dois regrouper les criteres-->
<?
$sqlC = "SELECT couleur FROM table"; 
if((@isset($_POST['couleur'])) && ($_GET['couleur'] != "indifferent")) 
{ 
$couleur=$_POST['couleur']; 
$sqlC .= " WHERE couleur = '$couleur'"; 
} 
$queryC = mysql_query($sqlC) or die (mysql_error()); 
$requete="SELECT * FROM table WHERE couleur='$couleur";
$resultat=mysql_query($requete) or die (mysql_error());
$Nresultat=count($resultat);
?>
<table>
<tr> 
    <td height="308" valign="top"> <table width="100%" cellpadding="4" cellspacing="4" border="0" bgcolor="#FFFF66">
        <tr>
          <td><font face="Verdana, Arial, Helvetica, sans-serif"><? echo 'Il y a '.mysql_num_rows($resultat).' resultat(s) correspondant à votre recherche'; ?></font></td>
        </tr>
</table>
<? echo '<br>';
echo '<table width="100%" cellpadding="4" cellspacing="4" border="0">';
while ($affiche=mysql_fetch_object($resultat))
{
echo '<tr><td><font face="Verdana, Arial, Helvetica, sans-serif">'.$affiche->Temoin_N.'</font></td></tr>';
}
echo '</table>';
}

:?

Hors ligne

 

#19 27-06-2005 07:43:18

palmivore
Modérateur global
Lieu: 49 - Maine et Loire
Date d'inscription: 07-04-2005
Messages: 1783
Site web

Re: requetes sql succesives

C'est normal. A la ligne de code ci-dessous, tu demandes $couleur. Or si $_POST['couleur'] est vide ou = à indifferent, $couleur n'est pas définie.

Code:

$requete="SELECT * FROM table WHERE couleur='$couleur"; 

Hors ligne

 

#20 27-06-2005 09:23:34

aurelie
Membre
Date d'inscription: 21-06-2005
Messages: 28

Re: requetes sql succesives

ben oui c'est bien mon probleme !! big_smile
voilà ce que j'ai tenté d'autre mais ca marche pas non plus, j'ai toujours 0 resultat:!: :


Code:

$sqlC = "SELECT couleur FROM table";
$couleur=$_POST['couleur'];
switch($couleur)
{
case 'rouge':
$sqlC="SELECT couleur FROM table WHERE couleur='rouge'";break;
case 'vert':
$sqlC="SELECT couleur FROM table WHERE couleur='vert'",break;
default:
$couleurIND=$couleur;break;
}
$queryC=mysql_query($sqlC) or die (mysql error());
$requete_finale="SELECT couleur FROM table WHERE couleur='$couleur' OR '$couleurIND'";
$resultat_final=mysql_query($requete_finale);

merci!

ps: je n'ai pas pu insérer les balises de code, la balise fermante n'étant pas reconnue

Hors ligne

 

#21 27-06-2005 09:45:38

kazhar
Ex-Webmaster
Lieu: Orléans
Date d'inscription: 25-06-2004
Messages: 3381
Site web

Re: requetes sql succesives

pour le pb du code, je vois ca

Hors ligne

 

#22 27-06-2005 11:00:19

aurelie
Membre
Date d'inscription: 21-06-2005
Messages: 28

Re: requetes sql succesives

ok merci

Hors ligne