Requete avec condition

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 : Requete avec condition

par Gico » 10 janv. 2006, 02:08

merci
je vais regarder ça de prêt

par Truc » 09 janv. 2006, 21:45

pour simplifier tu peux construire la requete en fonction de l'existence des éléments.
mysql_select_db($database_connexioncentrale_db, $connexioncentrale_db);

$query_rsArticle = "SELECT articles.ID, articles.reference, marque.marque, marque.id, articles.marqueID,categorie.categorie, articles.categorieID  FROM articles, marque, categorie WHERE ";



if ($colmarque_rsArticle != "1")
{
   $query_rsArticle .= sprintf(" articles.marqueID=%s AND", $colmarque_rsArticle);
}



if($colCat_rsArticle != "1")  
{
   $query_rsArticle .=  sprintf(" articles.categorieID=%s ", $colCat_rsArticle); 
} 
else $query_rsArticle .= " 1=1 "; // permet de ne pas avoir un "AND" en fin de requete si la 1ere condition existe et pas la 2nde



$query_rsArticle .=" AND marque.id=articles.marqueID AND categorie.ID=articles.categorieID ORDER BY articles.prix ASC";

$query_limit_rsArticle = sprintf("%s LIMIT %d, %d", $query_rsArticle, $startRow_rsArticle, $maxRows_rsArticle);
$rsArticle = mysql_query($query_limit_rsArticle, $connexioncentrale_db) or die(mysql_error());
$row_rsArticle = mysql_fetch_assoc($rsArticle);

Requete avec condition

par Gico » 09 janv. 2006, 16:23

Bonjour.

J'ai une requète avec des conditions, je ne parvient pas à la faire marcher comme je veux:
$colmarque_rsArticle = "1";
if (isset($_GET['VARmarque'])) {
  $colmarque_rsArticle = (get_magic_quotes_gpc()) ? $_GET['VARmarque'] : addslashes($_GET['VARmarque']);
}
$colCat_rsArticle = "1";
if (isset($_GET['VARCat'])) {
  $colCat_rsArticle = (get_magic_quotes_gpc()) ? $_GET['VARCat'] : addslashes($_GET['VARCat']);
}
mysql_select_db($database_connexioncentrale_db, $connexioncentrale_db);
$query_rsArticle = sprintf("SELECT articles.ID, articles.reference, marque.marque, marque.id, articles.marqueID,categorie.categorie, articles.categorieID  FROM articles, marque, categorie WHERE ( ( articles.marqueID=%s OR articles.categorieID=%s) OR(articles.marqueID=%s AND articles.categorieID= %s)) AND marque.id=articles.marqueID AND categorie.ID=articles.categorieID   ORDER BY articles.prix ASC", $colmarque_rsArticle,$colCat_rsArticle,$colmarque_rsArticle,$colCat_rsArticle);
$query_limit_rsArticle = sprintf("%s LIMIT %d, %d", $query_rsArticle, $startRow_rsArticle, $maxRows_rsArticle);
$rsArticle = mysql_query($query_limit_rsArticle, $connexioncentrale_db) or die(mysql_error());
$row_rsArticle = mysql_fetch_assoc($rsArticle);
Mon Problème vient du Where, la première partie fonctionne mais la seconde est ignorée. En fait je voulais que le script affiche un resultat si une des deux variables existe, sans prendre en compte celle qui n'existe pas. Mais que si les deux variables existes alors la requete les prennent toutes deux en compte. En fait donc, je n'ai jamais de reponse avec une evaluation croisée des deux variables...
merci