Parse error: syntax error, unexpected '''
Résolu/Fermé
Kevinteger
-
27 mai 2008 à 19:05
Kevinteger Messages postés 9 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 28 mai 2008 - 28 mai 2008 à 13:08
Kevinteger Messages postés 9 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 28 mai 2008 - 28 mai 2008 à 13:08
A voir également:
- Parse error: syntax error, unexpected '''
- Eespt technical error ✓ - Forum TNT / Satellite / Réception
- Error 0x80070643 - Accueil - Windows
- Cpu over temperature error - Forum Matériel & Système
- Fan error lenovo - Forum Refroidissement
- Error 10 pioneer ✓ - Forum Autoradio
4 réponses
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
27 mai 2008 à 19:28
27 mai 2008 à 19:28
Bonjour,
Je te déconseille d'utiliser la fonction print pour afficher des données. Il me semble que pour les tableaux il faut utiliser, par exemple {$data['terme']} si tu utilises cette fonction.
Moi (et une majeure partie des utilisateurs de php que je connais) je préfère utiliser echo "...";
Et tu as oublié les {} de ton while
Essaye çà :
Je te déconseille d'utiliser la fonction print pour afficher des données. Il me semble que pour les tableaux il faut utiliser, par exemple {$data['terme']} si tu utilises cette fonction.
Moi (et une majeure partie des utilisateurs de php que je connais) je préfère utiliser echo "...";
Et tu as oublié les {} de ton while
Essaye çà :
<?php // on se connecte à MySQL $db = mysql_connect('sql.free.fr', 'k.dejoye', '********'); // on sélectionne la base mysql_select_db('k_dejoye',$db); // on crée la requête SQL $sql = "SELECT Terme,Definition FROM k_dejoye WHERE Terme LIKE '%$Recherche%'"; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !.$sql.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_assoc($req)) // on affiche les informations de la table (Ca va te mettre un point entre tes valeurs c'est bien ça que tu veux ?) { echo ".$data['Terme'].$data['Definition'] <br/>"; } // on ferme la connexion à mysql mysql_close(); ?>
aiacciu
Messages postés
57
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
11 mai 2010
3
27 mai 2008 à 21:17
27 mai 2008 à 21:17
^^ enleve le commentaire de la ligne 11 ! les acolades sont bien mises
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
27 mai 2008 à 21:52
27 mai 2008 à 21:52
Cette fois-ci l'erreur est passée à la ligne 13.
Ce qui me semble bizar c'est que la fonction echo ne soit pas écrite en bleu dans mon code...
<?php // on se connecte à MySQL
$db = mysql_connect('sql.free.fr', 'k.dejoye', '********');
// on sélectionne la base
mysql_select_db('k_dejoye',$db);
// on crée la requête SQL
$sql = "SELECT Terme,Definition FROM k_dejoye WHERE Terme LIKE '%$Recherche%'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !.$sql.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
// on affiche les informations de la table
{
echo ".$data['Terme'].$data['Definition'] <br/>";
}
// on ferme la connexion à mysql
mysql_close();
?>
Ce qui me semble bizar c'est que la fonction echo ne soit pas écrite en bleu dans mon code...
<?php // on se connecte à MySQL
$db = mysql_connect('sql.free.fr', 'k.dejoye', '********');
// on sélectionne la base
mysql_select_db('k_dejoye',$db);
// on crée la requête SQL
$sql = "SELECT Terme,Definition FROM k_dejoye WHERE Terme LIKE '%$Recherche%'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !.$sql.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
// on affiche les informations de la table
{
echo ".$data['Terme'].$data['Definition'] <br/>";
}
// on ferme la connexion à mysql
mysql_close();
?>
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
>
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
28 mai 2008 à 11:23
28 mai 2008 à 11:23
Ligne 8 :
Il manque l'apostrophe fermante.
Essaye avec ça :
PS : je l'ai vu grâce à la coloration syntaxique sur Notepad++. Tu utilises quel logiciel ?
$req = mysql_query($sql) or die('Erreur SQL !.$sql.mysql_error());
Il manque l'apostrophe fermante.
Essaye avec ça :
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.mysql_error());
PS : je l'ai vu grâce à la coloration syntaxique sur Notepad++. Tu utilises quel logiciel ?
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
>
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
28 mai 2008 à 11:50
28 mai 2008 à 11:50
J'utilise context...
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
>
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
28 mai 2008 à 12:14
28 mai 2008 à 12:14
Oups je l'ai laissée passée celle-là...
Comme quoi notepad++ il n'y a que ça de vrai ;)
Comme quoi notepad++ il n'y a que ça de vrai ;)
sly-bzh
Messages postés
415
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
5 décembre 2009
118
27 mai 2008 à 23:44
27 mai 2008 à 23:44
Es-tu sûr de bien avoir un champ Terme et un champ Definition (attention à la majuscule en début de mot) ?
Je te mets le code pour avoir : entre un terme et sa définition mais ça tu aurais pu le trouver tout seul ;)
Et d'ailleurs en passant je te modifie un petit peu le code pour l'affichage, peut être que c'est là que ça plante...
edit : Et tant qu'à faire je te remplace aussi ton mysql_fetch_assoc par un mysql_fetch_array que je préfère personnellement (après les gouts et les couleurs...).
Je te mets le code pour avoir : entre un terme et sa définition mais ça tu aurais pu le trouver tout seul ;)
Et d'ailleurs en passant je te modifie un petit peu le code pour l'affichage, peut être que c'est là que ça plante...
<?php // on se connecte à MySQL $db = mysql_connect('sql.free.fr', 'k.dejoye', '********'); // on sélectionne la base mysql_select_db('k_dejoye',$db); // on crée la requête SQL $sql = "SELECT Terme,Definition FROM k_dejoye WHERE Terme LIKE '%$Recherche%'"; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !.$sql.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_array($req)) // on affiche les informations de la table { echo $data['Terme'].":".$data['Definition']." <br/>"; } // on ferme la connexion à mysql mysql_close(); ?>
edit : Et tant qu'à faire je te remplace aussi ton mysql_fetch_assoc par un mysql_fetch_array que je préfère personnellement (après les gouts et les couleurs...).
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
28 mai 2008 à 11:16
28 mai 2008 à 11:16
J'ai toujours mon message d'erreur et mes champs dans ma table sont bien Terme et Definition...
toujours ce probleme de T_String à la ligne 13...
toujours ce probleme de T_String à la ligne 13...
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
>
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
28 mai 2008 à 12:13
28 mai 2008 à 12:13
J'ai résolu mon probleme:
<?php // on se connecte à MySQL
$Recherche=$_POST['Recherche'] ;
//echo $Recherche;
$db = mysql_connect('k.dejoye.sql.free.fr', 'k.dejoye', '20042006');
// on sélectionne la base
mysql_select_db('k_dejoye',$db);
// on crée la requête SQL
//$sql = "SELECT * FROM Glossaire WHERE 'Terme' LIKE '%$Recherche%'";
$sql = "SELECT * FROM Glossaire WHERE Terme like '$Recherche'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL'.$sql.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req))
{
echo $data['Terme'].":".$data['Definition'];
}
// on ferme la connexion à mysql
mysql_close();
?>
Un autre souci se pose maintenant, je m'explique:
j'ai une liste de mots.Et dans cette liste, il est possible d'avoir de mots récurrents comme par exemple pomme et pomme de pain.
Avec mon code, si je recherche la définition de "pomme", il me donne que la première définition qu'il trouve. Je souhaiterais qu'il m'affiche toutes les définition avec pomme comme mot clé...
Autre souci: si je ne respecte pas exactement la casse de ma table, il ne m'affiche pas le terme et sa définition...
Merci pour tout!!!
<?php // on se connecte à MySQL
$Recherche=$_POST['Recherche'] ;
//echo $Recherche;
$db = mysql_connect('k.dejoye.sql.free.fr', 'k.dejoye', '20042006');
// on sélectionne la base
mysql_select_db('k_dejoye',$db);
// on crée la requête SQL
//$sql = "SELECT * FROM Glossaire WHERE 'Terme' LIKE '%$Recherche%'";
$sql = "SELECT * FROM Glossaire WHERE Terme like '$Recherche'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL'.$sql.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_array($req))
{
echo $data['Terme'].":".$data['Definition'];
}
// on ferme la connexion à mysql
mysql_close();
?>
Un autre souci se pose maintenant, je m'explique:
j'ai une liste de mots.Et dans cette liste, il est possible d'avoir de mots récurrents comme par exemple pomme et pomme de pain.
Avec mon code, si je recherche la définition de "pomme", il me donne que la première définition qu'il trouve. Je souhaiterais qu'il m'affiche toutes les définition avec pomme comme mot clé...
Autre souci: si je ne respecte pas exactement la casse de ma table, il ne m'affiche pas le terme et sa définition...
Merci pour tout!!!
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
>
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
28 mai 2008 à 12:19
28 mai 2008 à 12:19
Avec mon code, si je recherche la définition de "pomme", il me donne que la première définition qu'il trouve. Je souhaiterais qu'il m'affiche toutes les définition avec pomme comme mot clé...
Solution :
Reprends le $sql = "SELECT * FROM Glossaire WHERE 'Terme' LIKE '%$Recherche%'"; que tu as mis en commentaire (les % en SQL permettent de sélectionner tous les termes comprennant <Recherche>).
Par contre, dans ce cas tu récupèreras aussi 'Pommette'. Solution : dans ton while, rajoute un test avant de faire ton echo.
Autre souci: si je ne respecte pas exactement la casse de ma table, il ne m'affiche pas le terme et sa définition...
Le plus simple :
Dans la base, tu mets tout en majuscule, et tu fais :
$Recherche=strtoupper($_POST['Recherche'] );
Solution :
Reprends le $sql = "SELECT * FROM Glossaire WHERE 'Terme' LIKE '%$Recherche%'"; que tu as mis en commentaire (les % en SQL permettent de sélectionner tous les termes comprennant <Recherche>).
Par contre, dans ce cas tu récupèreras aussi 'Pommette'. Solution : dans ton while, rajoute un test avant de faire ton echo.
Autre souci: si je ne respecte pas exactement la casse de ma table, il ne m'affiche pas le terme et sa définition...
Le plus simple :
Dans la base, tu mets tout en majuscule, et tu fais :
$Recherche=strtoupper($_POST['Recherche'] );
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
>
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
28 mai 2008 à 12:48
28 mai 2008 à 12:48
Que fait cette fonction "strtoupper"?
Cela veut dire que tout ce qui est dans ma base de donnée apparaitra en majuscule?
Pour le % ca marche il ne me reste plus que ce problème de casse...
Cela veut dire que tout ce qui est dans ma base de donnée apparaitra en majuscule?
Pour le % ca marche il ne me reste plus que ce problème de casse...
macgawel
Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
89
>
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
28 mai 2008 à 12:57
28 mai 2008 à 12:57
Description string strtoupper(string string ) strtoupper retourne string avec tous ses caractères alphabétiques mis en majuscule.
En fait, ce n'est pas le contenu de ta BDD qui apparaîtra en majuscule.
Tu prends la variable $Recherche et tu la passes en majuscule.
Exemple :
Quelqu'un fait une recherche sur 'PoMme'
Tu mets strtoUpper('PoMme') = 'POMME' dans $Recherche
Tu fais ton SELECT.
Seule condition : il faut que le champs de ta table soit en majuscule.
Il y a moyen de faire la même chose directement dans la requête, mais comme c'est un calcul, ta requête sera beaucoup plus longue à passer :
SELECT * FROM ... WHERE <gras>UPPER(TonChamp) like UPPER('%$Recherche%')</gras>
Kevinteger
Messages postés
9
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
28 mai 2008
28 mai 2008 à 13:08
28 mai 2008 à 13:08
Merci pour tout!!!!
Merci tout le monde!!!!
Merci tout le monde!!!!
27 mai 2008 à 21:02
Maintenant j'ai cette erreur:
Parse error: syntax error, unexpected T_STRING in /mnt/167/sda/6/1/k.dejoye/rechercher.php on line 11
Et je n'ai pas vu de {} autour du while il faut les mettre où?
Merci d'avance pour ton aide!