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 :

Insertion d'un ligne [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é
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Par défaut Insertion d'un ligne
    Bonjour
    J'ai créé un formulaire de saisie d'heures pour une liste d'activités.
    Jusque là pas de problème
    Je voudrais insèrer dans ma base de données uniquement les heures saisies avec les activités concernées.
    Pour cela j'ai stocké dans un tableau ($mep4) uniquement les activités et les heures concernées.

    Dans le code ci-dessous je stocke les infos collectées dans le formulaire.
    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
    for ($i=0;$i<count($donnees4);$i++)
    				{
    					if (empty($_POST['heure4'][$i]))
    					{
    					}
    					else{
    					$sstot4=$array4[$i]+$sstot4;
    					$mep4[$i]['oi_ae']=$donnees4[$i]['oi_ae'];
    					$mep4[$i]['ordre']=$concat4;
    					$mep4[$i]['oi_lib']=$donnees4[$i]['oi_lib'];
    					$mep4[$i]['heure']=$array4[$i];
    					}
    				}
    			Print_r($mep4);
    				?>
    Dans le code ci-dessous je voudrais mettre à jour ma base de données "collectemo" et ma table "temp"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $cnx=mysql_connect("localhost","root","") or  die('Problème de connection à mysql');
    $base=mysql_select_db("collectemo") or die('Problème de DB');
     
    $requete4="INSERT INTO temp (temp_nni,temp_ae,temp_ordre,temp_liboi,temp_nbh) VALUES ($nni,'$mep4[oi_ae]','$mep4[ordre]','$mep4[oi_lib]',$mep4'[heure]')";
    $resultat4=mysql_query($requete4,$cnx);
    $fermeture=mysql_close($cnx);
    Un grand merci à celui ou celle qui me "dépatouillera"

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Salut,
    Déjà si tu détaillais un peu plus le problème ça nous aiguillerait, que se passe-t-il ? la mise a jour se fait ? partiellement ? etc ?

    Sinon dans ta requête tu as un problème à la fin :

    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Par défaut Pb Insert Into
    Il ne se passe rien, pas de message d'anomalies, ni de mise à jour partielle.
    Le néant.

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    En plus du problème soulevé plus haut, tu devrais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat4=mysql_query($requete4,$cnx) or die(mysql_error());
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Je remarque plusieurs choses.
    En 1er il faudrait afficher 2 trucs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo count(count($donnees4));
    print_r($_POST);
    Dire ce que renvoie ce code, ce qui permettra d'être certain qu'on rentre dans la boucle.
    Puis de contrôler ce que renvoie $_POST.


    Ensuite, dans ta 1ère partie de code tu fais un print_r($mep4).
    Est ce qu'il y a quelque chose d'affiché ?

    Concernant la 2ème partie de code, il y a des truc pas clairs.
    Normalement, tu stock les données dans un tableau $mep4 à 2 dimensions : $mep4[$i]['heure'].
    Or, dans la requête tu exploite ce tableau comme s'il y avait une seule dimension.
    Exemple : INSERT INTO temp (... bal bla bla ...) VALUES ($nni,'$mep4[oi_ae]', ... bla bla bla ...)
    A mon avis ça devrait être : $mep4[$i][oi_ae]

    Mais il manque quand même des quote entre 'oi_ae'.
    Il faudrait corriger la requête comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete4 = "INSERT INTO temp (temp_nni, temp_ae, temp_ordre, temp_liboi, temp_nbh) VALUES ($nni, '".$mep4[$i]['oi_ae']."', '".$mep4[$i]['ordre']."', '".$mep4[$i]['oi_lib']."', '".$mep4[$i]['heure']."')";
    Il y a une variable dont on ne sait pas d'où elle sort : $nni
    Elle est initialisée où ? Faire un echo sur celle ci serait peut être utile.
    Toujours concernant cette variable $nni, qui est le 1er champ de la requête : temp_nni
    Faudrait contrôler la structure de cette table et particulièrement ce champ "temp_nni".
    Voir si c'est une clé primaire en autoincrement ou pas.
    Si c'est le cas et que le $nni ne sert à rien, alors le supprimer de même que le champs "temp_nni" de cette requête serait peut utile.

  6. #6
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Par défaut Complément d'info sur mon problème
    Pour Ridekik, j'ai ajouté la mention die(mysql_error());
    et j'ai réussi à débloquer un truc. Le sql tourne mais me donne des cellules vides dans ma BDD.

    Pour Runcodephp
    Le $nni est une variable que j'ai ajouté dans l'execution de la fontion :
    function generermep($mep,$mep2,$mep3,$mep4,$nni)

    quand je fais $_print ($mep4), la liste s'affiche bien avec le nombre d'heures saisi et les activités concernés. Donc je rentre bien dans la boucle. Le problème vient de mon sql INSERT iNTO.

    J'essayes de mettre en pratique tes conseils dans mon sql.
    mais j'ai un parse error sur ma ligne INSERT INTO, je dois avoir un problème de guillemets ou de quotes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="INSERT INTO temp (temp_ae,temp_ordre,temp_liboi,temp_nbh) VALUES ("'.$mep4[$i]['oi_ae'].'","'.$mep4[$i]['ordre'].'","'$mep4[$i]['oi_lib'].'","'$mep4[$i]['heure'].'")";
    As tu une idée ? faut-il mettre les coches avant les guillements, j'ai essayé les deux cas mais j'ai toujours parse error

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

Discussions similaires

  1. Insertion de multiples lignes.
    Par ludvax dans le forum Oracle
    Réponses: 22
    Dernier message: 11/01/2010, 13h34
  2. Pd insertion de nouvelle ligne
    Par oops! dans le forum Langage
    Réponses: 1
    Dernier message: 12/09/2006, 18h36
  3. Bulk insert ignorant des lignes
    Par elvivo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/09/2006, 03h45
  4. insertion dynamique de lignes dans un tableau
    Par loreleï85 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/06/2006, 17h32
  5. insertion avec multiples lignes
    Par f066457 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/03/2006, 23h52

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