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 :

[Tableaux] variable qui ne passe pas


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut [Tableaux] variable qui ne passe pas
    bonjour
    j'ai encore un problème
    je ne comprends pas trop car j'ai une variable $num_com definit dans
    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
     
     $add_com = " INSERT INTO commande(num_com, date_com) VALUES ( '', '".$date."' )";
     
    if ($tab_com = mysql_query($add_com,$base))
     
    {
     $res_com = mysql_affected_rows();
     $num_com = $res_com[0];
     
    echo "<h3><B><b><center><font face = papyrus>Votre commande a bien été prise en compte</B><br><br>Le paiement s'effectuera au moment de la livraison<br>
    le delais est de 48h
    </center>";
     }
    else
    {
     echo "Erreur dans l'éxecution de la requete add_comm<br>";
     echo "Erreur".mysql_error().":".mysql_error()."<br>";
    }
    j'ai essayé de comprendre d'où venait le prblème mais en vain
    mais après le bout de code ci dessus j'ai une autre requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requetes['ligne_livr'][$i] =  "INSERT INTO ligne_livr (num_com, num_livr) VALUES ('".$num_com."', '')";
    et à la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo"votre numero de commande est le : '".$num_com."';";
    de plus, dans ma base de données, la table lign_livr est :
    num_livr (en auto_increment)
    num_com
    le num_livr est bien enregistrée mais pas le num_com (car pas en autoincrement)
    c'est l'association des tables livraison et commande

    je pense que c'est à cause de ça que ça ne marche pas, je ne sais plus quoi faire

  2. #2
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    mysql_affected_rows renvoi le nombre de lignes affectées par la dernière requete et non pas la ligne. Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $res_com = mysql_affected_rows();
    $num_com = $res_com[0];
    Ne met rien dans $num_com, logique.

  3. #3
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    oula j'ai pas compris.. :

    voici mon code en entier :
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
     
    if ($base=mysql_connect (SERVEUR,log,password))
    {
     echo "<h1><u><center></u></h1></center><br>";
    }
    else
    {
     echo "<H3>Echec de la connexion au serveur</h3>";
     exit;
    }
    mysql_select_db(BASE,$base);
     
    for ($i=0;$i<20;$i++) 
       {
       $tab_passer[]=""; 
       $tab_conserner[]="";
       $tab_acheter[]="";
       $tab_livraison[]="";
       $tab_ligne_livr[]="";
     
     
    $requetes = array ("passer" => $tab_passer, "conserner" => $tab_conserner, "acheter" => $tab_acheter, "livraison" => $tab_livraison, "ligne_livr" => $tab_ligne_livr);
       }
     
      $add_com = " INSERT INTO commande(num_com, date_com) VALUES ( '', '".$date."' )";
     
    if ($tab_com = mysql_query($add_com,$base))
     
    {
     $res_com = mysql_affected_rows();
     $num_com = $res_com[0];
     
    echo "numero de commande <br>";
     echo $num_com;
     
    echo "<h3><B><b><center><font face = papyrus>Votre commande a bien été prise en compte</B><br><br>Le paiement s'effectuera au moment de la livraison<br>
    le delais est de 48h
    </center>";
     }
    else
    {
     echo "Erreur dans l'éxecution de la requete add_comm<br>";
     echo "Erreur".mysql_error().":".mysql_error()."<br>";
    }
     
     
     
    for ($i = 0; $i < 20 ; $i++)
    {
     if ($_SESSION['panier']['quantite'][$i] >0)
     {
     
     
     
     
      $requetes['passer'][$i] = "INSERT INTO passer(num_com, num_cli) VALUES ('', '".$_SESSION['num_cli']."')";
      $requetes['conserner'][$i] = "INSERT INTO conserner (num_com, ref_produit, quantite) VALUES ( '','".$_SESSION['panier']['ref_produit'][$i]."', '".$_SESSION['panier']['quantite'][$i]."');";
      $requetes['acheter'][$i] =  "INSERT INTO acheter (num_cli, ref_produit, designation_produit, quantite, total) VALUES ('".$_SESSION['num_cli']."', '".$_SESSION['panier']['ref_produit'][$i]."', '".$_SESSION['article']."', '".$_SESSION['panier']['quantite'][$i]."','".$_SESSION['total']."');";
      $requetes['livraison'][$i] = "INSERT INTO livraison (num_livr, date_livr, etat_livr) VALUES ('','aucun', 'encours de traitement')";
      $requetes['ligne_livr'][$i] =  "INSERT INTO ligne_livr (num_com, num_livr) VALUES ('".$num_com."', '')";
     
     }
     
    }
     
    for ($i = 0; $i < 20 ; $i++)
    {
    if ($requetes['conserner'][$i] != "")
     {
      if (mysql_query ($requetes['conserner'][$i],$base))
     {
      //echo "<h3>Conserner n°".$i." Ajoute</h3>";
      }
      else
     {
      echo "Erreur dans l'éxecution de la requete add_conserner<br>";
       echo "Erreur".mysql_error().":".mysql_error()."<br>";
      }
     }
     echo "<br>Passer = ".$requetes['passer'][1]."<br>";
     
    if ($requetes['passer'][$i] != "")
     {
    if (mysql_query ($requetes['passer'][$i],$base))
     {
      //echo "<h3>Passer Ajoute n°".$i."</h3>";
     }
     else
     {
      echo "Erreur dans l'éxecution de la requete add_passer<br>";
      echo "Erreur".mysql_error().":".mysql_error()."<br>";
     }
     }
     
     echo"<br>acheter = ".$requetes['acheter'][$i]."<br>";
     if ($requetes['acheter'][$i] != "")
     {
      if (mysql_query ($requetes['acheter'][$i],$base))
     {
      //echo "<h3>Acheter n°".$i." Ajoute</h3>";
      }
      else
     {
      echo "Erreur dans l'éxecution de la requete add_acheter<br>";
       echo "Erreur".mysql_error().":".mysql_error()."<br>";
      }
     }
     
     echo"<br>livraison = ".$requetes['livraison'][$i]."<br>";
     if ($requetes['livraison'][$i] != "")
     {
      if (mysql_query ($requetes['livraison'][$i],$base))
     {
      //echo "<h3>Livraison n°".$i." Ajoute</h3>";
      }
      else
     {
      echo "Erreur dans l'éxecution de la requete add_livraison<br>";
       echo "Erreur".mysql_error().":".mysql_error()."<br>";
      }
     }
     echo"<br>ligne_livr = ".$requetes['ligne_livr'][$i]."<br>";
     if ($requetes['ligne_livr'][$i] != "")
     {
      if (mysql_query ($requetes['ligne_livr'][$i],$base))
     {
      //echo "<h3>Livraison n°".$i." Ajoute</h3>";
      }
      else
     {
      echo "Erreur dans l'éxecution de la requete add_ligne_livr<br>";
       echo "Erreur".mysql_error().":".mysql_error()."<br>";
      }
     }
     
    echo"<body bgcolor=#ccffff>";
    echo"<font size = -1><i><a href = 'destruction.php'>Fermer la session</a></i></font>";
    echo"votre numero de commande est le : ".$num_com.";";
    merci..

  4. #4
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    je met mysql_affected_rows par ce que c'est un INSERT
    donc là je suis uu peu paumée..

  5. #5
    Membre confirmé Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Points : 540
    Points
    540
    Par défaut
    change:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $res_com = mysql_affected_rows();
    $num_com = $res_com[0];
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $num_com = mysql_insert_id();
    Si j'ai bien compris ce que tu veux...

  6. #6
    Membre confirmé Avatar de oceane751
    Profil pro
    Intégrateur Web
    Inscrit en
    Novembre 2004
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 280
    Points : 575
    Points
    575
    Par défaut
    ah d'accord...
    je ne connaissais pas...
    je viens de chercher est j'ai trouvé ça :
    Retourne l'identifiant généré pour une colonne AUTO_INCREMENT par la dernière requête. Utilisez cette commande après avoir exécuté une requête INSERT sur une table qui contient un champ AUTO_INCREMENT

    je comprends mieux...

    merci beaucoup!!

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

Discussions similaires

  1. [PHP 5.0] Variable POST qui ne passe pas.
    Par KIK83 dans le forum Langage
    Réponses: 1
    Dernier message: 14/06/2012, 07h04
  2. Variable qui ne passe pas du html au js
    Par zoreol dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/11/2010, 17h27
  3. Réponses: 2
    Dernier message: 06/09/2007, 09h23
  4. [Tableaux] Variable qui ne prend pas sa valeur
    Par stephane78 dans le forum Langage
    Réponses: 11
    Dernier message: 19/08/2006, 20h30
  5. [Système] variable qui ne passe pas !!!
    Par azorol dans le forum Langage
    Réponses: 21
    Dernier message: 20/02/2006, 10h53

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