PHP - Aucune erreur mais pas le résultat voulu ;)

Discussion dans 'Web, design' créé par Sokin, 23 Octobre 2004.

Statut de la discussion:
Fermée.
  1. Offline
    Sokin ex membre
    Bijour
    Code:
         if($admin == 'ajout'){
         include("./config.php");
         
         $url = $_POST['url'];
         $name = $_POST['name'];
         $resume = $_POST['resume'];
         $lettre = substr($name, 0, 1);
    
         $query = "SELECT * FROM tommy_dvd";
         $result = mysql_query($query) or die('Erreur SQL : '.mysql_error());
         $val = mysql_fetch_array($result);
         $val['name'] = $titre;
         
         		  if ($name = $titre) {
         		  echo "Le dvd existe déjà dans l'annuaire";
         		  }
         		  elseif ($name != $titre) {
         		  $query = "INSERT INTO tommy_dvd(lettre,name,image,resume) VALUES('$lettre','$name','$url','$resume')";
    	  	  $result = mysql_query($query) or die('Erreur SQL : '.mysql_error());
         	   
         	   	  echo "Le Dvd a bien été ajouté dans l'annuaire.<br />";
         	   	  echo '<a href="./">Revenir sur l\'annuaire.</a><br />';
         	   	  echo '<a href="./admin.php">Revenir sur la page précédente.</a></p>';
         	   	  }
         	   
         	          else {
         	          echo '<p>Veuillez donner le titre ainsi que le résumé...<br />';
         	          echo '<a href="./admin.php">Revenir sur la page précédente.</a>';
         	          }
         }
    Voici mon code.

    Le problème est que quoi que je fasse, j'arrive toujours sur le Else.. Et donc rien n'entre dans ma BDD :-(
    Sokin, 23 Octobre 2004
    #1
  2. Offline
    Styleman Touriste
    Moi quand je lis ton code je comprends:

    Si dvd deja existant ->Message d'Erreur
    Si dvd pas existant -> On le met dans la BDD
    Sinon -> Veuillez donner le titre ainsi que le résumé..

    pourquoi une derniere condition?Si il existe, si il existe pas, je ne vois pas ce que ça pourrait etre d'autre...
    Ce sera soit on le met dans la bdd ar il existe pas, soit il existe dja et on met le message...

    Et sinon n'oublie des petits mots comme Bonjour, Merci, Aurevoir...
    Styleman, 23 Octobre 2004
    #2
  3. Online
    Jereck Procrastinateur
    Equipe GamerZ.be
    La comparaison : TOUJOURS un double égale : "=="
    Jereck, 23 Octobre 2004
    #3
  4. Offline
    Sokin ex membre
    Oui Jereck, effectivement ;)

    Styleman.. Ben c'est parce que je viens de rajouter une condition et donc j'ai pas pensé à retirer la toute dernière..

    Merci à vous, je vais voir si cela fonctionne..
    Sokin, 23 Octobre 2004
    #4
  5. Offline
    Sokin ex membre
    Je reviens un peu sur le point de départ now..

    Quoi que je fasse il inscrit dans la BDD.. Il ne prend pas en compte ma condition.. Celle là :
    Code:
         include("./config.php");
         
         $name = $_POST['name'];
    
         $query = "SELECT * FROM tommy_dvd";
         $result = mysql_query($query) or die('Erreur SQL : '.mysql_error());
         $val = mysql_fetch_array($result);
         $val['name'] = $titre;
         
         		  if ($name == $titre) {
         		  echo "Le dvd existe déjà dans l'annuaire";
     }
    Sokin, 23 Octobre 2004
    #5
  6. Offline
    Styleman Touriste
    Tu n'as qu'a changé en:
    Code:
    $query = "SELECT titre FROM tommy_dvd WHERE titre='$name'"; 
         $result = mysql_query($query) or die('Erreur SQL : '.mysql_error()); 
         $res = mysql_numrows($result);
          
                 if ($res != 0) { 
                 echo "Le dvd existe déjà dans l'annuaire"; 
    }
    Peut etre que ça ça fonctionnera
    Styleman, 23 Octobre 2004
    #6
  7. Offline
    Sokin ex membre
    >> if ($res != 0) {

    En gros, s'il est different de 0, c'est qu'il existe et s'il est égal a 0, il existe pas ?
    Sokin, 23 Octobre 2004
    #7
  8. Offline
    Sokin ex membre
    SOn système fonctionne mais je ne comprend pas trop..

    Si le resultat de la requete est 0, c'est qu'il n'existe pas
    S'il est different (1 je suppose), il existe..
    Pourquoi ?
    Sokin, 23 Octobre 2004
    #8
  9. Offline
    Styleman Touriste
    tous simplement parce que avec la fonction mysql_numrows je compte les lignes qui corresponde a la requete (a savoir la ou il y a le titre du dvd), si il en trouve pas, ce qu'aucune ligne ne comporte le champs titre avec comme valeur celle du titre de ton dvd...donc il renvoi 0, si il y en avais 3, il aurait renvoyé 3 :wink:
    Styleman, 23 Octobre 2004
    #9
  10. Offline
    Sokin ex membre
    Ah ok !
    Il compte les lignes du même titre donc.. S'il en trouve 0 c'est qu'il n'y en a pas donc il met ds la BDD, s'il y en a 1, 2, 3, ... il ne le fait pas :)

    Merci beaucoup Styleman ;)
    Sokin, 23 Octobre 2004
    #10
Statut de la discussion:
Fermée.