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 :

[SQL] Problème insertion de données


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut [SQL] Problème insertion de données
    Bonjour à tous,
    J'ai des petits soucis avec l'insertion des données dans ma BDD.
    quand je liste les valeurs contenu dans mon tableau, voila ce que j'obtiens :
    TOTO
    1
    2
    3
    4
    TITI
    5
    6
    7
    8
    TATA
    9
    10
    11
    12
    Jusque là, pas de porblème, par contre quand je les inserts dans ma BDD, voilà ce que je retrouve dans ma BDD :
    TATA|9|12|11|4
    TATA|9|12|11|8

    Et moi, ce que je veux c'est ça :
    TOTO|1|2|3|4
    TITI|5|6|7|8
    TATA|9|10|11|12

    Voici le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $compteur=$_SESSION['tableau']*5;
    for ($i=0; $i<$compteur; $i++){
    echo $_SESSION['inter'][$i];
    }
    for ($i=0; $i<$compteur; $i=$i+5){
    if ($_SESSION['inter'][$i]<> "") {
    echo "<br>".$i;
    $req="UPDATE correspondre SET Nom_inter='".$_SESSION['inter'][$i]."', Num_projet='".$_SESSION['code_projet']."', jour_TR1='".$_SESSION['inter'][$i+1]."', jour_TR2='".$_SESSION['inter'][$i+2]."', jour_TR3='".$_SESSION['inter'][$i+3]."', jour_TR2='".$_SESSION['inter'][$i+4]."' WHERE Num_projet='".$_SESSION['code_projet']."';";
    $insert=mysql_query($req);
    }
    }
    Quelqu'un voit-il d'où viens le problème ?
    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Je rejouterai une condition pour vérifier que tu démarres bien sur TOTO, TITI ou TATA (donc tous les 5):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for ($i=0; $i<$compteur; $i=$i+5){
    if ($_SESSION['inter'][$i]<> "") {
       if(in_array($i, array(0, 5, 9)) {
          echo "<br>".$i;
          $req="UPDATE correspondre SET Nom_inter='".$_SESSION['inter'][$i]."', Num_projet='".$_SESSION['code_projet']."', jour_TR1='".$_SESSION['inter'][$i+1]."', jour_TR2='".$_SESSION['inter'][$i+2]."', jour_TR3='".$_SESSION['inter'][$i+3]."', jour_TR2='".$_SESSION['inter'][$i+4]."' WHERE Num_projet='".$_SESSION['code_projet']."';";
          $insert=mysql_query($req);
       }
    }
    }

  3. #3
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    J'ai rajouté le in_array mais ce ne marche pas, j'ai un message d'erreur
    Warning: in_array(): Wrong datatype for second argument in c:\program files\easyphp1-8\www\insert_modif_projet.php on line 80

    Apparement la syntaxe exact est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(in_array(array(0,5,10),$i))
    Mais ça ne marche pas mieux

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Et il s'affiche quoi?

  5. #5
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    rien d'autres mis a part le message d'erreur

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ce code fonctionne très bien chez moi:

    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
    <?php
    $var['inter'] = array('TOTO',
                         '1',
                         '2',
                         '3',
                         '4',
                         'TITI',
                         '5',
                         '6',
                         '7',
                         '8',
                         'TATA',
                         '9',
                         '10',
                         '11',
                         '12');
     
    for ($i=0; $i<count($var['inter']); $i=$i+5){
       if ($var['inter'][$i]<> "") {
             echo $var['inter'][$i]."<br>";
             echo $var['inter'][$i+1]."<br>";
             echo $var['inter'][$i+2]."<br>";
             echo $var['inter'][$i+3]."<br>";
             echo $var['inter'][$i+4]."<br><br />";      
       }
    }
    ?>
    Il m'affiche bien les groupes que je veux. Ca peut aussi venir de ta variable $_SESSION['tableau'] pour la boucle...
    Edit: Mmm ça servait à rien d'ajouter ma condition vu que tu fais $i=$i+5...

  7. #7
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    En fait le truc, c'est qu'au lieu de m'insérer les données comme je le souhaite, il ne m'insère que la dernière série et deux fois de suite. par dernière série j'entends TATA|9|10|11|12.

  8. #8
    En attente de confirmation mail Avatar de gd_dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 79
    Points : 129
    Points
    129
    Par défaut Je pense que c'est dans la requête
    Bonjours,

    Le problème est dans la requête SQL

    UPDATE correspondre
    SET Nom_inter='".$_SESSION['inter'][$i]."',
    Num_projet='".$_SESSION['code_projet']."',
    jour_TR1='".$_SESSION['inter'][$i+1]."',
    jour_TR2='".$_SESSION['inter'][$i+2]."',
    jour_TR3='".$_SESSION['inter'][$i+3]."',
    jour_TR2='".$_SESSION['inter'][$i+4]."'
    WHERE Num_projet='".$_SESSION['code_projet']."';";

    Il faut ajouter dans la clause where :
    and Nom_inter='".$_SESSION['inter'][$i]."'

  9. #9
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    J'ai résolu mon problème, en fait, j'essayais de faire un UDPDATE sur des données qui n'étaient pas présentes dans le BDD. Merci tout de même de ton aide.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/07/2010, 23h43
  2. Réponses: 7
    Dernier message: 07/05/2009, 17h32
  3. Problème insertion de données : parse error
    Par snaxisnake dans le forum Langage
    Réponses: 2
    Dernier message: 19/02/2008, 15h56
  4. [MySQL] Problème insertion de données dans table Mysql
    Par Malcolm78 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/10/2007, 17h25
  5. [SQL] Problème insertion dans Base SQL après saisie d'un formulaire
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 15/05/2007, 13h44

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