Erreur php/mysql

Résolu/Fermé
Tulifer Messages postés 69 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 13 décembre 2009 - 6 juil. 2009 à 10:31
Tulifer Messages postés 69 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 13 décembre 2009 - 6 juil. 2009 à 13:56
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 :) .
A voir également:

12 réponses

Bonjour

unexpected T_IF
Tu as oublié le ; à la fin de la ligne précédente
1
resalut Messages postés 784 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 21 janvier 2010 55
6 juil. 2009 à 10:41
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
0
Tulifer Messages postés 69 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 13 décembre 2009 1
6 juil. 2009 à 10:49
Merci de t'as réponse, mais sa ne marche pas.
0
Tulifer Messages postés 69 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 13 décembre 2009 1
6 juil. 2009 à 11:19
Ah oui merci bien.

Mais maintenant $avatar_net ne s'enregistre pas pour le if
0

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']."')");
0
Tulifer Messages postés 69 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 13 décembre 2009 1
6 juil. 2009 à 11:31
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.
0
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 ?
0
Tulifer Messages postés 69 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 13 décembre 2009 1
6 juil. 2009 à 11:47
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.
0
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.
0
Tulifer Messages postés 69 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 13 décembre 2009 1
6 juil. 2009 à 13:38
Oui
0
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
0
Tulifer Messages postés 69 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 13 décembre 2009 1
6 juil. 2009 à 13:56
Ok merci bien :).
0