probleme d'insertion dans Mysql avec easyphp

probleme d'insertion dans Mysql avec easyphp - PHP - Programmation

Marsh Posté le 16-02-2005 à 14:14:30    

bonjour a tous  
j'ai un petit probleme d'insertion dans une base MYSQL
j'ai pas d'erreur de connection à celle ci (de se coté la tout va bien)
quand je fais mon insertion, pas de probleme, mais apres quand je vais dans PHPMYadmin et que je fait afficher ma table, rien n'est rentré
 
voici ma table :
 
   Champ             Type         Null   Défaut  
   uploader_pwd     varchar(30)   Non                  
   uploader_login   varchar(30)   Non                  
   uploader_nom     varchar(30)   Non                  
   uploader_prenom  varchar(30)   Non                  
   uploader_mail    varchar(50)   Non                  
   niv_banni        int(11)       Oui     0                
   date_banni       date          Oui     0000-00-00                
       
et voici mon code php :
 
            $requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'" )';
           
            mysql_query($requet);
 
 
 
 
merci beaucoup pour l'aide  
 

Reply

Marsh Posté le 16-02-2005 à 14:14:30   

Reply

Marsh Posté le 16-02-2005 à 14:18:28    

et l'erreur retournée c'est quoi ?.


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 16-02-2005 à 14:20:02    

Problème de Sql,
Tu essaye d'insérer 5 champs alors que tu en a 7
dans la table...
Dans ce cas on précise le nom des champs...

Reply

Marsh Posté le 16-02-2005 à 17:05:28    

meme si on met une valeur par defaut ?
sinon quelqu'un connais une fonction php qui me permetterai de rentrai la date courante dans la base ?
 
merci beaucoup pour votre aide

Reply

Marsh Posté le 16-02-2005 à 17:07:13    

jj59 a écrit :

la date courante dans la base ?


CURDATE()

Reply

Marsh Posté le 16-02-2005 à 17:22:55    

jj59 a écrit :

meme si on met une valeur par defaut ?
sinon quelqu'un connais une fonction php qui me permetterai de rentrai la date courante dans la base ?
 
merci beaucoup pour votre aide


strftime(); ets une fonction php qui capture la date courante sous différents formats

Reply

Marsh Posté le 16-02-2005 à 17:25:00    

oups, je croyais qu'il cherchait pour sql

Reply

Marsh Posté le 16-02-2005 à 17:59:31    

j'ai essayé en mettant des valeurs par defaut et rien ne s'ecrit dans la base
 
voici mon code :
$requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'", 0 , 0000-00-01"'.'" )';
           
            mysql_query($requet);
 
j'ai rien changé a ma table
 
PS : aucune erreur ne s'affiche lorsque je test

Reply

Marsh Posté le 16-02-2005 à 18:07:13    

un petit mysql_error pourrait aider
sinon ya des trucs bizarres dans ta façon d'utiliser les quotes

Reply

Marsh Posté le 16-02-2005 à 18:41:10    

je sais pas moi je fais comme sa, maintenant si tu as une autre methode , je suis preneur parce que c'est vrai , c'est le bordel  
 
merci pour ton aide

Reply

Marsh Posté le 16-02-2005 à 18:41:10   

Reply

Marsh Posté le 16-02-2005 à 18:45:36    

jj59 a écrit :

bonjour a tous  
j'ai un petit probleme d'insertion dans une base MYSQL
j'ai pas d'erreur de connection à celle ci (de se coté la tout va bien)
quand je fais mon insertion, pas de probleme, mais apres quand je vais dans PHPMYadmin et que je fait afficher ma table, rien n'est rentré
 
voici ma table :
 
   Champ             Type         Null   Défaut  
   uploader_pwd     varchar(30)   Non                  
   uploader_login   varchar(30)   Non                  
   uploader_nom     varchar(30)   Non                  
   uploader_prenom  varchar(30)   Non                  
   uploader_mail    varchar(50)   Non                  
   niv_banni        int(11)       Oui     0                
   date_banni       date          Oui     0000-00-00                
       
et voici mon code php :
 
            $requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'" )';
           
            mysql_query($requet);
 
 
 
 
merci beaucoup pour l'aide


 
 
Clique sur afficher en haut dans le menu.  :o  
 
 :sarcastic:  :sarcastic:

Reply

Marsh Posté le 16-02-2005 à 18:47:56    

marche pas justement, il est grisé et inactif
c qu'il y a rien d'entré dans la base

Reply

Marsh Posté le 16-02-2005 à 18:49:13    

jj59 a écrit :

marche pas justement, il est grisé et inactif
c qu'il y a rien d'entré dans la base


 
F5  :o  

