Précédent
- 1
- 2
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).
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
<?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
C'est :
Ou :
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Précédent
- 1
- 2