Vous n'êtes pas identifié(e).
Pages :: 1
bonjour tout le monde,
j'ai un bug dans mon code PHP/MySQL lorsque j'essaye de faire une intersection entre deux tables.
le navigateur m'affiche l'erreur suivante:
Table 'intervention.sql_one' doesn't exist
voilà mon code:
$num_intervention= mysql_real_escape_string($_POST['num_intervention']);
$demandeur= mysql_real_escape_string($_POST['demandeur']);
$sql_one="select * from intervention_logiciel where $num_intervention=num_intervention";
$sql_demandeur="select * from intervention_logiciel where $demandeur=demandeur";
$sql="select * from sql_one
where (nom_demandeur)in (select nom_demandeur from sql_demandeur)";
$result=mysql_query($sql) or die(mysql_error());
bon le problème que j'ai et que, mon formulaire contient les deux champs num_intervention et demandeur ma petite application doit faire une recherche dans la base de données suivant les données entrées par l'utilisateur, or l'utilisateur peut remplir les deux champs ou bien remplir qu'un seul, donc le AND va pas me donner le résultat que j'attend lorsqu'un des champs de saisi dans le formulaire n'est pas rempli
Hors ligne
Bonjour,
Si la colonne demandeur est de type VARCHAR, alors il vous faut écrire :
Mais ce code est loin d'être optimisé au niveau interrogation base de données.
Pour éviter trop de casse je vous conseille, toujours dans le cas où la colonne demandeur est de type VARCHAR, de poser un index partiel sur la colonne demandeur, d'une longueur significative (au moins égale à 5) et de faire en sorte que votre collation soit case insensitive (insensible à la casse).
J'espère également et vivement que $num_intervention est numérique.
PS: Evitez la guerre des étoiles (SELECT * FROM ...)
Cordialement,
Jc
Dernière modification par Jc (07-09-2013 03:09:25)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
bonjour JC, et merci énormément, bon j'essayer le code que vous m'avez suggérer, mais le problème que, quand je laisse le champs demandeur vide et je fait ma recherche juste avec le champs num_intervention,, ça marche. mais au contraire quand j'essaye de faire une recherche en utilisant le champs demandeur, ou bien en utilisant les deux champs, ca marche pas, et ca m'affiche:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='john'' at line 1
(john est le demandeur que je saisi dans le formulaire.
voici mon code:
$sql_one="select * from intervention_logiciel";
$where_one='';
if ($num_intervention>0){$where_one=" WHERE num_intervention=$num_intervention ";}
if (strlen($demandeur)>0){$where_one="AND demandeur='$demandeur' ";}
if (substr($where_one,0,3)==='AND'){$where_one=str_replace('AND','WHERE',$where_one);}
$result=mysql_query($sql_one.$where_one) or die(mysql_error());
Dernière modification par marukun libre (07-09-2013 13:03:17)
Hors ligne
Bonjour,
C'est normal il vous faut rajouter un espace à la fin de la chaîne de caractères $sql_one, car vous l'avez retiré en recopiant.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
merci énormément Jc,
Dernière modification par marukun libre (07-09-2013 18:51:05)
Hors ligne
Pages :: 1