Reply

Marsh Posté le 16-02-2005 à 18:51:36    

meme avec F5 sa marche pas

Reply

Marsh Posté le 16-02-2005 à 18:53:11    

jj59 a écrit :

meme avec F5 sa marche pas


 
Rajoute un champ id int avec auto-incrément et recommence ton insert depuis PHP.
 
 
 
 

Reply

Marsh Posté le 16-02-2005 à 18:57:03    

non comprend pas le but de cette manoeuvre
en fait au debut dans ma table , il n'y avait pas les champs :
 
niv_banni                
date_banni  
 
et avec le php je fesait    
            $requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'" )';  
 
 
et sa marchais nikel.
c'est depuis que j'ai rajouté ces deux champs dans ma table que sa ne marche plus et je sais vraiment pas pourquoi      

Reply

Marsh Posté le 16-02-2005 à 19:03:27    

jj59 a écrit :

non comprend pas le but de cette manoeuvre
en fait au debut dans ma table , il n'y avait pas les champs :
 
niv_banni                
date_banni  
 
et avec le php je fesait    
            $requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'" )';  
 
 
et sa marchais nikel.
c'est depuis que j'ai rajouté ces deux champs dans ma table que sa ne marche plus et je sais vraiment pas pourquoi


 
ET tu n'as aucun message d'erreur à l'insert ?  :o  
 
Montre ton code PHP exact, la page entière...  :o  

Reply

Marsh Posté le 16-02-2005 à 19:12:37    

aucun message d'erreur
 
voici le code
 
$host = "localhost";  
           
        $user = "moi";
           
        $bdd = "bdd";
           
        $passwd  = "mon code";
         
mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur" );
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees" );
 
 $requet = 'INSERT INTO uploader VALUES ("'.$_POST['pwdcreateur'].'", "'.$_POST['logincreateur'].'", "'.$_POST['nomcreateur'].'", "'.$_POST['prenomcreateur'].'", "'.$_POST['mailcreateur'].'", 0 , NULL "' . '" )';  
             
 
mysql_query($requet);

Reply

Marsh Posté le 16-02-2005 à 23:21:34    

c bon sa marche, le probleme venait de ma base et de guillemets mal placées  
je vous remerci quand meme pour votre aide, elle me fut tres utile. c vraiment sympa

Reply

Marsh Posté le 16-02-2005 à 23:31:59    

j'ai encore un leger probleme, tout bete a mon avi, mais que j'arrive pas a resoudre
 
voici le code

Reply

Marsh Posté le 16-02-2005 à 23:32:57    

j'ai encore un leger probleme, tout bete a mon avi, mais que j'arrive pas a resoudre
 
voici le code
$query = "UPDATE uploader SET niv_banni = niv_banni+1 WHERE uploader_id = $cpt";
            $result = mysql_query($query);
             
            $query = "SELECT niv_banni WHERE uploader_id = $cpt";
            $result = mysql_query($query);
             
            if($result == 1)
            {
              echo "je suis a 1";
            }
            if($result == 2)
            {
              echo "je suis a 2";
            }
            if($result == 3)
            {
              echo "je suis a 3";
            }
 
=> aucun echo ne se fait, et je ne comprend pas pourquoi  
merci d'avance

Reply

Marsh Posté le 16-02-2005 à 23:37:55    

jj59 a écrit :

j'ai encore un leger probleme, tout bete a mon avi, mais que j'arrive pas a resoudre
 
voici le code
$query = "UPDATE uploader SET niv_banni = niv_banni+1 WHERE uploader_id = $cpt";
            $result = mysql_query($query);
             
            $query = "SELECT niv_banni WHERE uploader_id = $cpt";
            $result = mysql_query($query);
             
            if($result == 1)
            {
              echo "je suis a 1";
            }
            if($result == 2)
            {
              echo "je suis a 2";
            }
            if($result == 3)
            {
              echo "je suis a 3";
            }
 
=> aucun echo ne se fait, et je ne comprend pas pourquoi  
merci d'avance


 
si tu collait le bout de code entier peut etre, j'ai deja mon idée mais sans la fin du code je te dirait peut etre une connerie...
 
par contre easyphp comme serveur :/
 
franchement ya mieu avec la meme facilitée d'utilisation que easy php ;)


---------------
204 - No Content
Reply

Marsh Posté le 16-02-2005 à 23:58:54    

merci pour l'aide, voici mon code entier
 
