Parse error (php + mysql)

Fermé
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009 - 11 août 2009 à 16:07
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009 - 11 août 2009 à 20:42
Bonjour @ tous!

J'essaie de faire afficher des rangées d'une table (dans mysql) sur ma page web! Jai une table qui s'appelle "presentateurs" qui contient les champs: no, nom ,prenom, titre, adresse, tel, courriel. Je voudrais pouvoir afficher un des presentateurs par exemple sur ma page web avec son titre, son nom et son prenom.
Jai utilisé un SELECT mais ca me fait un parse error et je sais pas pourquoi. Jai essayé 2 syntaxes et les voila (ca me fait: parse error on line 109 (qui la ligne de mon $insertion):

1ere METHODE:
/*ligne 109*/ $insertion= mysql_query('SELECT no,nom,prenom,titre,adresse,tel,courriel FROM presentateurs WHERE no="'.$no.'" AND nom="'$nom.'" AND prenom="'.$prenom.'" AND titre="'.$titre.'" AND adresse="'.$adresse.'" AND tel="'.$tel.'" AND courriel="'.$courriel.'" ') ;

while($donnees=mysql_fetch_array($insertion))
{
echo '$donnees[\'no\'] : '.$donnees['no'] .'<br/>';
echo '$donnees[\'nom\'] : '.$donnees['nom'] .'<br/>';
echo '$donnees[\'prenom\'] : '.$donnees['prenom'] .'<br/>';
echo '$donnees[\'titre\'] : '.$donnees['titre'] .'<br/>';
//echo '$donnees[\'adresse\'] : '.$donnees['adresse'] .'<br/>';
//echo '$donnees[\'tel\'] : '.$donnees['tel'] .'<br/>';
//echo '$donnees[\'courriel\'] : '.$donnees['courriel'] .'<br/>';

}
if($insertion)
echo("L'insertion a été correctement effectuée dans la page web");
else
echo '<br> Requete invalide <br/>'; // . mysql_error;

----------------------------------------------------------------------
2eme METHODE
/*ligne 109*/ $insertion="SELECT no,nom,prenom,titre,adresse,tel,courriel FROM presentateurs WHERE no="'.$no.'" AND nom="'$nom.'" AND prenom="'.$prenom.'" AND titre="'.$titre.'" AND adresse="'.$adresse.'" AND tel="'.$tel.'" AND courriel="'.$courriel.'" " ;
$result2=mysql_query($insertion) or die ('Erreur : '.mysql_error());
while($donnees=mysql_fetch_array($result2))
{
echo '$donnees[\'no\'] : '.$donnees['no'] .'<br/>';
echo '$donnees[\'nom\'] : '.$donnees['nom'] .'<br/>';
echo '$donnees[\'prenom\'] : '.$donnees['prenom'] .'<br/>';
echo '$donnees[\'titre\'] : '.$donnees['titre'] .'<br/>';
//echo '$donnees[\'adresse\'] : '.$donnees['adresse'] .'<br/>';
//echo '$donnees[\'tel\'] : '.$donnees['tel'] .'<br/>';
//echo '$donnees[\'courriel\'] : '.$donnees['courriel'] .'<br/>';

}
if($result2)
echo("L'insertion a été correctement effectuée dans la page web");
else
echo '<br> Requete invalide <br/>'; // . mysql_error;
}

Merciii! :)

19 réponses

smag42 Messages postés 200 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 22 mai 2014 10
11 août 2009 à 16:12
Suivant ta logique ceci serais plus juste je pense. Avec une petite correction. a la variable $nom


