Parse error: syntax error, unexpected '$sql'
Résolu
legameur6810
Messages postés
45
Date d'inscription
mardi 21 novembre 2017
Statut
Membre
Dernière intervention
14 avril 2018
-
Modifié le 14 avril 2018 à 16:32
legameur6810 Messages postés 45 Date d'inscription mardi 21 novembre 2017 Statut Membre Dernière intervention 14 avril 2018 -
legameur6810 Messages postés 45 Date d'inscription mardi 21 novembre 2017 Statut Membre Dernière intervention 14 avril 2018 -
Bonjour ou bonsoir j'ai créer une barre de recherche en php.
Cette barre me serviras d'exemple pour mes prochain site.
Voici tout les codes avec leurs noms, si vous pouvez m'aider se seras génial.
Code : INDEX.PHP
Attention celui la il est en en html mais j'ai mis l’extension php
Ensuite le STYLE.CSS
Ensuite le code de la connexion à la base de données. (CNX.PHP)
Ensuite le code Javascript (search.js)
Ensuite le RESULT.PHP
Voila les codes si vous s'avez d'ou viens le problème, merci de me répondre
Legameur6810
Cette barre me serviras d'exemple pour mes prochain site.
Voici tout les codes avec leurs noms, si vous pouvez m'aider se seras génial.
Code : INDEX.PHP
Attention celui la il est en en html mais j'ai mis l’extension php
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Ma barre de recherche ajax</title> <link rel="stylesheet" type="text/css" href="style.css" charset="utf-8" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript" src="search.js"></script> </head> <body> <div class="wrap"> <div class="search"> <input type="text" name="recherche" class="text" id="recherche" /> </div> <div class="resultat" id="resultat"></div> </div> </body> </html>
Ensuite le STYLE.CSS
body, div, dl, dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { margin: 0; padding: 0; } table {border-collapse: collapse; border-spacing: 0;} fieldset, img { boder:0; } address, caption,cite,code,dfn,var { font-style: normal; font-weight: normal; } ol, ul {list-style: none;} q:before, q:after{ content:""; } abbr,acronym {border:0;} input {font-family:Arial,Verdana,sans-serif;font-size:12;} h1{color:#8A975B; line-height: 71px;float: left;} h1{color:#8A975B; line-height: 71px;float: left; width:100%;} body {background: url(img/back.png) repeat; font-family:Arial,Verdana,sans-serif; font-size: 12px; line-height: 16px;} .wrap{margin:0 auto; width: 800px;font-size: 16px;} .search {background:#1a1a1a; width: 700px; height: 86px;margin-top: 250px; padding-top: 80px;}7 .search,.text{width: 620px;height: 50px;float: left;font-family:Arial;font-size:20px;} .resultat {backround: #1a1a1a; width: 700px;height:86;padding-left:80px;font-family:Arial;font-size:10px;}
Ensuite le code de la connexion à la base de données. (CNX.PHP)
<?php $serveur = 'localhost'; $user = 'root'; $pass = ''; $bdd = 'tutoriel_search_ajax'; $port = '3306'; try { $cnx = new PDO('mysql:host='.$serveur.';port='.$port.';dbname='.$bdd, $user, $pass); } catch(PDOException $e) { echo $e->getMessage(); } ?>
Ensuite le code Javascript (search.js)
$(document).ready(function(){ $("#recherche").keyup(function(){ var recherche = $(this).val(); var data = 'motclef=' + recherche; if(recherche.length>2){ $.ajax({ type : "GET", url : "result.php", data : data, success: function(server_response){ $("#recherche").html(server_response).show(); } }); } }); });
Ensuite le RESULT.PHP
<?php include_once 'cnx.php'; if(isset($_GET['motclef'])){ $motclef = $_GET['motclef']; $q = array('motclef'=>$motclef. '%') $sql = 'SELECT title,message FROM blog WHERE title like :motclef or message like :motclef'; $req = $cnx->prepare($sql); $req->execute($q); $count = $req->rowCount($sql); if($count == 1){ while ($result = $req->fetch(PDO::FETCH_OBJ)){ echo " Titre :".$result->title."<br />Message:".$result->message; } }else { echo "Aucun resultat pour :".$motclef; } } ?>
Voila les codes si vous s'avez d'ou viens le problème, merci de me répondre
Legameur6810
A voir également:
- Parse error: syntax error, unexpected '$sql'
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Playback error reconnect in 3s (1/5) francais - Forum Box et Streaming vidéo
- Error 1962 ✓ - Forum PC fixe
- Whea error occt - Forum Processeur
- A javascript error occurred in the main process - Forum Matériel & Système
2 réponses
NHenry
Messages postés
15221
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
10 septembre 2025
366
14 avril 2018 à 16:37
14 avril 2018 à 16:37
Problème classique ...
Dans ce cas, toujours faire ces 3 vérifications :
- Ais-je oublié un ;
- Ais-je mal fermé une ( )
- Ais-je mal fermé { }
Contrôle de base, mais qui donne pas mal de réussites.
Dans ce cas, toujours faire ces 3 vérifications :
- Ais-je oublié un ;
- Ais-je mal fermé une ( )
- Ais-je mal fermé { }
Contrôle de base, mais qui donne pas mal de réussites.
jordane45
Messages postés
38486
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 août 2025
4 752
Modifié le 14 avril 2018 à 20:54
Modifié le 14 avril 2018 à 20:54
Bonjour,
Ton erreur vient de cette ligne
Ce n'est pas $sql que tu dois utiliser ici, mais la variable issue de ton execute :
De toutes façons... comme précisé dans la doc officielle du php, il est déconseillé d'utiliser la fonction rowCount sur le résultat d'une requête SELECT.
A la place, tu peux utiliser un COUNT comme ceci par exemple :
NB: Pense à utiliser des blocs TRY/CATCH a CHAQUE requête.
Je t'invite fortement à lire ceci
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
et cela :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ton erreur vient de cette ligne
$count = $req->rowCount($sql)
Ce n'est pas $sql que tu dois utiliser ici, mais la variable issue de ton execute :
$req
$req->execute($q);
De toutes façons... comme précisé dans la doc officielle du php, il est déconseillé d'utiliser la fonction rowCount sur le résultat d'une requête SELECT.
A la place, tu peux utiliser un COUNT comme ceci par exemple :
try{ $req = $cnx->prepare($sql); $req->execute($q); $result = $req->fetchAll(); //on stocke le resultat de la requete dans un array }catch(Exception $e){ echo "erreur dans la requête ! ".$e->getMessage(); } $count = count($resultat); //nombre de valeurs retournées par ta requête if(!empty($result)){ foreach($result as $R){ echo " Titre :".$R['title']."<br />Message:".$R['message']; } }
NB: Pense à utiliser des blocs TRY/CATCH a CHAQUE requête.
Je t'invite fortement à lire ceci
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
et cela :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
legameur6810
Messages postés
45
Date d'inscription
mardi 21 novembre 2017
Statut
Membre
Dernière intervention
14 avril 2018
Modifié le 14 avril 2018 à 21:10
Modifié le 14 avril 2018 à 21:10
Merci beaucoup.