<?php
 
        include("../ressources/fonction.php" );
        connexion();                    
           
        $query = "SELECT * FROM uploader";  
        $result = mysql_query($query);  
        $max = mysql_num_rows($result);
     
        for($cpt=1 ; $cpt <= $max ; $cpt++)
        {
          $nom_case = "choix".$cpt;
 
          if(isset($_POST[$nom_case]))
          {
            $query = "UPDATE uploader SET niv_banni = niv_banni+1 WHERE uploader_id = $cpt";
            $result = mysql_query($query);
             
            $query2 = "SELECT niv_banni WHERE uploader_id = $cpt";
            $result2 = mysql_query($query);
 
            echo mysql_result($result2,$cpt);
             
            if(mysql_result($result2,$cpt) == "1" )
            {
              echo "je suis a 1";
            }
            if(mysql_result($result2,$cpt) == "2" )
            {
              echo "je suis a 2";
            }
            if(mysql_result($result2,$cpt) == "3" )
            {
              echo "je suis a 3";
            }
          }
        }
         
       
           
          echo "Tout c'est bien passé";
          echo "<div id="."bouton-retour".">".
            "<form methode="."post"." action="."gbdd-uploader.php"."><input type="."submit"." value="."Retour"." /></form>".
            "</div>";
 
         
        mysql_close();  
         
     ?>  
 
par contre j'ai pris easyphp parce que c'est le 1er foi que je developpe un site en php
je ne connaissais pas ce language
mais bon si tu connais autre chose , dit toujours sa m'interesse parce que c vrai que pour la gestion de la base de donnée c pas terrible

Reply

Marsh Posté le 17-02-2005 à 00:18:06    

jj59 a écrit :

merci pour l'aide, voici mon code entier
 
<?php
 
        include("../ressources/fonction.php" );
        connexion();                    
           
        $query = "SELECT * FROM uploader";  
        $result = mysql_query($query);  
        $max = mysql_num_rows($result);
     
        for($cpt=1 ; $cpt <= $max ; $cpt++)
        {
          $nom_case = "choix".$cpt;
 
          if(isset($_POST[$nom_case]))
          {
            $query = "UPDATE uploader SET niv_banni = niv_banni+1 WHERE uploader_id = $cpt";
            $result = mysql_query($query);
             
            $query2 = "SELECT niv_banni WHERE uploader_id = $cpt";
            $result2 = mysql_query($query);
 
            echo mysql_result($result2,$cpt);
             
            if(mysql_result($result2,$cpt) == "1" )
            {
              echo "je suis a 1";
            }
            if(mysql_result($result2,$cpt) == "2" )
            {
              echo "je suis a 2";
            }
            if(mysql_result($result2,$cpt) == "3" )
            {
              echo "je suis a 3";
            }
          }
        }
         
       
           
          echo "Tout c'est bien passé";
          echo "<div id="."bouton-retour".">".
            "<form methode="."post"." action="."gbdd-uploader.php"."><input type="."submit"." value="."Retour"." /></form>".
            "</div>";
 
         
        mysql_close();  
         
     ?>  
 
euh, il est ou le else :??:
 
normalement quand ya un if faut un else apres, par ex SI x=1 , afficher OK, SINON (donc else) afficher non ok.
 
edit 2 : fait gaffe aux " ; " aussi...

 
par contre j'ai pris easyphp parce que c'est le 1er foi que je developpe un site en php
je ne connaissais pas ce language
mais bon si tu connais autre chose , dit toujours sa m'interesse parce que c vrai que pour la gestion de la base de donnée c pas terrible
 
ya d'autres serveurs web moins troués qu'easy php, passe ici si tu en a envie ;)


Message édité par ooterreuroo le 17-02-2005 à 00:19:29

---------------
204 - No Content
Reply

Marsh Posté le 17-02-2005 à 10:04:10    

Citation :

$query2 = "SELECT niv_banni WHERE uploader_id = $cpt";
$result2 = mysql_query($query);


t'a prévu de filer un nom de table dans ta requete SELECT ???
 
et ensuite quand tu veux savoir ce qu'il y a dans $result2, c'est pas mal de parcourir les enregistrement avec un fetch_object, fetch_array, fetch_assoc, enfin tu choisi quoi...
 
ensuite, pour le test, if =1 ou 2 ou 3..etc... c'est des elsif qui serait plus approprié vu qu'il y en qu'un seul de vrai à chaque fois, ou alors meme un case ça peux le faire ;)
 
PS: Pour répondre à ooterreuroo, pkoi un if aurait tjs un else !!! si la condition est vrai je fais un truc, sinon je fais rien, je vais pas écrire un else dans lequel je vais lui dire de rien faire quand meme !!!


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 17-02-2005 à 11:28:26    

ca dépends, si sa condition est tout le temps repmplie ok, mais si la condition n'est pas remplie,  on peux afficher ou faire qqe chose...
 
j'ai un script php et si le nom d'utilisateur n'est pas bon, au lieu de s'arreter ca affiche que le nom d'utilisateur est pas bon et ca reviens a la page précédente...
 
pour les elseif c'est plus adapté certes...
 
et faut quand meme qu'il fasse gaffe aux ; parce que si il se plante ou les oublie ca marchera pas ;/


---------------
204 - No Content
Reply

Marsh Posté le 17-02-2005 à 11:56:35    

merci pour l'aide les gars, c'est vraiment sympa
j'ai presque resolu le probleme mais sa ne marche toujours pas
 
Xav pourquoi je doit utiliser un fetch_object, fetch_array, fetch_assoc ?? vu que ma requet SQL ne va renvoyer qu'un seul enregistrement (une seul ligne de la table)
 
voici mon code actuel
 
<?php
 
        include("../ressources/fonction.php" );
        connexion();                    
           
        $query = "SELECT * FROM uploader";  
        $result = mysql_query($query);  
        $max = mysql_num_rows($result);
     
        for($cpt=1 ; $cpt <= $max ; $cpt++)
        {
          $nom_case = "choix".$cpt;
 
          if(isset($_POST[$nom_case]))
          {
            $query = "UPDATE uploader SET niv_banni = niv_banni+1 WHERE uploader_id = $cpt";
            $result = mysql_query($query);
             
            $query2 = "SELECT niv_banni FROM uploader WHERE uploader_id = $cpt";
            $result2 = mysql_query($query2);
             
 
echo $result2; // renvoi tout le temps Resource id # 5            
            if($result2 == "1" )
            {
              echo "je suis a 1";
            }
            else if($result2 == "2" )
            {
              echo "je suis a 2";
            }
            else if($result2 == "3" )
            {
              echo "je suis a 3";
            }
          }
        }
         
          echo "Tout c'est bien passé";
          echo "<div id="."bouton-retour".">".
            "<form methode="."post"." action="."gbdd-uploader.php"."><input type="."submit"." value="."Retour"." /></form>".
            "</div>";
 
        mysql_close();    
     ?>  
 
Par contre desole pour le FROM c'été une erreur d'inatention

Reply

Marsh Posté le 17-02-2005 à 13:09:05    

ooterreuroo a écrit :

ca dépends, si sa condition est tout le temps repmplie ok, mais si la condition n'est pas remplie,  on peux afficher ou faire qqe chose...
 
j'ai un script php et si le nom d'utilisateur n'est pas bon, au lieu de s'arreter ca affiche que le nom d'utilisateur est pas bon et ca reviens a la page précédente...
 
pour les elseif c'est plus adapté certes...
 
et faut quand meme qu'il fasse gaffe aux ; parce que si il se plante ou les oublie ca marchera pas ;/


 
si la condition est tout le temps rempli, ça n'est pas une condition, donc tu teste pas, tu fait...
 
ensuite je suis d'accord avec toi, que " en général" ya un else, mais ça n'a rien d'obligatoire comme tu semblais vouloir l'affirmer.
Dans l'exemple que tu donne, il est évident que soit on identifie, soit on affiche "identification incorrecte", mais c'est n'est pas tjs le cas.
 
Par exemple si un user est loggé en admin, ben tu lui affiche le menu d'administration en plus, sinon, ben tu affiche rien, dans ce cas pas de else ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 17-02-2005 à 13:14:13    

Citation :

Xav pourquoi je doit utiliser un fetch_object, fetch_array, fetch_assoc ?? vu que ma requet SQL ne va renvoyer qu'un seul enregistrement (une seul ligne de la table)


ben la doc elle te dis quoi ???
http://fr.php.net/manual/fr/function.mysql-query.php
 

Citation :

Pour les commandes SELECT , mysql_query() retourne un identifiant de résultat que vous pouvez passer à mysql_fetch_array(), ou n'importe quelle autre fonction de lecture de résultat. Lorsque vous avez terminé avec le résultat, libérez la mémoire avec mysql_free_result().


 
 
ça te retourne bien un identifiant de résultat que je sache

Citation :

Resource id # 5


 
Je veux bien aider, mais quand il s'agit de lire la doc, je vais quand meme pas le faire à ta place (quoique, en fait je viens de le faire :()


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 17-02-2005 à 14:27:14    

c bon j'ai reussi en fesant un
$row = mysql_fetch_row($result2);  
 
puis en utilisant $row[0]
personnelement, je trouve cette methode un peu barbare (fair un tableau pour stocké une variable, c pas terrible)
mais bon sa marche , c l'essentiel merci pour votre aide

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed