Je souhaite faire un moteur de recherche avancée (plusieurs critères) or je ne trouve pas le moyen de le faire fonctionner correctement.
Voici mes 2 fichiers (une partie car très longs...)
Mon fichier rechercheavancée là ou on peut inscrire les recherches voulus)
<form method="POST" action="resultrechercheavanceeFR.php">
(decoupe ...)
<p><font face="Book Antiqua"><b>Limitation US</b>
<SELECT name="Limitation_US">
<OPTION selected>---Limitation---</OPTION>
<OPTION value="*">*</OPTION>
<OPTION value="0">0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
</SELECT>
<b>Limitation JAP</b>
<SELECT name="Limitation_JAP">
<OPTION selected>---Limitation---</OPTION>
<OPTION value="*">*</OPTION>
<OPTION value="0">0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
</SELECT> </font>
</p>
<p> </p>
<p><font color="#000080" face="Book Antiqua"><u><b>Rulings</b></u></font></p>
<p><font face="Book Antiqua">
<input type="text" name="Rulings_DE" size="100" value="" maxlength=""></font></p>
<p><font face="Book Antiqua"> <input type="submit" value="Envoyer" name="envoyer">
</font> </p>
</center>
</form>
Et ca le fichier resultat (si des champ ne sont pas dans le 1er c'est parce que j'ai découpé<?php
// On commence par récupérer les champs
$Nom_US = isset($_POST['Nom_US']) ? $_POST['Nom_US'] : '';
$Nom_FR = isset($_POST['Nom_FR']) ? $_POST['Nom_FR'] : '';
$Nom_DE = isset($_POST['Nom_DE']) ? $_POST['Nom_DE'] : '';
$Nom_IT = isset($_POST['Nom_IT']) ? $_POST['Nom_IT'] : '';
$Nom_JAP = isset($_POST['Nom_JAP']) ? $_POST['Nom_JAP'] : '';
$Nom_JAP_US = isset($_POST['Nom_JAP_US']) ? $_POST['Nom_JAP_US'] : '';
$Type_Carte_DE = isset($_POST['Type_Carte_DE']) ? $_POST['Type_Carte_DE'] : '';
$Type_DE = isset($_POST['Type_DE']) ? $_POST['Type_DE'] : '';
$Attribut_DE = isset($_POST['Attribut_DE']) ? $_POST['Attribut_DE'] : '';
$Etoiles = isset($_POST['Etoiles']) ? $_POST['Etoiles'] : '';
$ATK = isset($_POST['ATK']) ? $_POST['ATK'] : '';
$DEF = isset($_POST['DEF']) ? $_POST['DEF'] : '';
$Effet_DE = isset($_POST['Effet_DE']) ? $_POST['Effet_DE'] : '';
$Limitation_US = isset($_POST['Limitation_US']) ? $_POST['Limitation_US'] : '';
$Limitation_JAP = isset($_POST['Limitation_JAP']) ? $_POST['Limitation_JAP'] : '';
$Rulings_DE = isset($_POST['Rulings_DE']) ? $_POST['Rulings_DE'] : '';
// connexion à la base
$db = mysql_connect('***, '***', '***) or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('Cartes',$db) or die('Erreur de selection '.mysql_error());
mysql_select_db('Versions',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "SELECT * FROM Cartes LEFT JOIN Versions USING (Numero_Carte) WHERE Nom_US LIKE '%". $Nom_US ."%' OR Nom_FR LIKE '%". $Nom_FR ."%' OR Nom_DE LIKE '%". $Nom_DE ."%' OR Nom_IT LIKE '%". $Nom_IT ."%' OR Nom_JAP LIKE '%". $Nom_JAP ."%' OR Nom_JAP_US LIKE '%". $Nom_JAP_US ."%' OR Type_Carte LIKE '%". $Type_Carte ."%' OR Type_Carte_DE LIKE '%". $Type_Carte_DE ."%' OR Type_DE LIKE '%". $Type_DE ."%' OR Attribut_DE LIKE '%". $Attribut_DE ."%' OR Etoiles LIKE '%". $Etoiles ."%' OR ATK LIKE '%". $ATK ."%' OR DEF LIKE '%". $DEF ."%' OR Effet_DE LIKE '%". $Effet_DE ."%' OR Limitation_US LIKE '%". $Limitation_US ."%' OR Limitation_JAP LIKE '%". $Limitation_JAP ."%' OR Rulings_DE LIKE '%". $Rulings_DE ."%'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
(Decoupe...)
En fait si je met OR, il m'affiche tou et si je met AND il ne m'afficherien. Je suppose qu'en fait si je ne met rien dans un champ, il recherche rien donc voilà comment dois-je faire ?Je pense qu'il me manque un truc j'espère que quelqu'un puisse m'aider...
Merci