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

Langage PHP Discussion :

Seul le premier chiffre est enregistré à l'insertion


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Points : 58
    Points
    58
    Par défaut Seul le premier chiffre est enregistré à l'insertion
    Bonjour, j'ai un formulaire qui permet de déclarer un achat avec comme champs:

    ID_creancier, montant, description, date, ID_debiteurs

    Mon formulaire est simple:

    Un menu (ou liste selon), 3 TextArea, et une liste

    Je récupère les ID des personnes avec la méthode foreach...

    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
    $montant = $_POST['montant'];
    $date = $_POST['date'];
    $desc = $_POST['descr'];
     
     
    foreach($_POST["creancier"] as $creancier)
    {
    	$creancier_total = count($_POST["creancier"]);
     
    	foreach($_POST["debiteur"] as $debiteur)
    		{
    			$debiteur_total = count($_POST["debiteur"]);
    		    $montant_div = $montant / $debiteur_total;
    			for($i = 0; $i < $creancier_total; $i++)
    			{
    		$insertSQL = "INSERT INTO achat_perso (`date`, `description`, montant, ID_creancier, ID_debiteur) VALUES ('$date','$desc.$i','$montant_div','$creancier[$i]','$debiteur[$i]')";
     
     
    		mysql_select_db($database_projets, $projets);
      		$Result1 = mysql_query($insertSQL, $projets) or die(mysql_error());
    		}
     
     
    } }
    Mon problème est que lors de l'insertion, mes ID_creanciers et débiteurs sont incomplets. Je m'explique, si $creancier[$i] = 13 et $debiteur[$i] = 23, j'aurais seulement le premier chiffre dans ma table (en l'occurrence 1 et 2).
    Quelqu'un sait-il d'où provient ce problème?

    Merci à vous...

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Mon problème est que lors de l'insertion, mes ID_creanciers et débiteurs sont incomplets. Je m'explique, si $creancier[$i] = 13 et $debiteur[$i] = 23, j'aurais seulement le premier chiffre dans ma table (en l'occurrence 1 et 2).
    Quel est le type de de données associé à ces champs dans ta base de données ? INT(1) ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Points : 58
    Points
    58
    Par défaut
    A vrai dire, le type de donnée est INTEGER (j'ai créé mes tables avec MySQL Administrator)

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    affiche ta requête pour vérifer qu'elle est bien construite

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Points : 58
    Points
    58
    Par défaut
    Comment fait-on cela???

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Points : 58
    Points
    58
    Par défaut
    J'ai calé ceci en plus avant ma requête SQL et j'ai déja à ce moment un problème avec les ID... le problème ne vient donc pas de SQL, mais d'ou alors?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo ("date: ".$date."/ descr ".$desc.$j."/ montant: ".$montant_div."/creancier ".$creancier[$i]."/debiteur ".$debiteur[$i]."<br/>");
    Le problème peut-il venir de $creancier[$i]?

    pour info, dans mon formulaire, mes champs listes ont comme nom creancier[] et debiteur[]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2008
    Messages : 59
    Points : 58
    Points
    58
    Par défaut
    C'est bon, j'ai modifié mon code qui était un peu brouillon, et ca marche niquel

    pour infos, le code (du coup, creancier est un menu et non une liste multiple)

    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
    $montant = $_POST['montant'];
    $date = $_POST['date'];
    $desc = $_POST['descr'];
    $creancier = $_POST['creancier'];
     
    $debiteur_total = count($_POST["debiteur"]);
    if ($debiteur_total != null)
    $montant_div = round($montant / $debiteur_total,2);
     
     
     
    	foreach($_POST["debiteur"] as $i => $debiteur)
    		{
     
                       $insertSQL = "INSERT INTO achat_perso (date, description, montant, ID_creancier, ID_debiteur) VALUES ('$date','$desc.$i','$montant_div','$creancier','$debiteur')";
                       mysql_select_db($database_projets, $projets);
                       $Result1 = mysql_query($insertSQL, $projets) or die(mysql_error());
     
     
     
     
                    }

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

Discussions similaires

  1. Seul le premier ID est pris en compte
    Par Stalk3R dans le forum jQuery
    Réponses: 19
    Dernier message: 02/07/2012, 10h31
  2. Pgpool II, seul le premier noeud est répliqué
    Par karbox dans le forum Outils
    Réponses: 1
    Dernier message: 17/10/2010, 12h51
  3. Réponses: 1
    Dernier message: 22/02/2010, 11h58
  4. Réponses: 5
    Dernier message: 18/03/2008, 16h43
  5. Obtenir le No d'enregistrement àprès insertion ...suite
    Par Didier100 dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/07/2004, 19h34

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