1ere METHODE:
$insertion= mysql_query('SELECT no,nom,prenom,titre,adresse,tel,courriel FROM presentateurs WHERE no="'.$no.'" AND nom="'.$nom.'" AND prenom="'.$prenom.'" AND titre="'.$titre.'" AND adresse="'.$adresse.'" AND tel="'.$tel.'" AND courriel="'.$courriel.'" '




1
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 16:15
MERCI!! il me manquait un point avant $nom!
0
smag42 Messages postés 200 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 22 mai 2014 10
11 août 2009 à 16:16
De rein sa a regler ton probleme?
0
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 16:19
Oui! ca a regler le parse error en tout cas! mais maintenant il y a dautres erreurs :P
Ca me di:
Notice: Undefined variable: no in C:\wamp\www\colloque\formulaire.php on line 109

Notice: Undefined variable: titre in C:\wamp\www\colloque\formulaire.php on line 109

Notice: Undefined variable: adresse in C:\wamp\www\colloque\formulaire.php on line 109
0

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

Posez votre question
smag42 Messages postés 200 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 22 mai 2014 10
11 août 2009 à 16:27
si tu affiche pas formulaire.php on pourra pas t'aider ^^^
0
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 16:29
hahaha! ok alors voila mon code de formulaire.php

<?php
// CONNECTION A MYSQL ET A LA BASE DE DONNEES
$cnx=mysql_connect("localhost","root","") or die("<br>IMPOSSIBLE DE SE CONNECTER A MYSQL");
echo "Connection établie avec mySQL <br/>";
$db=mysql_select_db("colloque") or die("<br>IMPOSSIBLE DE SE CONNECTER A LA BASE DE DONNEES");
echo "Connection établie avec la base de données";

echo "<pre>";print_r($_POST);echo "</pre>";
if (isset($_POST['Submit']))
{
if(isset($_POST['prenom']) && isset($_POST['nom']) && isset($_POST['telephone']) && isset($_POST['courriel']) && isset($_POST['organisme']) && isset($_POST['fonction']) && isset($_POST['ordre']))
{
if(!empty($_POST['prenom']) && !empty($_POST['nom']) && !empty($_POST['telephone']) && !empty($_POST['courriel']) && !empty($_POST['organisme']) && !empty($_POST['fonction']) && !empty($_POST['ordre']))
{
echo '<div><p class="titres"><b>Merci d\'avoir rempli le formulaire!</p> </b><br>
<p class="texte"><i>Vos informations sont les suivantes: </i></p><br>
<p class="textePetit"><u><b>Prénom</b></u>: ' .$_POST['prenom']. ' <br><br>
<u><b>Nom</b></u>: ' .$_POST['nom']. ' <br><br>
<u><b>Téléphone (bureau)</b></u>: ' .$_POST['telephone']. ' </p><br><br>';
if(!empty($_POST['telecopieur']))
{
echo '<div><p class="textePetit"><u><b>Télécopieur</b></u>:' .$_POST['telecopieur']. ' </p> <br>';
}
echo '<div><p class="textePetit"><u><b>Courriel</b></u>: ' .$_POST['courriel']. ' <br><br>
<u><b>Organisme</b></u>: ' .$_POST['organisme']. ' <br><br>
<u><b>Fonction</b></u>: ' .$_POST['fonction']. ' <br><br>
<u><b>Ordre d\'enseignement</b></u>: ' .$_POST['ordre']. ' </p><br><br>';

}
else
{
echo '<div><p class="texte"><b> Veuillez remplir tous les champs marqués d\'une astérisque (*) afin de pouvoir continuer </b></p>';
}
}
else
{
echo '<div> Les variables n\'existent pas';
}

// INSERTION DE DONNEES DANS LA BD
// recuperation des valeurs des champs
// est-ce quil faut faire une cnx avant la recuperation des donnees? ou bien une seule fois cest assez? je lai fait au debut du code...
//$id=$_POST['id'];
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$fonction=$_POST['fonction'];
$org=$_POST['organisme'];
$tel=$_POST['telephone'];
$telecopieur=$_POST['telecopieur'];
$courriel=$_POST['courriel'];
$ordre=$_POST['ordre'];
//$date=$_POST['date'];

/* mysql_string_escape(htmlentities($nom));
mysql_string_escape(htmlentities($prenom));
mysql_string_escape(htmlentities($fonction));
mysql_string_escape(htmlentities($org));
mysql_string_escape(htmlentities($tel));
mysql_string_escape(htmlentities($telecopieur));
mysql_string_escape(htmlentities($courriel));
mysql_string_escape(htmlentities($ordre)); */

/*$nom = mysql_string_escape(htmlentities($_POST['nom']));
$prenom = mysql_string_escape(htmlentities($_POST['prenom']));
$fonction = mysql_string_escape(htmlentities($_POST['fonction']));
$org = mysql_string_escape(htmlentities($_POST['organisme']));
$tel = mysql_string_escape(htmlentities($_POST['telephone']));
$telecopieur = mysql_string_escape(htmlentities($_POST['telecopieur']));
$courriel = mysql_string_escape(htmlentities($_POST['courriel']));
$ordre = mysql_string_escape(htmlentities($_POST['ordre']));*/

$query="INSERT INTO participants (Nom,Prenom,Tel,Telecopieur,Courriel,Organisme,Fonction,Ordre,DateInscription)VALUES('$nom','$prenom','$tel','$telecopieur','$courriel','$org','$fonction','$ordre',NOW())"; // creation de la requete sql
$result=mysql_query($query) or die( mysql_error() );

if($result)
{
if(!empty($_POST['prenom']) && !empty($_POST['nom']) && !empty($_POST['telephone']) && !empty($_POST['courriel']) && !empty($_POST['organisme']) && !empty($_POST['fonction']) && !empty($_POST['ordre']))
echo("L'insertion a été correctement effectuée") ;
else
{
echo("L'insertion a échouée") ;
echo 'Requete invalide : ' . mysql_error;
}
}
$insertion= mysql_query('SELECT no,nom,prenom,titre,adresse,tel,courriel FROM presentateurs WHERE no="'.$no.'" AND nom="'.$nom.'" AND prenom="'.$prenom.'" AND titre="'.$titre.'" AND adresse="'.$adresse.'" AND tel="'.$tel.'" AND courriel="'.$courriel.'" ') ;

while($donnees=mysql_fetch_array($insertion))
{
echo '$donnees[\'no\'] : '.$donnees['no'] .'<br/>';
echo '$donnees[\'nom\'] : '.$donnees['nom'] .'<br/>';
echo '$donnees[\'prenom\'] : '.$donnees['prenom'] .'<br/>';
echo '$donnees[\'titre\'] : '.$donnees['titre'] .'<br/>';
echo '$donnees[\'adresse\'] : '.$donnees['adresse'] .'<br/>';
echo '$donnees[\'tel\'] : '.$donnees['tel'] .'<br/>';
echo '$donnees[\'courriel\'] : '.$donnees['courriel'] .'<br/>';

}
if($insertion)
echo("L'insertion a été correctement effectuée dans la page web");
else
echo '<br> Requete invalide <br/>'; // . mysql_error;
}
else{}
?>

Merci! :)
p.s jai mis la ligne 109 (la ligne problematique) en gras!
0
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 16:35
La premiere query (le INSERT) sert a insérer les donnees que les gens auront remplis dans le formulaire. Les donnees seront stockées dans la table "participants" . Ça ça marche!

Cest la 2eme requete qui ne fontionne pas.. est-ce quil faut que je recupere les variables de ma table "presentateurs" (qui sert a la deuxieme requete) comme je lai fait pour ma requete insert avec ma table "participants" ?
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
11 août 2009 à 16:38
$insertion= mysql_query("SELECT no,nom,prenom,titre,adresse,tel,courriel FROM presentateurs WHERE no='".$no."' AND nom='".$nom."' AND prenom='".$prenom."' AND titre='".$titre."' AND adresse='".$adresse."' AND tel='".$tel."' AND courriel='".$courriel."'") or die(mysql_error());
0
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 16:44
Jai rajouté le "or die(etc)" mais ca affiche rien de different..ca affiche encore:
L'insertion a été correctement effectuée
Notice: Undefined variable: no in C:\wamp\www\colloque\formulaire.php on line 109

Notice: Undefined variable: titre in C:\wamp\www\colloque\formulaire.php on line 109

Notice: Undefined variable: adresse in C:\wamp\www\colloque\formulaire.php on line 109
L'insertion a été correctement effectuée dans la page web
0
smag42 Messages postés 200 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 22 mai 2014 10
11 août 2009 à 16:50
essaye avec ca:

$insertion = mysql_result(mysql_query('SELECT COUNT(*) FROM presentateurs WHERE no = "'.$no.'" AND Nom = "'.$nom.'" AND Prenom = "'.$prenom.'" AND Tel = "'.$tel.'" AND Telecopieur = "'.$telecopieur.'" AND Courriel = "'.$courriel.'" AND Organisme = "'.$org.'" And Fonction = "" AND Ordre = "" AND DateInscription = ""'), 0);

0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
11 août 2009 à 16:55
Non mais pour moi, son erreur vient du fait que, comme l'indiquent les erreurs, les variables $no et $titre ne sont jamais initialisées !
0
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 16:57
La table presentateurs et participants nont pas les meme champs!
Presentateurs: no, nom,prenom,titre,adresse,tel,courriel
Participants: no,nom,prenom,tel,telecopieur,courriel,organisme,fonction,ordreEnseignement,DateInscription

Jai essayé avec ce que tu ma donné et ca me donne:

L'insertion a été correctement effectuée
Notice: Undefined variable: no in C:\wamp\www\colloque\formulaire.php on line 110

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\wamp\www\colloque\formulaire.php on line 110

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\colloque\formulaire.php on line 111

Requete invalide
0
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 17:00
Alors, est-ce qu'il faudrait que je fasse:
$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$titre=$_POST['titre'];
$adresse=$_POST['adresse'];
$tel=$_POST['tel'];
$courriel=$_POST['courriel'];

ou qqch comme ca?
0
smag42 Messages postés 200 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 22 mai 2014 10
11 août 2009 à 17:02
Donc jeangilles, tu voudrais faire un :

$no = NULL;
$nom = NULL;
$prenom = NULL;
$titre = NULL;
$adresse = NULL;
$tel = NULL;
$courriel = NULL;


au début du code?


0
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 17:08
Ok smag42, jai rajouté l'initialisation et ca ne me fais plus derreur!!! sauf que ca naffiche rien de mes echos!
Tout ce que ca maffiche cest:
L'insertion a été correctement effectuée
L'insertion a été correctement effectuée dans la page web

mais pas le no,le nom etc..des presentateurs
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
11 août 2009 à 18:09
Ben c'est pas étonnant, vu que $no est vide, quand tu fais le select, tu fais un select ou tu cherches les no=null et les titre=null :
$insertion= mysql_query('SELECT no,nom,prenom,titre,adresse,tel,courriel FROM presentateurs WHERE no="'.$no.'" AND nom="'.$nom.'" AND prenom="'.$prenom.'" AND titre="'.$titre.'" AND adresse="'.$adresse.'" AND tel="'.$tel.'" AND courriel="'.$courriel.'" ') ;


d'ailleurs jvois pas l'intéret de la requete, tu fais le select en récupérant exactement les mêmes valeurs que dans ton WHERE :O
0
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 20:23
Jcomprend pas qu'est-ce que tu as mis en gras..la syntaxe est restee la meme!
La requete ($insertion) elle sert a placer mes donnees dans $insertion. Ensuite, je les place dans un array avec le fetch_array et jlai affiche avec les echos!
Est-ce qu'il faut que j'initialise les variables en faisant = NULL?
D'apres ce que jai compris, il faudrait pas parce que ca va rien afficher puisqu'ils sont mis a nul..c ca?

Merci :)
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
11 août 2009 à 20:35
Tu es sûre de bien comprendre à quoi sert la clause where dans un une requête SQL ?
parce que jusque là j'avais pas vraiment chercher à comprendre, je corrigeais juste les erreurs de syntaxe
mais là, ton select sert à rien du tout !

je sais pas comment expliquer ca, c'est comme si tu te demandais ce que vaut a quand a=1 ....
tu poses la question en ayant déjà la réponse dans cette même question ...
0
P@mela Messages postés 21 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 21 août 2009
11 août 2009 à 20:42
Ok jcomprend ce que tu veux dire! donc en gros, je me repete! donc tu me conseillerais de pas faire de select? parce que je sais pas comment faire si jutilise pas de select..
0