|
Pomme 7540
| Posté : 17-02-2005 11:52
$req="SELECT * FROM annu_logements_foyers WHERE c04 LIKE \"Bonneuil\" OR c04 LIKE \"bonneuil\" AND c01 LIKE \"%$recherche%\" OR c02 LIKE \"%$recherche%\" OR c03 LIKE \"%$recherche%\" OR c04 LIKE \"%$recherche%\" OR c05 LIKE \"%$recherche%\" OR c06 LIKE \"%$recherche%\" OR c07 LIKE \"%$recherche%\" OR c08 LIKE \"%$recherche%\" OR c09 LIKE \"%$recherche%\" OR c11 LIKE \"%$recherche%\"";
Je fais un moteur de recherche pour un annuaire. Je fais une requete par ville. Ici je veux afficher les établissements concernant Bonneuil mais là il me sort tous les établissement j'ai du m'embrouiller avec les AND et OR... Quelqu'un pourrait me dire ou j'ai bugué ?
|  Profil
|
|
Boris 3430
| |
developpeur 24581
| Posté : 17-02-2005 21:50
c'est dans ce sens boris / la priorité des opérateurs existe aussi en SQL |  Profil E-mail www
|
|
Pomme 7540
| Posté : 21-02-2005 14:54
Ouais... Ca marche pas (et je dois livrer ce truc pour mercredi)
Le script PHP :
$req="SELECT * FROM annu_logements_foyers WHERE (c04 LIKE Bonneuil) AND (c01 LIKE '$recherche' OR c02 LIKE '$recherche' OR c03 LIKE '$recherche' OR c04 LIKE '$recherche' OR c05 LIKE '$recherche' OR c06 LIKE '$recherche' OR c07 LIKE '$recherche' OR c08 LIKE '$recherche' OR c09 LIKE '$recherche' OR c11 LIKE '$recherche')";
$res=mysql_query($req);
$tab=mysql_fetch_array($res) or die('Erreur SQL : '.mysql_error());
$test=$tab[c00];
if ($test!="") { echo "<ul>Aucune entrée ne correspond aux termes de recherche spécifiés.</ul>"; }
else {
$zzz=0;
while($tab=mysql_fetch_array($res)) { $ttt=1;
echo"<ul><a href=\"modules.php?ModPath=annuaireCLIC/fiche&ModStart=logements_foyer s&c00=".$tab[c00]."\">".$tab[c01]."</a>&l t;/ul>"; $zzz=1;
}
echo "opkokp";
}
La base de données :
CREATE TABLE `annu_logements_foyers` (
`c00` int(10) NOT NULL auto_increment,
`c01` text NOT NULL,
`c02` text,
`c03` text,
`c04` text,
`c05` text,
`c06` text,
`c07` text,
`c08` text,
`c09` text,
`c10` text,
`c11` text,
`c12` text,
`c13` text,
`c14` text,
`c15` text,
`c16` text,
`c17` text,
`c18` text,
`c19` text,
`c20` text,
`c21` text,
`c22` text,
`c23` text,
`c24` text,
`c25` text,
`c26` text,
`c27` text,
`c28` text,
`c29` text,
`c30` text,
`c31` text,
`c32` text,
`c33` text,
`c34` text,
`c35` text,
`c36` text,
`c37` text,
`c38` text,
`c39` text,
`c40` text,
`c41` text,
`c42` text,
`c43` text,
`c44` text,
`c45` text,
`c46` text,
`c47` text,
`c48` text,
`c49` text,
`c50` text,
`c51` text,
`c52` text,
`c53` text,
`c54` text,
`c55` text,
`c56` text,
`c57` text,
`c58` text,
`c59` text,
`active` int(1) NOT NULL default '0',
PRIMARY KEY (`c00`)
) TYPE=MyISAM AUTO_INCREMENT=13 ;
L'entrée avec Bonneuil :
INSERT INTO `annu_logements_foyers` VALUES (9, 'Bonneuil de Merde', NULL, NULL, 'Bonneuil', NULL, NULL, NULL, NULL, NULL, '0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
Normalement il devrait m'afficher l'entrée en question mais il m'affiche "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\site\boulot\clic\modules\annuaireCLIC\resultats-recherche.php on line 36
Erreur SQL : Unknown column 'Bonneuil' in 'where clause'"
|  Profil
|
|
Boris 3430
| Posté : 21-02-2005 16:11
Citation : Pomme
Ouais... Ca marche pas (et je dois livrer ce truc pour mercredi)
Le script PHP :
$req="SELECT * FROM `annu_logements_foyers` WHERE (c04 LIKE 'Bonneuil') AND (c01 LIKE '$recherche' OR c02 LIKE '$recherche' OR c03 LIKE '$recherche' OR c04 LIKE '$recherche' OR c05 LIKE '$recherche' OR c06 LIKE '$recherche' OR c07 LIKE '$recherche' OR c08 LIKE '$recherche' OR c09 LIKE '$recherche' OR c11 LIKE '$recherche')";
$res=mysql_query($req);
$tab=mysql_fetch_array($res) or die('Erreur SQL : '.mysql_error());
$test=$tab[c00];
if ($test!="") { echo " Aucune entrée ne correspond aux termes de recherche spécifiés. "; }
else {
$zzz=0;
while($tab=mysql_fetch_array($res)) { $ttt=1;
echo" "; $zzz=1;
}
echo "opkokp";
}
La base de données :
CREATE TABLE `annu_logements_foyers` (
`c00` int(10) NOT NULL auto_increment,
`c01` text NOT NULL,
`c02` text,
`c03` text,
`c04` text,
`c05` text,
`c06` text,
`c07` text,
`c08` text,
`c09` text,
`c10` text,
`c11` text,
`c12` text,
`c13` text,
`c14` text,
`c15` text,
`c16` text,
`c17` text,
`c18` text,
`c19` text,
`c20` text,
`c21` text,
`c22` text,
`c23` text,
`c24` text,
`c25` text,
`c26` text,
`c27` text,
`c28` text,
`c29` text,
`c30` text,
`c31` text,
`c32` text,
`c33` text,
`c34` text,
`c35` text,
`c36` text,
`c37` text,
`c38` text,
`c39` text,
`c40` text,
`c41` text,
`c42` text,
`c43` text,
`c44` text,
`c45` text,
`c46` text,
`c47` text,
`c48` text,
`c49` text,
`c50` text,
`c51` text,
`c52` text,
`c53` text,
`c54` text,
`c55` text,
`c56` text,
`c57` text,
`c58` text,
`c59` text,
`active` int(1) NOT NULL default '0',
PRIMARY KEY (`c00`)
) TYPE=MyISAM AUTO_INCREMENT=13 ;
L'entrée avec Bonneuil :
INSERT INTO `annu_logements_foyers` VALUES (9, 'Bonneuil de Merde', NULL, NULL, 'Bonneuil', NULL, NULL, NULL, NULL, NULL, '0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
Normalement il devrait m'afficher l'entrée en question mais il m'affiche "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\site\boulot\clic\modules\annuaireCLIC\resultats-recherche.php on line 36
Erreur SQL : Unknown column 'Bonneuil' in 'where clause'"
Comme ca, C pas mieux? t'a pas mis les ` autour de ton nom de table (Pas obligatoire, mais C mieux!), ni les ' autour de Bonneuil. Après, comme je l'ai dit, je suis pas expert en SQL, donc faudrais une confirmation... |  Profil E-mail www
|
|
Pomme 7540
| Posté : 21-02-2005 19:22
Il précise l'erreur maintenant...
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\site\boulot\clic\modules\annuaireCLIC\resultats-recherche.php on line 36
Erreur SQL : You have an error in your SQL syntax near ''annu_logements_foyers' WHERE (c04 LIKE 'Bonneuil') AND (c01 LIKE '' OR c02 LIKE' at line 1 |  Profil
|
|
Jireck 8502
| Posté : 22-02-2005 09:12
Pomme je t'est filer la bible sql.
lis et tu revera tout..; |  Profil
|
|
Pomme 7540
| Posté : 23-02-2005 01:41
Je l'ai lu mais va falloir queje la relise apperement... J'ai fait autrement entre temps. Je vais mettre résolu meme si ça l'est pas vraiment. |  Profil
|
|