Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
dproduction
Messages postés
39
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
bonsoir mes amis. j'ai eu a poster un problème de programmation php ici, et j'ai eu des réponses . merci. maintenant ce programme génére des erreurs. j'ai ce message. j'ai besoin d'un coup de main. merci d'avance
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\moteur de recherche\recherche.php on line 73
voici le code
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\moteur de recherche\recherche.php on line 73
voici le code
<?php
//Affichage des erreurs php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//connexion a la base de donnée
require_once "includes/connect_db.php";
//intialisation de la variable contenant les resultats
$resultats = "";
$query = !empty($_POST['query']) ? preg_replace("#[^#a-zA-Z ?0-9]#i", "", $_POST["query"]) : NULL;
$filtre = !empty($_POST["filtre"]) ? $_POST["filtre"] : NULL;
//traitement de la requette
if($query){
switch($filtre){
case "site entier" :
// a faire plustard
$sql = "";
break;
case "ecoles_maternelles" :
$sql = "SELECT id, pageecomater_nom AS nom FROM ecoles_maternelles WHERE pageecomater_nom LIKE ? OR pageecomater_contenance LIKE ?";
break;
case "ecoles_primaires" :
$sql = "SELECT id, pageecoprim_nom AS nom FROM ecoles_primaires WHERE pageecoprim_nom LIKE ? OR pageecoprim_contenance LIKE ?";
break;
default:
$sql ="";
break;
}
$datas = array("%".$query."%", "%".$query."%");
try{
$req = $db->prepare($sql);
$req ->execute($datas);
$result = $req->fetchAll(FECTH_OBJ);
}catch(Exception $e){
// en cas d'erreur :
echo " Erreur ! ".$e->getMessage();
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title> mini moteur de recherche</title>
<charset="utf8">
</head>
<body>
<div id="zonefiltres">
<p>
<form action ="" method='POST'>
<label for="query">entrer votre recherche: </label>
<input type= "text" name="query" maxlength="80" size="80" id="query" value="<?php echo $query; ?>"/><br>
<label for="filtre">recherche au niveau de:</label>
<select name="filtre" id="filtre">
<option value="site entier" <?php echo $filtre == "site entier" ? " selected='selected' ": ""; ?> >site entier</option>
<option value="ecole_maternelle" <?php echo $filtre == "ecole_maternelle" ? " selected='selected' ": ""; ?> >ecole_maternelle</option>
<option value="ecole_primaire" <?php echo $filtre == "ecole_primaire" ? " selected='selected' ": ""; ?>>ecole_primaire</option>
</select>
<br>
<input type="submit" value="Recherche">
</form>
</p>
</div>
<div id="resultats">
<?php
$count = !empty($result) ? count($result) : 0;
$strResult = $count>1 " résultats trouvés " : " résultat trouvé ";
echo $count ."".$strResult ."pour <strong>".htmlspecialchars($query)."</strong><hr/>";
if(!empty($count) {
foreach($result as $R){
echo '#'.$R->id.' - Titre: '.$R->nom; '<br/>';
}
}
?>
</div>
</body>
</html>
A voir également:
- Parse error: syntax error, unexpected t_constant_encapsed_string
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Eespt technical error ✓ - Forum TNT / Satellite / Réception
- Error 1962 ✓ - Forum PC fixe
- Fan error lenovo - Forum PC portable
- Bad request error 403 paiement ✓ - Forum Réseaux sociaux
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
bonsoir, ceci semble incorrect:
echo '#'.$R->id.' - Titre: '.$R->nom; '<br/>';peut-être un point au lieu du premier point-virgule?
Bonsoir
Il y a aussi une erreur sur une des lignes précédentes :
Il manque un ? pour l'opérateur ternaire. J'ajoute des () car je ne suis jamais sûr des priorités :
Il y a aussi une erreur sur une des lignes précédentes :
$strResult = $count>1 " résultats trouvés " : " résultat trouvé ";
Il manque un ? pour l'opérateur ternaire. J'ajoute des () car je ne suis jamais sûr des priorités :
$strResult = ($count>1) ? " résultats trouvés " : " résultat trouvé ";
merci bien le père. on direct ça a fonctionné. j'ai encore une nouvelle erreur
celle ci Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty
voici le code tout en entier
celle ci Erreur ! SQLSTATE[42000]: Syntax error or access violation: 1065 Query was empty
voici le code tout en entier
<?php
//Affichage des erreurs php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//connexion a la base de donnée
require_once "includes/connect_db.php";
//intialisation de la variable contenant les resultats
$resultats = "";
$query = !empty($_POST['query']) ? preg_replace("#[^a-zA-Z ?0-9]#i", "", $_POST["query"]) : NULL;
$filtre = !empty($_POST["filtre"]) ? $_POST["filtre"] : NULL;
//traitement de la requette
if($query){
switch($filtre){
case "site entier" :
// a faire plustard
$sql = "";
break;
case "ecoles_maternelles" :
$sql = "SELECT id, pageecomater_nom AS nom FROM ecoles_maternelles WHERE pageecomater_nom LIKE ? OR pageecomater_contenance LIKE ?";
break;
case "ecoles_primaires" :
$sql = "SELECT id, pageecoprim_nom AS nom FROM ecoles_primaires WHERE pageecoprim_nom LIKE ? OR pageecoprim_contenance LIKE ?";
break;
default:
$sql ="";
break;
}
$datas = array("%".$query."%", "%".$query."%");
try{
$req = $db->prepare($sql);
$req ->execute($datas);
$result = $req->fetchAll(FECTH_OBJ);
}catch(Exception $e){
// en cas d'erreur :
echo " Erreur ! ".$e->getMessage();
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title> mini moteur de recherche</title>
<charset="utf8">
</head>
<body>
<div id="zonefiltres">
<p>
<form action ="" method='POST'>
<label for="query">entrer votre recherche: </label>
<input type= "text" name="query" maxlength="80" size="80" id="query" value="<?php echo $query; ?>"/><br>
<label for="filtre">recherche au niveau de:</label>
<select name="filtre" id="filtre">
<option value="site entier" <?php echo $filtre == "site entier" ? " selected='selected' ": ""; ?> >site entier</option>
<option value="ecole_maternelle" <?php echo $filtre == "ecole_maternelle" ? " selected='selected' ": ""; ?> >ecole_maternelle</option>
<option value="ecole_primaire" <?php echo $filtre == "ecole_primaire" ? " selected='selected' ": ""; ?>>ecole_primaire</option>
</select>
<br>
<input type="submit" value="Recherche">
</form>
</p>
</div>
<div id="resultats">
<?php
$count = !empty($result) ? count($result) : 0;
$strResult = ($count>1) ? " résultats trouvés " : " résultat trouvé ";
echo $count ."".$strResult ."pour <strong>".htmlspecialchars($query)."</strong><hr/>";
if(!empty($count) ){
foreach($result as $R){
echo '#'.$R->id.' - Titre: '.$R->nom; '<br/>';
}
}
?>
</div>
</body>
</html>
S'il te dit que la requête est vide, c'est que la requête est vide.
Si la requête est vide, c'est que $filtre ne satisfait aucun des cas de ton switch. $filtre n'est pas égal à ecoles_maternelles ni à ecoles_primaires. Tu n'as qu'à afficher sa valeur pour le vérifier.
Quand on voit que $filtre vient du champ "filtre" de ton formulaire, on vérifie quelles valeurs il y a dans ton formulaire et là ça saute aux yeux.
Si la requête est vide, c'est que $filtre ne satisfait aucun des cas de ton switch. $filtre n'est pas égal à ecoles_maternelles ni à ecoles_primaires. Tu n'as qu'à afficher sa valeur pour le vérifier.
Quand on voit que $filtre vient du champ "filtre" de ton formulaire, on vérifie quelles valeurs il y a dans ton formulaire et là ça saute aux yeux.
ça marche pas
j'obtient toujours le mémé message d'erreur
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
<?php $count = !empty($result) ? count($result) : 0; $strResult = $count>1 " résultats trouvés " : " résultat trouvé "; echo $count ."".$strResult ."pour <strong>".htmlspecialchars($query)."</strong><hr/>"; if(!empty($count) { foreach($result as $R){ echo '#'.$R->id.' - Titre: '.$R->nom; '<br/>'; } } ?>