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 :

1 formulaire pour remplir 2 tables [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 72
    Par défaut 1 formulaire pour remplir 2 tables
    Bonjour,
    J'ai un formulaire qui doit à la fois remplir une table et mettre à jour la deuxième.
    Pour remplir la première pas de problème, par contre ça coince dans mon UPDATE pour la deuxième table.
    Voilà mon code :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    mysql_connect("localhost", "root","");
    mysql_select_db('***');
     
    if(isset($_POST['prog_promo']))      $prog_promo=$_POST['prog_promo'];
    else      $prog_promo="";
     
    if(isset($_POST['prog_promo']))      $nom_site=$_POST['prog_promo'];
    else      $nom_site="";
     
    if(isset($_POST['date_debut_promo']))      $date_debut_promo=$_POST['date_debut_promo'];
    else      $date_debut_promo="";
     
    if(isset($_POST['date_fin_promo']))      $date_fin_promo=$_POST['date_fin_promo'];
    else      $date_fin_promo="";
     
    if(isset($_POST['texte_promo']))      $texte_promo=$_POST['texte_promo'];
    else      $texte_promo="";
     
    if(isset($_POST['lien_web']))      $lien_web=$_POST['lien_web'];
    else      $lien_web="";
     
    if(isset($_POST['promotion']))      $promotion=$_POST['promotion'];
    else      $promotion="";
     
    if( isset($_POST['upload']) )
    {
        $content_dir = '../logos_promotion/';
     
        $tmp_file = $_FILES['logo_prog_promo']['tmp_name'];
     
        if( !is_uploaded_file($tmp_file) )
        {
            exit("Le fichier est introuvable");
        }
     
    // on vérifie maintenant l'extension
        $type_file = $_FILES['logo_prog_promo']['type'];
     
        if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'gif') )
        {
            exit("Le fichier n'est pas une image");
        }
     
    // on copie le fichier dans le dossier de destination
        $logo_prog_promo = $_FILES['logo_prog_promo']['name'];
     
        if( !move_uploaded_file($tmp_file, $content_dir . $logo_prog_promo) )
        {
            exit("Impossible de copier le fichier dans $content_dir");
        }
    }
     
    mysql_query("SET NAMES 'utf8'");
     
    $sql="INSERT INTO *** (id_site_promotion,prog_promo,logo_prog_promo,date_debut_promo,date_fin_promo,texte_promo,lien_web) 
    VALUES('".mysql_real_escape_string('')."','".mysql_real_escape_string($prog_promo)."','".mysql_real_escape_string($logo_prog_promo)."','".mysql_real_escape_string($date_debut_promo)."','".mysql_real_escape_string($date_fin_promo)."','".mysql_real_escape_string($texte_promo)."','".mysql_real_escape_string($lien_web)."')";mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
    $sql = 'UPDATE **** SET nom_site="'.$nom_site.'" WHERE id_site="'.$_POST['id_site']."';
    (id_site,nom_site,logo_site,presentation_site,description_site,lien_site,copie_ecran_site,rubrique_id,visible,promotion) 
    VALUES('','','','','','','','','','".mysql_real_escape_string($promotion)."')';mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

  2. #2
    Membre émérite Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Par défaut
    Si tu veux que l'on t'aide sur ce problème, il va falloir nous en dire un peu plus.

    Déjà, quel est le message d'erreur ??

  3. #3
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    Tu n'as pas dû chercher bien longtemps..

    Déjà, utilises un éditeur correct, au moins tu verras qu'il te manque des guillemets et que d'autres guillemets sont mal placées dans ta seconde requête.

    Ensuite, vérifies ta requête: pourquoi ce point virgule en fin de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'UPDATE **** SET nom_site="'.$nom_site.'" WHERE id_site="'.$_POST['id_site']."';
    Enfin, un détail html, on écrit <br/> et pas <br>.

    Pour moi, cela serait donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = 'UPDATE **** SET nom_site="'.$nom_site.'" WHERE id_site="'.$_POST['id_site'].'" 
    (id_site,nom_site,logo_site,presentation_site,description_site,lien_site,copie_ecran_site,rubrique_id,visible,promotion) 
    VALUES('','','','','','','','','','.mysql_real_escape_string($promotion).')';
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 72
    Par défaut
    Bonjour;
    Voilà mon message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur SQL !UPDATE site SET nom_site="Nom" WHERE id_site="'; (id_site,nom_site,logo_site,presentation_site,description_site,lien_site,copie_ecran_site,rubrique_id,visible,promotion) VALUES('','','','','','','','','','O')
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"'; (id_site,nom_site,logo_site,presentation_site,description_site,lien_site,co' at line 1
    Je pense que le problème vient de l'id_site , mais je trouve pas

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 72
    Par défaut
    Bonjour,
    J'ai lu le message, j'ai supprimé le point-virgule en fin de ligne, mais rien ni fait, ça ne fonctionne pas !
    Je cherche d'autres solutions, notamment en supprimant les "VALUE"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'UPDATE site SET id_site="'.$id_site.'" promotion="'.$promotion.'" WHERE id_site="'.$_POST['id_site'].'"';
    Du coup mon message d'erreur est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur SQL !UPDATE site SET id_site="" promotion="O" WHERE id_site=""
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'promotion="O" WHERE id_site=""' at line 1

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 72
    Par défaut
    Rebonjour à tous, j'ai toujours mon problème pour remplir ma table et uploader l'autre
    J'ai modifier mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //Insertion dans la base "Promotion"
    $sql="INSERT INTO promotion (id_site_promotion,site_id,date_debut_promo,date_fin_promo,texte_promo) 
    VALUES('".mysql_real_escape_string('')."','".mysql_real_escape_string($site_id)."','$date_debut_promo','$date_fin_promo','".mysql_real_escape_string($texte_promo)."')";
     
    //Mise à jour base "Site"
    $sql = 'UPDATE site SET promotion="'.$promotion.'" WHERE id_site="'.$_POST['id_site'].'"';
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    Maintenant j'arrive à updater ma table, mais le INSERT ne se fait plus !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/08/2014, 07h48
  2. [AC-2003] Création formulaire pour remplir une table
    Par floriang2 dans le forum IHM
    Réponses: 1
    Dernier message: 28/11/2013, 10h30
  3. [AC-2007] Formulaire pour remplir plusieurs tables (débutante access)
    Par korentine dans le forum IHM
    Réponses: 2
    Dernier message: 23/07/2010, 13h40
  4. 1 formulaire pour remplir deux tables
    Par galact dans le forum Access
    Réponses: 1
    Dernier message: 26/06/2008, 13h54
  5. Réponses: 2
    Dernier message: 28/04/2007, 15h31

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