Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1939 connectés 

  FORUM HardWare.fr
  Programmation

  PHP retour du resultat d'une requete>condition

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP retour du resultat d'une requete>condition

n°117466
jultey
Posté le 25-03-2002 à 23:54:33  profilanswer
 

Salut,  
en ce moment, je suis en train de me faire une petite interface de gestion de mes CD ( je vous la livrerai pour vos commentaires et remarques une fois terminée ).
Mais pour l'instant, je plante sur un pb :
 
Apparement je passe jamais dans le if et toujours dans le else car j'obtiens une erreur :  
 

Citation :

Erreur SQL !
INSERT INTO cd VALUES ('cd24', '', '';) ;
Duplicata du champ 'cd24' pour la clef 1


 
D'ailleurs, normalement, je pense que j'aurais dut obtenir une valeur dans les 3emes '' ... du genre ('cd24', '', '210';)
 

Citation :


// On créer la requete SQL : Sélectionner le CD ayant le nom du champ de saisie
  $sql = "SELECT *
          FROM cd
   WHERE cd_nom='$cd_nom' ;" ;
 
  // On envoie la requete
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()) ;
 
   // On stock le résultat dans $data
                $data = mysql_fetch_array($req) ;
 
    // On test si on a un CD portant déja le nom : Donc $data doit être nul
        // Si on obtient une réponse, c est que le Cd existe déjà
                if($data = mysql_fetch_array($req))
                {
                // Le CD existe déja
                 print("$cd_nom existe déja" ) ;
                }
        // Pour insérer un CD, $data doit être nul
                else
                {
                // On créer la requete SQL et on l'envoie
   $sql = "INSERT INTO cd
    VALUES ('$cd_nom', '', '$cd_place_restante';) ;" ;
 
                 // On envoie la requete
   $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()) ;
 
                 // On ferme la connexion à mysql
   mysql_close() ;
                 }


 
 
Ci quelqu'un pouvait m'éclairer... Marci d'avance  :spookie:

mood
Publicité
Posté le 25-03-2002 à 23:54:33  profilanswer
 

n°117470
massanu
Posté le 26-03-2002 à 00:04:03  profilanswer
 

if($data = mysql_fetch_array($req))  
 
change ca en  :
 
if($data [B]==[/B] mysql_fetch_array($req))


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°117472
jultey
Posté le 26-03-2002 à 00:12:26  profilanswer
 

Non, ca ne fait rien. Toujours la même erreur. D'ailleurs c'est, je pense, pas la peine de mettre = ou == car j'ai deja stoclé le resultat dans $data quelques lignes au dessus...
 
Ca donne maintenant :

Citation :

// On stock le résultat dans $data
                $data = mysql_fetch_array($req) ;
 
    // On test si on a un CD portant déja le nom : Donc $data doit être nul
        // Si on obtient une réponse, c est que le Cd existe déjà
                if($data)
                {
                // Le CD existe déja
                 print("$cd_nom existe déja" ) ;
                }
        // Pour insérer un CD, $data doit être nul
                else
                {...

n°117476
massanu
Posté le 26-03-2002 à 00:18:57  profilanswer
 

tfasson tu peut pas faire ca.
Tu peut pas sortir un resultat comme ca tu doit le parcourir dabord exemple dans ton cas mettre
 
while (list($nom)=mysql_fetch_row($req))
{
$data=$nom
}
 
ensuite pour le test c pareil, tu te fait une requete qui te sors tout tes cd
 
$sql="SELECT cd_nom FROM cd";
$req = mysql_query($sql);
 
tu met ca dans un while comme precedemment et dedans tu feras ton test


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°117478
jultey
Posté le 26-03-2002 à 00:25:38  profilanswer
 

Mais dans ce cas la, je devrai n'avoir qu'un seul resultat ( enfin qu'une seue ligne ) vu que je ne doit avoir qu'un cd du même nom. Je suis quand même obligé de faire un while ?  
 
De plus, je viens de trouver un faute d'orthogrpahe qui pourrait expliquer le 3eme chmaps manquant. J'essaie avec la correction :
 

Citation :

<input type="text" name="cd_pace_restante">


 
est devenu
 

Citation :

<input type="text" name="cd_place_restante">


 
je ne l'avais pas mit au debut pour ne pas surcharger le sujet de ma question...

n°117479
massanu
Posté le 26-03-2002 à 00:27:13  profilanswer
 

meme avec un seul resultat oui tu doit faire le while
 
essaye de toute facon ta rien a perdre


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°117480
jultey
Posté le 26-03-2002 à 00:32:11  profilanswer
 

Je viens de faire 2-3 essai avec la correction de faute d'ortho et apparemnt ca marche.
je vais quand même faire le while pour 'rester dans les règles'

n°117481
HappyHarry
Posté le 26-03-2002 à 00:33:58  profilanswer
 

ben franchement le while ne sert a rien si le nom du cd est clé de ta table !

n°117482
massanu
Posté le 26-03-2002 à 00:34:06  profilanswer
 

je sais pas du tout si c les regles mais moi je fait comme ca


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°117486
jultey
Posté le 26-03-2002 à 00:39:32  profilanswer
 

Citation :

// On envoie la requete
 $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()) ;
 
// Si on obtient une réponse, c est que le Cd existe déjà
        while (list($nom)=mysql_fetch_row($req))
 {
 $data=$nom ;
 }
 
       if($data)
       {
       // Le CD existe déja
       print("$cd_nom existe déja" ) ;
       }
// Pour insérer un CD, $data doit être nul
       else
       {...


 
Voila, comme ca ca marche aussi.
Le while doit pas servie a grand chose mais en general on obtient plusieurs lignes donc je crois que toujours le mettre n'est effectivement pas une mauvaise chose...
Merci de m'avoir aider... ;)  
Promis, une fois fini, je propose tout ca au téléchargement !!!

mood
Publicité
Posté le 26-03-2002 à 00:39:32  profilanswer
 

n°117487
HappyHarry
Posté le 26-03-2002 à 00:44:05  profilanswer
 

mouairf ... l'optimisation c faire au plus juste avec la situation qui se présente ... dans ton cas, vu que tu ne PEUT PAS avoir 2 fois le meme nom de cd, le while est TOTALEMENT inutile ...
mais bon ... chacun fait comme il veut


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  PHP retour du resultat d'une requete>condition

 

Sujets relatifs
[PHP MySQL] Ca me gonfle (normal je suis un noob)problem PHP --> HTML
[PHP/NT]donner les droits de modifications de fichiers a un script php[PHP,JAVA, web quoi]Convertir un fichier Unix en fichier dos
[PHP] kkun peut mexpliquer ce principe de session??[PHP] probleme de sauchettes (socket)
PHP NUKE + Multi pages[ PHP ] Comment on fait là ?
[PHP] Problème de REG_EMPTY 
Plus de sujets relatifs à : PHP retour du resultat d'une requete>condition


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR