IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

if/else probleme + mysql_fetch_array + concat etc


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 13
    Par défaut if/else probleme + mysql_fetch_array + concat etc
    Voilà mon code... le problème est sur la condition else... si vous voulez... le script ne reconnais pas quand le pseudo est identique a celui sensé avoir été trouvé dans la requete "select" je ne sais plus comment faire quand j'enleve le code pour inserer un nouvelle enregistrement sa marche très bien... pour moi le pb est sur $pseudo != $data['pseudo'] mais je ne comprends pas pourquoi j'ai tout retourner dans tout les sens...

    Aider moi svp je désespère la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
    $sql="SELECT tag,pseudo,planètes FROM joueurs";
    $res = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    $data = mysql_fetch_array($res);
    if ($pseudo == "" || $planète == "") { 
            } 
    else 
    {
    if($pseudo != $data['pseudo'])
    { 
     
    $req="INSERT INTO `b-a-s-t-a`.`joueurs` (`tag`, `pseudo`, `planètes`) VALUES ('$tag', '$pseudo', '$planète');";
     
    $result = mysql_query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
    echo $enreg="<font size=6><font color=red><b>Enregistrement effectué, Merci.</b></font></font>";
    }
     
    else
    {
    $requete="UPDATE joueurs SET planètes = CONCAT(planètes , ', ' , '$planète') WHERE pseudo='$pseudo';";
     
    $resultat = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());
    echo "<font size=6><font color=red><b> H2H2H2H2 Enregistrement effectué, Merci.</b></font></font>";
    }
    }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    As-tu verifié ce que valaient $pseudo et $data['pseudo'] ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 13
    Par défaut
    $pseudo = $_POST["pseudo"];

    par contre je comprends pas pour l'autre???

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    Heu dans ta requête il n'y a aucun WHERE ?
    Car la mysql_fetch_array récupère le pseudo du premier enregistrement.
    Tu cherches a faire quoi exactement ?

  5. #5
    Membre éprouvé
    Inscrit en
    Juin 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Juin 2009
    Messages : 104
    Par défaut
    c'est classique et fonctionnel comme nom de champs "planètes" avec accent ?

    if($pseudo != $data['pseudo'])
    Le script ne reconnais pas quand le pseudo est identique a celui sensé avoir été trouvé dans la requete "select"
    si je ne dis pas de trop grosse débilité,
    $data['pseudo'] est égal au dernier enregistrement de la DB
    vu que le SELECT est "blanc"
    ce qui ne serait pas le cas avec par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="SELECT tag, pseudo, planètes FROM joueurs WHERE pseudo LIKE '".$_POST['pseudo']."' LIMIT 1";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php
    if ($_POST['pseudo'] != "" AND $_POST['planète'] != "") { # si les 2 sont vides, on ignore
    	$sql="SELECT tag, pseudo, planètes FROM joueurs WHERE pseudo LIKE '".$_POST['pseudo']."' LIMIT 1";
    	$res = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	$FoundCount = mysql_num_rows($res->result);
    	if ($FoundCount < 1) { # si le pseudo est inconnu
    		$req="INSERT INTO `b-a-s-t-a`.`joueurs` (`tag`, `pseudo`, `planètes`) VALUES ('$tag', '$pseudo', '$planète');";
    		$result = mysql_query($req) or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
    		echo '<font size="6" color="red"><b>Enregistrement effectué, Merci.</b></font>';
    	} else { # le pseudo existe dans la DB 
    		$requete="UPDATE joueurs SET planètes = CONCAT(planètes , ', ' , '$planète') WHERE pseudo='".$_POST['pseudo']."';";
    		$resultat = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error());
    		echo '<font size="6" color="red"><b> H2H2H2H2 Enregistrement effectu&eacute;, Merci.</b></font>';
    	}
    } else {
    	echo 'un petit avertissemnt pour dire qu&rsquo;il faut remplir les 2 champs';
    }
    ?>
    PS : je n'ai jamais été un fan des pluriels dans le nom des champs/variables, mais alors les accents ... cet éditeur lui même n'a pas l'air d'être un adepte, si l'on regarde les codes couleurs de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($pseudo == "" || $planète == "") {

Discussions similaires

  1. Probleme avec CONCAT
    Par frolen5 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/06/2008, 15h18
  2. Probleme mysql_fetch_array sur site nk Sp4
    Par Clm0104 dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/12/2007, 19h32
  3. probleme avec push_back etc
    Par popy1970 dans le forum C++
    Réponses: 4
    Dernier message: 18/01/2007, 14h30
  4. [Système] probleme pour lire etc/shadow
    Par mafilek dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2006, 12h05
  5. [SGBD] problème mysql_fetch_array()
    Par ben127 dans le forum Requêtes
    Réponses: 12
    Dernier message: 09/01/2006, 01h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo