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

PHP & Base de données Discussion :

[Conception] insertion sql en php, dans une base de donnée ?


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 497
    Points : 194
    Points
    194
    Par défaut [Conception] insertion sql en php, dans une base de donnée ?
    Bonjour,
    je fait un tutorial qui démontre comment inserer des données à l'aide d'un formulaire dans une base de donnée !
    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
    27
    28
    29
    30
    31
    32
     
    <?
    echo $_POST[nom]."<br>";
    echo nl2br(stripslashes($_POST[informations]))."<br>";
    echo $_POST[categorie]."<br>";
     
    $hote="localhost";
    $utilisateur="root";
    $modpasse="6121970";
     
    $connection=mysql_connect ($hote, $utilisateur, $modpasse);
    //echo $connection;
     
    $nomdelabase="labase";
    mysql_select_db ($nomdelabase, $connection);
     
    $requete="INSERT latable SET numero='', nom='$_POST[nom]', informations='$_POST[informations]', catégorie='$_POST[categorie]'";
     
    //echo $requete;
     
    //$resultat=mysql_query ($requete, $connection);
     
    //echo $resultat;
     
    /*
    $test=mysql_fetch_array($resultat);
    
    //print_r($test);
    
    echo nl2br($test[informations]);
    */
    ?>
    J'ai beau retourner le code la requete ne fonctionne pas, quand j'éssaie d'afficher la requete avec echo $requete; rien ne s'affiche, il est donc dit que la connection, la requette ou la sintaxe est déficiente parce que sa doit obligatoiremen afficher quelques chose un "1" notement et j'ai vérifier phpmyadmin rien n'est écrit ?
    Merci d'avance

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salu,

    ta requete est fauuse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete="INSERT latable SET numero='', nom='$_POST[nom]', informations='$_POST[informations]', catégorie='$_POST[categorie]'";
    ceci n'existe pas

    c'est:
    -insert into table values...
    ou
    -update table set...

  3. #3
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 497
    Points : 194
    Points
    194
    Par défaut
    J'ai éssayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO latable VALUE numero='', nom='Monsieur Machin', informations='Voici les information à inserer dans la base de donnée C\'est très bien', catégorie='infos'
    Sa ne fonctionne pas ?¿
    ou alors j'ai rien compris mais c'est vrai qu'en sql c'est la sintaxe d'après phpmyadmin, bizarre !

  4. #4
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    SAlut l'ami SQL,

    Ta requete est encore fausse car la syntaxe serait plutot:

    $requete='INSERT INTO ma_table(nom_colonne_1,nom_colonne_2) VALUES (id_par_exemple, "ou texte aussi")';

    bref tu donne d'abord les noms des colonnes auquelles tu vas affecter une valeur, a savoir que cela depend la conception de ta base : si des colonnes sont decrite comme NOT NULL ou si tu a declarer des colonnes en auto-increment (voir tuto sql, par exemple http://www.ianywhere.com/developer/p...r9/dbrffr9.htm) , et ensuite tu leur attribue des valeurs avec l'instruction values()


    8) Ah mais vive les tuto fait par des pros !!!

    bon dev'
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  5. #5
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Citation Envoyé par artotal
    J'ai éssayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO latable VALUE numero='', nom='Monsieur Machin', informations='Voici les information à inserer dans la base de donnée C\'est très bien', catégorie='infos'
    Sa ne fonctionne pas ?¿
    ou alors j'ai rien compris mais c'est vrai qu'en sql c'est la sintaxe d'après phpmyadmin, bizarre !
    essaies comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO latable VALUES (numero='', nom='Monsieur Machin', informations='Voici les information à inserer dans la base de donnée C\'est très bien', catégorie='infos')
    [edit]ça marche si tu as exactement 4 champs dans la table, et si numero est un auto-increment mais NULL au lieu de numero=''
    sinon si ce n'est pas le nombre exact de champs contenus dans la table, fait comme dit plus haut, CAD en nommant les champs avant VALUES , en plus tu es sur de ne pas faire de conneries de cette façon, c'est la meilleure...[/edit]
    ;-)

  6. #6
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 497
    Points : 194
    Points
    194
    Par défaut
    Sa ne fonctionne pas donc je vous explique la manoeuvre :
    alors en fait j'ai 4 champs, dont "numero" qui est auto increment bien sur !
    seulement je crois que vous n'avez pas saisis !
    le but de l'opération étant qu'à la suite du formulaire j'insere, modifie et suprime des informations de la base !
    Donc je veux entrez dans les valeur de champs des valeurs de variables.
    et sa doit être ceux remplis par l'utilisateur dans la page du formulaire sous la forme numero='', graal='$_POST[blabla]', éveque='$_POST[test]', maupassant='$_POST[pope]',"
    Afin de reçevoir et enregistré les donnée du formulaire directement dans la table et les champs demander.

  7. #7
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Je crois qu'un passage par les cours php/mysql s'impose

    pour une table du nom de "matable" ayant les champs suivants :
    - id_enreg > int auto-increment
    - graal > varchar
    - eveque > varchar
    - maupassant > varchar
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <?php
    // connexion
    $link = mysql_connect($hote,$login,$password);
    if(!$link) die (mysql_error());
    mysql_select_db($base) or die (mysql_error());
     
    // reception des valeurs POST
    // pour l'exemple, si elle n'existent pas, on met une valeur vide... mais on pourrait mettre un valeur par défaut
    // sauf pour $id_enreg qui definit s'il s'agit d'un insert ou d'un update
    $id_enreg=(!isset($_POST['id_enreg']))?(''):($_POST['id_enreg']);
    $graal=(!isset($_POST['graal']))?(''):($_POST['graal']);
    $eveque=(!isset($_POST['eveque']))?(''):($_POST['eveque']);
    $maupassant=(!isset($_POST['maupassant']))?(''):($_POST['maupassant']);
     
    // echappement des quotes
    $graal=mysql_real_escape_string($graal, $link);
    $eveque=mysql_real_escape_string($eveque, $link);
    $maupassant=mysql_real_escape_string($maupassant, $link);
     
    if(empty($id_enreg)) {
     
       // insertion
       $sql = "INSERT INTO `matable` (id_enreg, graal, eveque, maupassant) VALUES (NULL, '$graal', '$eveque', '$maupassant');
    
    }else {
    
       // mise a jour
       $sql = "UPDATE `matable` SET graal = '$graal', eveque = '$eveque', maupassant = '$maupassant' WHERE id_enreg = ".$id_enreg;
    
    }
    
    $res = mysql_query($sql, $link);
    if(!$res) die (mysql_error());
    echo "Ajouts/Modifications effectués";
    ?>

Discussions similaires

  1. [Conception] Repérer un nouvel enregistrement dans une base de données
    Par MikeV dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/08/2007, 16h49
  2. [Conception] inertion d'un fichier dans une base de donne
    Par laminebarasow dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/07/2006, 23h13
  3. [MySQL] Récupération de code php dans une base de données
    Par kitana dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/03/2006, 00h25
  4. [Conception] Stocker des fichiers multimédia dans une base de données
    Par haifa84 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/03/2006, 17h47
  5. [Conception] Code php dans une base de donnée
    Par krfa1 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/09/2005, 10h58

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