Probleme d'affichage

Fermé
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 20 févr. 2008 à 15:20
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 - 21 févr. 2008 à 17:31
Bonjour,

supposons que j'ai dans une ligne de ma BDD les mots clé suivants: atomes physique
dansune autre ligne de ma BDD les mots clé suivants : atomes

comment faire pour que quand je fais une recherche par mots clé si je tape : atomes physique il ne maffiche qu'une fois la ligne où les mots clé sont atomes physique et une fois la ligne où les mots clé sont atomes

actuellement cela maffiche : atomes physiques
atomes
atomes physique

car il regarde dabord pour atomes et il affiche les lignes correspondantes puis fais pareil avec physique sans regarder si il ne va pas réecrire la meme ligne....je ne sais pas tro quoi mettre dans mon if pour dire qu'il ne réaffiche pas une ligne déja affichée....

merci d'avance ...urgent!!

26 réponses

ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
21 févr. 2008 à 16:20
tu vois le probleme croy???
0
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
21 févr. 2008 à 17:03
Ca dépend des changements que tu as apportés... Normalement, son code devrait fonctionner, à part peut-être l'oubli d'un espace après le WHERE (et effectivement d'un point-virgule à la fin d'une instruction).
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
21 févr. 2008 à 17:06
voila le code que j'ai rentré :

<?php

mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("physique"); // Sélection de la base coursphp

$mots = explode(" ", $_POST['motscle']);

if(($_POST['auteur']=='') && ($_POST['titre']=='') && ($_POST['année']=='') && ($_POST['journal']=='') && ($_POST['motscle']!=''))
{
$laRequete = "SELECT * FROM base_physique WHERE ";
for( $rangMotclef=0; $rangMotclef < sizeof($mots); $rangMotclef ++)
{
if( $rangMotclef > 0 )
{
$laRequete .= " OR ";
$laRequete .= "motcle LIKE '%" . $mots[ $rangMotclef ] . "%'" ;
}
}

$reponse = mysql_query( $laRequete );
if( !$reponse )
{
$message = 'Requête invalide : ' . mysql_error() . "\n";
$message .= 'Requête complète : ' . $laRequete;
die($message);
}

while( $donnees = mysql_fetch_array($reponse) )
{
echo $donnees['id'] . "<br />";
?>


<?php
}
}
?>


mais ca me mets toujours :Requête invalide : 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 '' at line 1 Requête complète : SELECT * FROM base_physique WHERE




help me please
0
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
21 févr. 2008 à 17:20
C'est :
for($rangMotclef = 0 ; $rangMotclef < sizeof($mots) ; $rangMotclef++)
{
	if($rangMotclef > 0)
		$laRequete .= " OR ";
	$laRequete .= "motcle LIKE '%" . $mots[ $rangMotclef ] . "%'";
}

Ou :
for($rangMotclef = 0 ; $rangMotclef < sizeof($mots) ; $rangMotclef++)
{
	if($rangMotclef > 0)
	{
		$laRequete .= " OR ";
	}
	$laRequete .= "motcle LIKE '%" . $mots[ $rangMotclef ] . "%'";
}

Sachant que quand tu n'as qu'une seule instruction dans un bloc les accolades ne sont pas nécessaires.

J'ai testé le code sur l'une de mes tables et ça fonctionne très bien.
0

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

Posez votre question
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
21 févr. 2008 à 17:31
merci enax ca marche je vais essayer de continuer mon programme now..;
0
ladj59 Messages postés 322 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 29 décembre 2008 3
21 févr. 2008 à 17:31
merci aussi a croy biensur
0