problème avec mon script

Répondre
cazmil
le 11/10/2004 à 15:53
cazmil
bonjour,

je dois pouvoir faire une recherche par thème, département, ville, nom du prospecteur, par fiche ayant le champs email vide, url vide, action à faire vide, bouton radio client coché... mais je bloque dans le script:
comment faire ?

dans mon formulaire : l'email, l'url, action a faire et client sont des chekbox et le thème, département, sont des listes déroulantes

j'ai commencé ce script mais il n'est pas au top, car je peux juste faire une recherche par email, url, action à faire et client, donc, merci de m'aider, svp

<?php 

mysql_select_db($db, $Connexion);
//Selon le cas choisi, on crée la clause WHERE
if ($theme != ""){
$requete = ' WHERE Theme=\"$theme\"';
}
elseif ($departement != ""){
$requete = ' WHERE departement=\"$departement\"';
}
elseif ($ville != ""){
$requete = " ville LIKE '%$ville%' ";
}
elseif ($nom_prospect !=""){
$requete = ' WHERE nom_prospect=\"$nom_prospect\"';
}
switch ($choix)
{
case 0 :
$choix = 'WHERE Chateau_email <>';
break;
case 1 :
$choix = 'WHERE Chateau_URL <>';
break;
case 2 :
$choix = 'WHERE Action_a_faire <>';
break;
case 3 :
$choix = 'WHERE Client ='oui' ;
break;
}
mysql_select_db($db, $ConnexionChateau);
$query_trie = "SELECT nom, rue, code_postal, ville, email, telecopie
FROM chateau $choix or $requete ";


merci de m'aider

[Message modifié le 11/10/2004 à 16:12 par Koboneil]
LA GLOBULE
le 11/10/2004 à 16:48
LA GLOBULE
Je ne comprend pas le coup des checkbox.

Si tu met des checkbox, le visiteur ne peut pas entrer par exemple (sur client) un nom de client ?

En clair, dans ton formulaire de recherche, y'a quoi ?
Quels sont les critères de recherche possible ?
cazmil
le 11/10/2004 à 17:04
cazmil
voici mon formulaire :
<code>
<td><Th&egrave;me :</td>
<td><select name="th&egrave;me" size="1" id="th&egrave;me" >
<option>Ch&acirc;teau</option>
<option>Mus&eacute;es</option>
<option>Salle d'exposition</option>
</select></td>
</tr>
<tr>
<td>D&eacute;partement :</td>
<td><select name="departement" size="1" >
<option></option>
<option>Ain</option>
<option>Aisne</option>
<option>Allier</option>
</select></td>
</tr>
<tr>
<td>Ville :</td>
<td><input name="ville" type="text" size="26"></td>
</tr>
<tr>
<td>Nom du prospect : </td>
<td height="15">
<input name="nom_prospect" type="text" id="nom_prospect" size="26">
</td>
</tr>
<tr align="center" valign="middle">
<td height="15"><p align="left" class="Style2">E-Mail <span class="Style4">(non vide)</span>
<input type="checkbox" name="choix" value="0">
</p></td>
<td height="15"><p align="left" class="Style2">Action &agrave; faire <span class="Style4">(non vide)</span>
<input type="checkbox" name="choix" value="2">
</td> </tr>
<tr>
<td>URL(non vide)
<input type="checkbox" name="choix" value="1">
</td>
<td>Client
<input type="checkbox" name="choix" value="3">
</td> </tr>
<tr>
<td><input name="recherche" type="submit" value="Chercher"></td>
</tr>
</table>
</div>
</form>

</code>

en fait le client dans ma table corespond à un champs char qui prends comme valeurs Y ou N (yes ou no)
cazmil
le 11/10/2004 à 17:07
cazmil
je le remets car c'est pas trop lisible :
voici mon formulaire :
(Le code posté par ce membre étant trop long, il a été automatiquement inséré dans le wall. Pour le voir, veuiller clicker sur [lien=http://www.lephpfacile.com/wall/lire_wall.php?wall=1702]ce lien[/lien])


en fait le client dans ma table corespond à un champs char qui prends comme valeurs Y ou N (yes ou no)
moogli
le 11/10/2004 à 17:31
moogli
salut,

tu définit mal tes option dans les select (tu ne leur donne pas de valeur)

=> <select name="kf">
<option value="truc">truc</option>
<option value="machin">machin</option>

ensuite je pense qu'il te manque quelque chose dans le traitement php de ton formulaire.
pour utiliser les variables renvoyé par le fomulaire tu doit utiliser $_POST ou $_GET (suivant la method du form).
si tu ne veut rien changer tu peut rajouter en haut
extract($_POST);
cela va te créer les variables présente dans $_POST (donc issu du formulaire).

Je pense que c'est pour sa que tes différent test ne sont pas validé ...

@+
Il en faut peu pour être heureux !!!!!
cazmil
le 11/10/2004 à 18:06
cazmil
oui, j'ai oublié de les mettre dans mon post mais j'ai bien mis les variables renvoyées par le formulaire , mon moteur de recherche fonctionne presque le seul problème est que lorsque je sélectionne un département dans la liste déroulante, exemple : Marne il va m'afficher les enregistrements de la Marne et de la Haute Marne alors que dans la requête j'avais mis :

$requete = ' WHERE departement=\"$departement\"';
$requete = ' WHERE ville=\"$ville\"';


idem au niveau des villes il ne m'affiche pas la ville exact que j'ai saisie
moogli
le 11/10/2004 à 18:14
moogli
J'ai compris,

quand tu définit ta requete t utilise des ' donc en fait tu va avoir sa dans requete

SELECT * FROM table WHERE departement=\"$departement\"

- tu protège les double quotes dans une chaine délimité par des simples quotes => inutile
- une chaine délimité par des ' ne sera pas interprété contrairement a des double quotes

=> $requete = ' WHERE departement="'.$departement.'"';
pareil pour les autres.

essai a vec sa je pense que sa va t'aider

Un petit conseil utilise mysql_error c'est très pratique
=> mysql_query($sql) or die ('Erreur SQL<br/>'.$sql.'<br/>'.mysql_error());

Je ne sais pas si tu l'utilise ta pas mis le code avec le query.

@+
Il en faut peu pour être heureux !!!!!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours