Page 1 sur 2

Afficher les données sql

Posté : 03 mars 2006, 14:40
par Morkem
Vala j'ai un probleme sur une page et ca commence à me stresser...
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home.2/pzykoz/www/membres.php on line 59
Vala le code du fichier
<?php
require("config.inc.php");
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);

$reponse = mysql_query("SELECT id, email, jeu, actif FROM membres WHERE id='id'");"); 

while ($donnees = mysql_fetch_array($reponse) )
{
?>

<p><b><u>Profil</u></b><br>
Votre id : <?php echo $donnees['id']; ?><br />
Votre Mail : <?php echo $donnees['email']; ?><br />
Votre Jeu : <?php echo $donnees['jeu']; ?><br />
En activité : <?php echo $donnees['actif']; ?><br />

</p>

<?php
}

mysql_close(); 
?>
En fait c'est juste pour afficher les données de la table rien de plus sauf que je veux afficher les données du membre qui se connecte a son profil.
Sans le where ca fonctionne mais ca donne tt ce que contient la table. :(

Si vous pouviez corriger :(

Posté : 03 mars 2006, 14:48
par zeus
Quelle est la ligne 59 du fichier membres.php ?

Posté : 03 mars 2006, 14:57
par charabia
$reponse = mysql_query("SELECT id, email, jeu, actif FROM membres WHERE id='id'");");
doit être
$reponse = mysql_query("SELECT id, email, jeu, actif FROM membres WHERE id=".$id."");

Posté : 03 mars 2006, 15:11
par Morkem
Ah merci beaucoup :)

Une autre question si vous le permettez...

A partir de ce profil je vais creer un lien modifier. On arrivera a un formulaire qu'il faudra remplir pour compléter d'autres champs de la table (ex: Nom, prenom...)

Je pense que le code sql sera update mais je suis pas sur... en fait je pense que j'ai encore des erreurs.

Voici le code du formulaire

Code : Tout sélectionner

<p>Vous pouvez ici éditer votre profil.<br> <form method="post" action="edition.php"> <label>Nom : <input type="text" name="nom" /></label><br> <label>Prénom : <input type="text" name="prenom" /></label><br> <label>Pays : <input type="text" name="pays" /></label><br> <label>Site web : <input type="text" name="web" /></label><br> <label>Aim : <input type="text" name="aim" /></label><br> <label>Msn : <input type="text" name="msn" /></label><br> <label>Icq : <input type="text" name="icq" /></label><br> <label>Biographie : <textarea cols="45" rows="6" name="biog"></textarea></label><br> <input type="submit" name="edition" value="Editer" /></p>
Et celui du fichier edition

Code : Tout sélectionner

<?php require("config.inc.php"); $nom = htmlentities(addslashes($_POST['nom'])); $prenom = htmlentities(addslashes($_POST['prenom'])); $pays = htmlentities(addslashes($_POST['pays'])); $web = htmlentities(addslashes($_POST['web'])); $aim = htmlentities(addslashes($_POST['aim'])); $msn = htmlentities(addslashes($_POST['msn'])); $icq = htmlentities(addslashes($_POST['icq'])); $biog = htmlentities(addslashes($_POST['biog'])); mysql_connect($host,$username,$password); mysql_select_db($bdd_name); if(isset($_POST['id'])) { mysql_query("UPDATE membres SET nom='" . $nom . "', prenom='" . $prenom . "', pays='" . $pays . "', web='" . $web . "', aim='" . $aim . "', msn='" . $msn . "', icq='" . $icq . "', biog='" . $biog . "' WHERE id='" . $_POST['id']."'"); } mysql_close(); ?>
Ca metonnerais qu'il soit bon vu que ca ne fonctionne pas :( si vous pouviez jeter un oeil :)

Merci

Posté : 03 mars 2006, 15:14
par charabia
Dis nous en un peu plus. Tu as une erreur (si oui laquelle ?) ? Page blanche ?

De plus je ne vois pas de champ ID dans ton formulaire...

Posté : 04 mars 2006, 11:48
par Morkem
Ba l'id est en auto increment donc pas besoin de le modifier par formulaire...
Si maintenant tu veut dire que je n'appelle pas l'id ca se peut mais je ne sais pas trop quoi faire...

En fait le formulaire fonctionne puisque j'accede a la page de traitement (edition) mais cette page de traitement n'a pas l'air de faire quelque chose puisque lorsque je regarde ds ma table, les informations n'ont pas ete rajouté...

Donc soit il y a une erreur de . ; ' " etc... que je ne vois pas... Soit j'ai carrement oublié une ligne de code (style appel de l'id qui pourtant je crois que c'est ca :

Code : Tout sélectionner

if(isset($_POST['id']))
)

Il n'y a pas d'erreur en tant que tel... une page blanche oui mais uniquement pasque je n'ai rajouté de texte comme quoi c'etait ok ou comme quoi il y avait erreur.

Posté : 04 mars 2006, 11:54
par charabia
En fait dans ta requête tu fais appel à

Code : Tout sélectionner

WHERE id='" . $_POST['id']."
donc ton ID doit se trouver dans le formulaire sinon il ne trouvera rien du tout.

De même tu regardes si l'ID existe grâce à isset, mais ta variable ID n'existe pas.

Dans ton formulaire, tu dois donc rajouter un champ caché HIDDEN avec la valeur de l'ID que tu récupères.

Posté : 04 mars 2006, 23:37
par Morkem
Merci beaucoups... j'ai galéré comme un fou juste parceque j'avais oublié ca -__-

Posté : 05 mars 2006, 00:25
par Morkem
Encore une question.
Si je veux faire le meme mais avec un lien cette fois ci. Que dois je mettre pour qu'il affiche le bon profil?

C'est dans le cas d'une liste des membres, je voudrais faire un lien a chaque pseudo pour afficher leur profil, mais encore une fois je ne vois pas ce qu'il faut mettre pour faire correspondre le pseudo cliqué avec son profil.

Posté : 05 mars 2006, 11:34
par charabia
Tu fais exactement pareil sauf qu'au lieu de mettre un champ caché en formulaire, tu passes ta variable en URL :

Code : Tout sélectionner

<a href="tapage.php?id=xxx">blabla</a>
Et tu la récupères avec $_GET['id'] au lieu de POST.

Posté : 05 mars 2006, 22:57
par Morkem
Je vais essayer je te dis quoi... merci pour ta patience ;)

Posté : 06 mars 2006, 17:40
par Morkem
Je reviens à l'attaque car ca ne fonctionne pas (syntax error)... Je pense que le lien fonctionne car il affiche bien : http://www.pzykoz.com/profil.php?pseudo=Morkem

Donc ca doit venir de la cible... j'ai encore du oublier quelque chose :(

Code : Tout sélectionner

<?php require("config.inc.php"); mysql_connect($host,$username,$password); mysql_select_db($bdd_name); if (isset($_GET['pseudo'])) { mysql_query("SELECT id, email, jeu, actif, nom, prenom, pays, web, aim, msn, icq, biog FROM membres WHERE pseudo=" . $_GET['pseudo']); // Requête SQL } $reponse = mysql_query("SELECT id, email, jeu, actif, nom, prenom, pays, web, aim, msn, icq, biog FROM membres WHERE pseudo=".$pseudo.""); while ($donnees = mysql_fetch_array($reponse) ) { ?> <p><b><u>Profil</u></b><br> Votre id : <?php echo $donnees['id']; ?><br /> Votre Mail : <?php echo $donnees['email']; ?><br /> Votre Jeu : <?php echo $donnees['jeu']; ?><br /> En activité : <?php echo $donnees['actif']; ?><br /><br> <b><u>Complément</u></b><br> Nom : <?php echo $donnees['nom']; ?><br /> Prénom : <?php echo $donnees['prenom']; ?><br /> Pays : <?php echo $donnees['pays']; ?><br /> Web : <?php echo $donnees['web']; ?><br /> Aim : <?php echo $donnees['aim']; ?><br /> Msn : <?php echo $donnees['msn']; ?><br /> Icq : <?php echo $donnees['icq']; ?><br /> Biog : <?php echo $donnees['biog']; ?><br /> </p>

Posté : 06 mars 2006, 18:09
par charabia
if (isset($_GET['pseudo'])) 
{ 
   mysql_query("SELECT id, email, jeu, actif, nom, prenom, pays, web, aim, msn, icq, biog FROM membres WHERE pseudo=" . $_GET['pseudo']);  // Requête SQL 
}
Doit être
if (isset($_GET['pseudo'])) 
{ 
   mysql_query("SELECT id, email, jeu, actif, nom, prenom, pays, web, aim, msn, icq, biog FROM membres WHERE pseudo=".$_GET['pseudo']."");  // Requête SQL 
} 
Et
$reponse = mysql_query("SELECT id, email, jeu, actif, nom, prenom, pays, web, aim, msn, icq, biog FROM membres WHERE pseudo=".$pseudo."");
Ne serait pas plutôt
$reponse = mysql_query("SELECT id, email, jeu, actif, nom, prenom, pays, web, aim, msn, icq, biog FROM membres WHERE pseudo=".$_GET['pseudo'].""); 
?

Posté : 06 mars 2006, 20:26
par Morkem
Pfff j'y arriverais jamais :oops:

Merci bien :) j'essaye

Posté : 06 mars 2006, 20:40
par Morkem
Ba les erreurs de syntaxe sont corrigé ;) seulement il n'affiche pas encore les résultats...