Php Mysql

Résolu
Charlotte -  
UgglyBoy Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'aurais besoin d'un peu d'aide. Je vous explique.
J'ai une page php sur laquel il y a 2 moteurs de recherches avec un bouton pr chaque et je souhaite que ces deux moteurs de recherche affichent sur une même page le résultat selon la recherche qui est utilisée. Je me doute qu'il me faut un if() mais je vois pas comment le mettre:
if (c'est le premier moteur de recherche alors tu utilises cette requête sql)
else(tu utilises l'autre requête)

Et puis j'ai une seconde petite question, j'ai une requête qui fonctionne quand je la teste ds ma BDD mais pas ds ma page php je ne comprends pas , la voici:

SELECT * FROM definition, terme, refLit, exemple WHERE definition.Code_T = terme.Code_T AND refLit.Code_Def = definition.Code_Def AND exemple.Code_Def = definition.Code_Def LIKE Nom_T = 'A*'

Et si je change comme ceci elle ne fonctionne ds aucun des 2

SELECT * FROM definition, terme, refLit, exemple WHERE definition.Code_T = terme.Code_T AND refLit.Code_Def = definition.Code_Def AND exemple.Code_Def = definition.Code_Def AND Nom_T LIKE 'A*'

Pouvez vous m'aider ???
Merci :)
A voir également:

10 réponses

koala. Messages postés 279 Date d'inscription   Statut Membre Dernière intervention   38
 
Pour la première question :
<form name="form1" method="post" action="./essai.php">  
	<center>
	  
	   <p> <input type="text" name="motscle" id="motscle" /></p>
	   <p> <input type="submit" name="submit1" value="requete 1"/> 
	<input type="submit" name="submit2" value="requete 2"/>  </p>
	</center>
</form>


<?php 

if (!empty($_POST['submit1'])){
	echo "requete 1";	
}

if (!empty($_POST['submit2'])){
	echo "requete 2";	
}

?>
0
Charlotte
 
merci bcp je vais essayer de ce pas
0
koala. Messages postés 279 Date d'inscription   Statut Membre Dernière intervention   38
 
Pour t'a deuxième question que renvoi comme erreur le page php ?
Montre comme tu insère la requête dans ton code .
0
Charlotte
 
Ma page php ne me renvoie rien elle tourne dans le vide comme si j'avais une boucle infinie
voici mon code:
<?php
include("connexion.php");

$query="SELECT * FROM definition, terme, refLit, exemple WHERE definition.Code_T = terme.Code_T AND refLit.Code_Def = definition.Code_Def AND exemple.Code_Def = definition.Code_Def AND Nom_T LIKE 'A*'";
$execute=mysql_query($query,$connexion);
while($req=mysql_fetch_row($execute))
{
echo $req[5]."<br>";
echo $req[1].$req[2]."<br>";
echo "EXEMPLE: ".$req[10]."<br>";
echo "LIT. ".$req[7]."<br>";
}
0
fiu
 
Bonjour,

dans le like en SQL, le joker est le % pas le *
qui plus est, le like est un prédicat à lui tout seul (cf 2e syntaxe)

je connais pas trop MySQL, mais essaie donc de remplacer ton * par un % pour voir
0
koala. Messages postés 279 Date d'inscription   Statut Membre Dernière intervention   38
 
J'aurai plutôt fait comme ca la requête :

SELECT * FROM definition
JOIN terme ON definition.Code_T = terme.Code_T
JOIN refLit ON refLit.Code_Def = definition.Code_
JOIN exemple ON exemple.Code_Def = definition.Code_Def
WHERE (la il manque le nom de table du champ).Nom_T LIKE '%A%'
0
Charlotte
 
J'avais déjà essayé avec les 2 symboles * et % et aucun des 2 ne fonctionnes. Et même en modifiant la requête avec JOIN ON ça ne marche pas non plus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
koala. Messages postés 279 Date d'inscription   Statut Membre Dernière intervention   38
 
Mais elle fonctionne dans l'interface MySQL
SELECT * FROM definition
JOIN terme ON definition.Code_T = terme.Code_T
JOIN refLit ON refLit.Code_Def = definition.Code_T
JOIN exemple ON exemple.Code_Def = definition.Code_Def
WHERE (la il manque le nom de table du champ).Nom_T LIKE '%A%'

Sinon quel est le message d'erreur??
0
Charlotte
 
il ne me donne aucun message d'erreur.
voila ce qu'il me dit et si je mets LIKE %A% il me donne tout les termes qui contiennent un A alors j'ai changé et j'ai mis A% qui veut dire ce qui commence par A et là il me donne aucun réponse.

MySQL n'a retourné aucun enregistrement. (traitement: 0.0003 sec.)
requête SQL:
SELECT *
FROM definition
JOIN terme ON definition.Code_T = terme.Code_T
JOIN refLit ON refLit.Code_Def = definition.Code_T
JOIN exemple ON exemple.Code_Def = definition.Code_Def
WHERE terme.Nom_T LIKE 'A%'
0
koala. Messages postés 279 Date d'inscription   Statut Membre Dernière intervention   38 > Charlotte
 
Cela veux dire qu'il n'y pas d'enregistrement dans la colonne Nom_T commençant par "A"

NOTA : l’opérateur LIKE effectue une recherche en tenant compte de la différence entre lettres majuscules et minuscules. Si vous voulez effectuer une recherche en ne tenant aucunement compte de la différence entre majuscules et minuscules, il convient d’utiliser les opérateurs LOWER et UPPER (voir ci dessous). Mais la plupart du temps, l'utilisation du like dans un SGBDR donné ignore la casse.
http://sqlpro.developpez.com/cours/sqlaz/select/#L3.4
0
UgglyBoy Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   64
 
... WHERE table.field LIKE("%string%"); essaie avec d'autre guillemets et essaie aussi avec des parenthèses
0
Charlotte
 
je désespère, en tout cas merci pour votre aide, mais j'ai essayé avec les parenthèses... rien ne marche et pourtant j'en ai pleins de noms qui commencent par un A majuscule. Et si je mets LIKE ('%A%') ça fonctionne mais pas comme je veux car il me donne tous les noms qui contiennent un a.
0
UgglyBoy Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   64
 
c'est normal, car
LIKE("a%") renvoie "Albert"
LIKE("%a%") renvoie "ballon"
LIKE("%a") renvoie "canada"
LIKE("a%a") renvoie "alexandra"
...
0
Charlotte
 
oui mais quand je mets "A%" il me renvoie rien du tout
0
Sangsi > Charlotte
 
procède par elimination

SELECT * FROM definition, terme WHERE definition.Code_T = terme.Code_T AND terme.Nom_T LIKE 'A%'

ensuite tu aumente tes jointures.

Tu peus exécuter cette requete ds mysql (phpmyadmin)
0
UgglyBoy Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   64
 
Et, bien sûr, tu es certaine d'avoir des mots commençant par A (majuscule)...
0
Charlotte
 
oui c'est moi qui l'ai créer la BDD
0
koala. Messages postés 279 Date d'inscription   Statut Membre Dernière intervention   38
 
Je sais pas c'est toi qui a fait la base SQL? Il y a peut-être un espace devant le A.
Ou sélectionne juste la colonne terme.Nom_T LIKE dans le SELECT
0
Charlotte
 
Bon c'est pas grave merci quand même à vous.
0
UgglyBoy Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   64
 
Est-ce qu'il se passe la même chose avec LIKE "B%" ?
0