Erreur php/mysql
Résolu
Tulifer
Messages postés
73
Statut
Membre
-
Tulifer Messages postés 73 Statut Membre -
Tulifer Messages postés 73 Statut Membre -
Bonjour,
Je suis en train de faire un système de profils sur mon site et j'ai un problème :/.
Quand je veut accéder à ma page j'ai cette erreur.
Parse error: syntax error, unexpected T_IF in /home/b/bepien/html/option/profil.php on line 21
La ligne 21 c'est sa:
if ($donnees['avatar'] = '') // Pas d'avatar donc on insert un le lien de l'image
Ma page entière.
<div id="corps">
<form method="post">
<input type="text" name="avatar_net" id="avatar_net" /><br/>
<input type="submit" value="Envoyer" />
</form>
<?php
//D'abord, je me connecte à la base de données
mysql_connect("****", "****", "*******");
mysql_select_db("*****");
$avatar_net = ($_POST['avatar_net']);
$retour = mysql_query('SELECT * FROM connexion WHERE pseudo=\''.$_SESSION['pseudo'].'\'');
$donnees = mysql_fetch_array($retour)
if ($donnees['avatar'] = '') // Pas d'avatar donc on insert un le lien de l'image
{
mysql_query("INSERT INTO connexion VALUES avatar='" . $avatar_net . "' WHERE pseudo='".$_SESSION['pseudo']."' ");
}
else
{
mysql_query("UPDATE connexion SET avatar='" . $avatar_net . "' WHERE pseudo='".$_SESSION['pseudo']."' ");
}
?>
<img src="<?php echo''.$donnees['avatar'].'';?>" />
</div>
Merci de vos réponse bonne journée :) .
Je suis en train de faire un système de profils sur mon site et j'ai un problème :/.
Quand je veut accéder à ma page j'ai cette erreur.
Parse error: syntax error, unexpected T_IF in /home/b/bepien/html/option/profil.php on line 21
La ligne 21 c'est sa:
if ($donnees['avatar'] = '') // Pas d'avatar donc on insert un le lien de l'image
Ma page entière.
<div id="corps">
<form method="post">
<input type="text" name="avatar_net" id="avatar_net" /><br/>
<input type="submit" value="Envoyer" />
</form>
<?php
//D'abord, je me connecte à la base de données
mysql_connect("****", "****", "*******");
mysql_select_db("*****");
$avatar_net = ($_POST['avatar_net']);
$retour = mysql_query('SELECT * FROM connexion WHERE pseudo=\''.$_SESSION['pseudo'].'\'');
$donnees = mysql_fetch_array($retour)
if ($donnees['avatar'] = '') // Pas d'avatar donc on insert un le lien de l'image
{
mysql_query("INSERT INTO connexion VALUES avatar='" . $avatar_net . "' WHERE pseudo='".$_SESSION['pseudo']."' ");
}
else
{
mysql_query("UPDATE connexion SET avatar='" . $avatar_net . "' WHERE pseudo='".$_SESSION['pseudo']."' ");
}
?>
<img src="<?php echo''.$donnees['avatar'].'';?>" />
</div>
Merci de vos réponse bonne journée :) .
Configuration: Windows Vista Firefox 3.5
12 réponses
-
-
c'est pas = mais == car = veut dire que tu attribue la variable et == dis ke la variable est egale à ...
mais plus simple remplace
if ($donnees['avatar'] = '') // Pas d'avatar donc on insert un le lien de l'image
par
if (empty($donnees['avatar'] )) //Pas d'avatar donc on insert un le lien de l'image -
-
Ah oui merci bien.
Mais maintenant $avatar_net ne s'enregistre pas pour le if -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
mysql_query("INSERT INTO connexion VALUES avatar='" . $avatar_net . "' WHERE pseudo='".$_SESSION['pseudo']."' ");
Cette requête est incorrecte. Il n'y a pas de WHERE dans un INSERT. En effet, un INSERT crée un nouvel enregistrement, alors que le WHERE teste une condition sur un enregistrement existant.
Si tu cherches à créer un nouvel avatar pour le même pseudo, ce serait plutôt :
mysql_query("INSERT INTO connexion (avatar,pseudo) VALUES ('" . $avatar_net . "','".$_SESSION['pseudo']."')"); -
En faite ma table est comme ceci
id pseudo passe verif email avatar
Et je veut enregistrer $avatar_net dans avatar. J'avais mis WHERE pseudo='".$_SESSION['pseudo']."' Pour que $avatar_net s'enregistre dans avatar du membre qui est connecté.
PS: j'ai essayé votre code mais il ma créer 3 nouvelle id avec le lien de l'avatar. -
Normal, si tu as une premier enregistrement avec un pseudo mais sans avatar, chaque appel va faire un INSERT. Mais c'est ton code qui est écrit comme ça.
Dans quel cas veux-tu faire un INSERT et dans quel cas veux-tu faire un UPDATE ? -
Bah je veut faire un insert quand l'utilisateur n'as pas encore mis d'avatar et un update quand il veut changer son avatar.
Sinon je vais essayer de faire deux update. -
Quand l'utilisateur n'a pas encore mis son avatar, y a-t-il quand même une ligne avec son pseudo dans la table ou non ? Car ça change tes tests et les requêtes à faire.
-
-
Si le pseudo existe déjà, tu n'as qu'un UPDATE à faire, ça ne sert à rien de distinguer le cas où l'avatar est vide de celui où l'avatar n'est pas vide .
Par contre, il ne faut faire cet UPDATE que si le login existe :
$retour = mysql_query('SELECT * FROM connexion WHERE pseudo=\''.$_SESSION['pseudo'].'\'');
$donnees = mysql_fetch_array($retour)
if ($donnees !== false ) // le pseudo existe
{
mysql_query("UPDATE connexion SET avatar='" . $avatar_net . "' WHERE pseudo='".$_SESSION['pseudo']."' ");
}
else echo " pseudo inexistant"; // le pseudo n'existe pas -