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

Statut
N'est pas ouverte pour d'autres réponses.
S

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 :-(
 

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...
 

Jereck

Α & Ω
Staff
La comparaison : TOUJOURS un double égale : "=="
 
1er
OP
S

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..
 
1er
OP
S

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";
 }
 

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
 
1er
OP
S

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 ?
 
1er
OP
S

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 ?
 

Styleman

Touriste
Tommy11 a dit:
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 ?
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:
 
1er
OP
S

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 ;)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut