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] pb avec un array ??


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] pb avec un array ??
    bonjour à tous
    j'ai mis le resultat de requete sous cette forme là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $requetes = array (
       "passer" =>  array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","","") ,
       "conserner"  => array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","",""),
       "acheter"  => array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","","")
       );
    j'ai un problème avec la requete "acheter" que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO acheter (num_cli, ref_produit, quantite, total) VALUE ('".$_SESSION['num_cli']."', '".$_SESSION['panier']['ref_produit']."', '".$_SESSION['panier']['quantite']."','".$_SESSION['total']."')";
    mais le résultat de ma requête n'est guère pas bon, le voici :
    INSERT INTO acheter (num_cli, ref_produit, quantite, total) VALUES ('1', 'Array', 'Array','1599');

    ce que je ne comprends pas c'est d'où vient le "Array" dans le résultat

    de plus j'ai d'autre requête, sur la meme page, qui retourne bien la référence du produit ainsi que la quantité mais pas avec la requête "acheter"

    merci pour votre aide

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut

    Que dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump('<pre>', $_SESSION['panier']['ref_produit'], '</pre>');
    juste avant la construction de ta requete ?

  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
    qu'est ec que c'est?
    je l'ais mis avant la requete et ça me donne ça :
    string(5) "
    "
    array(31) {
    [0]=>
    int(0)
    [1]=>
    int(1)
    [2]=>
    int(2)
    [3]=>
    int(3)
    [4]=>
    int(4)
    [5]=>
    int(5)
    [6]=>
    int(6)
    [7]=>
    int(7)
    [8]=>
    int(8)
    [9]=>
    int(9)
    [10]=>
    int(10)
    [11]=>
    int(11)
    [12]=>
    int(12)
    [13]=>
    int(13)
    [14]=>
    int(14)
    [15]=>
    int(15)
    [16]=>
    int(16)
    [17]=>
    int(17)
    [18]=>
    int(18)
    [19]=>
    int(19)
    [20]=>
    int(20)
    [21]=>
    int(21)
    [22]=>
    int(22)
    [23]=>
    int(23)
    [24]=>
    int(24)
    [25]=>
    int(25)
    [26]=>
    int(26)
    [27]=>
    int(27)
    [28]=>
    int(28)
    [29]=>
    int(29)
    [30]=>
    int(30)
    }
    string(6) "
    "

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Tu as le droit d'utiliser la balise [code], c'est plus seyant.

    Sinon var_dump te permet de voir ce qu'est la variable que tu lui passe, ainsi que leur contenu. Tres pratique en phase de development/debuggage

    Donc pour ton probleme $_SESSION['panier']['ref_produit'] est un array, autrement dit un tableau, donc tu ne peux construire une requete sur un tableau... Voila pourquoi il te met Array dans ta requete.

  5. #5
    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
    oauis mais avec d'autres requetes (passer, conserner) ça marche tres bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $requetes = array (
       "passer" =>  array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","","") ,
       "conserner"  => array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","",""),
       "acheter"  => array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","","")
       );

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO passer(num_com, num_cli) VALUES ('58', '3')
    INSERT INTO conserner(num_com, ref_produit, quantite) VALUES ( '58','1', '1');
    INSERT INTO acheter (num_cli, ref_produit, quantite, total) VALUES ('3', 'Array', 'Array','1599');
    c'est pourquoi je en comprends pas pourquoi ça ne marche pas avec cette requête (acheter) et que ça marche avec les autres..

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    coment tu construis ces requetes ?

  7. #7
    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 suis sous easyphp 1.7
    enfin si c'est ec que tu veux savoir
    sinon j'ai tester ma requete (sous easyphp) et elle marche...

  8. #8
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Non, quel est le code qui construit tes requetes ?

  9. #9
    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
    oups desolé

    le voici :
    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
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
     
    <html>
    <head>
    <title>Bienvenue sur materiel-informatique.fr</title></head>
    <body bgcolor='#FFFF99'>
    <p><img src='http://127.0.0.1/oceanecoin/SITE%20INFO/print07h.gif' border='0'></>
    <input type='button' value='Imprimer cette page' onClick='window.print()'></p>
    </html>
     
    <?php
    if (!session_id())
     session_start();
     //session_start();
     session_register ('num_cli');
     session_register ('ref_produit');
     
     
     
    include ("definitioninfo.php");
    include ("aff_panier2.inc.php");
     
     
    //print_r($_SESSION);
     
    //$_POST['num_cli'] = $_SESSION['num_cli'];
     
    "<b>".$date = date("l/m/Y H:i:s");
    echo "<br>".$date."<br>";
     
     
     
    echo"<h1 align=\"center\"><font size=+6><font color=\"#000068\"><u>Total de votre commande:</u></font size></font color></h1>
    <br>
    
    <table border = 8 align = center>
     <tr>
      <td colspan = 5 align = center>
    
      </td>
     </tr>
    <tr>
    <td ><b><center><font size = +1>Reference</b></td></center>
      <td ><b><center><font size = +1>Article</b></td></center>
      <td><b><center>Prix Unitaire<br> (en €)</b></td></center>
      <td><b>Quantité</b></td></center>
      <td><p align='right'><b>Montant<br> (en €)</b></td>
     </tr>";
     aff_panier();
     
     echo"<tr><td></td><td><td><td><b>TOTAL  </b></td><td align = 'right'><b>".$_SESSION['total']."</b></td></tr>";
     
     
     
     $add_ach = "INSERT INTO acheter (num_cli, ref_produit, quantite, total) VALUES ('".$_SESSION['num_cli']."', '".$_SESSION['panier']['ref_produit']."', '".$_SESSION['panier']['quantite']."','".$_SESSION['total']."');";
     
    $add_com = "INSERT INTO commande(num_com, date_com) VALUES ('', '".$date."');";
     
    $derniere_com = "SELECT MAX(num_com) FROM commande WHERE date_com = '".$date."';";          //recupere le numero de la derniere commande enregistree
     
     
     
    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);
    //-----------------------------------------------------------------------
    //echo "panier<br>";
    //print_r ($_SESSION['panier']);             //pour verifier que cela marche
    //echo "<br>ref_produit<br>";
    //print_r ($_SESSION['panier']['ref_produit']);
    //echo "<br>quantite<br>";
    //print_r ($_SESSION['panier']['quantite']);
     
     
    echo"numero client<br>";
    echo $_SESSION['num_cli'];
     
    echo "reference<br>";
    echo $_SESSION['panier']['ref_produit'];
     
    //echo"numero commande<br>";
    //echo $num_com ;
     
    $requetes = array (
       "passer" =>  array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","","") ,
       "conserner"  => array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","",""),
       "acheter"  => array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","",""),
       "livraison" => array ("", "", "", "", "", "", "","","","","","","","","","","","","","","","","","","","","","","","")
       );
     
    // print_r($requetes);
    if (mysql_query ($add_com,$base))
    {
     echo "<h3><B><b><center>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>";   //contre remboursement paiement à la livraison delais de livraison contre remboursement : paiement à la livraison
    }
    else
    {
     echo "Erreur dans l'éxecution de la requete add_commande<br>";
     echo "Erreur".mysql_error().":".mysql_error()."<br>";
    }
     
     
    if ($tab_com = mysql_query ($derniere_com,$base))
    {
    // echo "<h3>Date trouvee</h3>";
     
     $res_com = mysql_fetch_array($tab_com);
     $num_com = $res_com[0];
     $quantite = $_SESSION['panier']['quantite'];
     //var_dump('<pre>', $_SESSION['panier']['ref_produit'], '</pre>');    // test de bug
     //var_dump('<pre>', $_SESSION['panier']['quantite'], '</pre>');
    //{
    //}
      //$add_lign_livr = "INSERT INTO ligne_livr ('num_com', 'num_livraison') VALUES ('".$num_com."','');";
     $add_passer = "INSERT INTO passer (num_com, num_cli) VALUES ('".$num_com."', '".$_SESSION['num_cli']."')";    //fais le lien entre la table  client et la table commande grace a la table PASSER
     $add_conserner = "INSERT INTO conserner VALUES ( '".$num_com."','".$_SESSION['panier']['ref_produit']."', '".$_SESSION['panier']['quantite']."')";    //idem entre la table produit et la table commande
     $add_acheter = "INSERT INTO acheter (num_cli, ref_produit, quantite, total) VALUES ('".$_SESSION['num_cli']."', '".$_SESSION['panier']['ref_produit']."', ".$quantite.",'".$_SESSION['total']."')";
     $add_livraison = "INSERT INTO livraison (num_livr, date_livr, etat_livr) VALUES ('','', 'encours')";
    }
    else
    {
     echo "Erreur dans l'éxecution de la requete derniere_comm<br>";
     echo "Erreur".mysql_error().":".mysql_error()."<br>";
    }
     
     
    if ($tab_com = mysql_query ($add_com,$base))
    {
    for ($i = 0; $i <= 20 ; $i++)
    {
     if ($_SESSION['panier']['quantite'][$i] >0)
     {
      $requetes['passer'][$i] = "INSERT INTO passer(num_com, num_cli) VALUES ('".$num_com."', '".$_SESSION['num_cli']."')";
      $requetes['conserner'][$i] = "INSERT INTO conserner(num_com, ref_produit, quantite) VALUES ( '".$num_com."','".$_SESSION['panier']['ref_produit'][$i]."', '".$_SESSION['panier']['quantite'][$i]."');";
      $requetes['acheter'][$i] =  "INSERT INTO acheter (num_cli, ref_produit, quantite, total) VALUES ('".$_SESSION['num_cli']."', '".$_SESSION['panier']['ref_produit']."', '".$_SESSION['panier']['quantite']."','".$_SESSION['total']."');";
      $requetes['livraison'][$i] = "INSERT INTO livraison (num_livr, date_livr, etat_livr) VALUES ('','', 'encours')";
     }
    }
     
    //print_r ($requetes['passer']);
     
     
    for ($i = 0; $i <= 20 ; $i++)
    {
     echo $requetes['passer'][$i]."<br>";
     echo $requetes['conserner'][$i]."<br>";
     echo $requetes['acheter'][$i]."<br>";
      echo $requetes['livraison'][$i]."<br>";
     
     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>";
     }
     }
     
     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>";
      }
     }
     
     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"<tr><td></td><td></td><td><b><center>TVA : </b></td><td align = \"center\"><b>".$_SESSION['total']*(19.6/100)."€</b></td></tr>";
     //echo "<tr><td></td><td></td><td><b>TTC : </b></td><td align = \"center\"><b>".$_SESSION['TTC']."€</b></td></tr>";
         //sert pour le panier
     
     
     
     
     
    /*echo"<br><br>";
    echo "<b><font size = 5 color = red>Numero de commande : ".$num_com."</font><br>";
    echo "<b><font size = 5 color = blue>Le total de votre commande est de ".$_SESSION['total']." €</font><br>";
    //".$_SESSION['prix']*$_SESSION['quantite']."*/
    session_destroy();                             //la commande est terminee on detruit la session
    session_unset();
                                  //et on efface toutes les variables pour eviter les bug
    echo"<body bgcolor=#ccffff>";
    echo"<font size = -1><i><a href = 'destruction.php'>Fermer la session</a></i></font>";
    //echo"<a href='http://127.0.0.1/oceanecoin/SITE%20INFO/index.htm' target = 'index.htm'>Retour au site</a>";
     
     
    ?>
    merci...

  10. #10
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Sans vouloir etre impoli, ce code est vraiment très sale !

    Ca ne m'étonne pas que tu ne retrouves pas tes petits là dedans... J'ai du relire 10 fois avant de comprendre pourquoi ca marche dans un cas et pas dans l'autre... Merci du cadeau.

    Alors la réponse à l'interrogation
    Citation Envoyé par oceane751
    oauis mais avec d'autres requetes (passer, conserner) ça marche tres bien
    est la suivante :
    parce que tu les construits différemment ! ^^
    pour conserner (je passe outre la faute d'orthographe ), tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requetes['conserner'][$i] = "INSERT INTO conserner....$_SESSION['panier']['ref_produit'][$i]....
    Alors que pour acheter tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requetes['acheter'][$i] =  "INSERT INTO acheter .....$_SESSION['panier']['ref_produit']....
    Voilà pourquoi ca ne donne pas le meme résultat...

    Hope This Helps et bonne chance pour la suite de tes developpements, tu en auras besoin

  11. #11
    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
    effectivement...
    va savoir pourquoi je n'ais pas vu cette erreur cette nuit...
    m'enfin merci beaucoup en tout cas!!

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Posté le: Mer Déc 21, 2005 3:52......
    Ceci explique cela

  13. #13
    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
    oui

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

Discussions similaires

  1. [Tableaux] Pb avec des array et des boucles help !
    Par grandpa006 dans le forum Langage
    Réponses: 2
    Dernier message: 13/05/2008, 12h06
  2. [Tableaux] affichage avec un array
    Par spaukensen dans le forum Langage
    Réponses: 2
    Dernier message: 23/04/2008, 13h31
  3. [Tableaux] Problème avec un array
    Par baleiney dans le forum Langage
    Réponses: 5
    Dernier message: 08/07/2006, 17h54
  4. [Tableaux] Prblm avec un array
    Par gretch dans le forum Langage
    Réponses: 5
    Dernier message: 30/06/2006, 14h33
  5. [Tableaux] Problème avec un array et les pseudo frame
    Par azerty53 dans le forum Langage
    Réponses: 6
    Dernier message: 10/05/2006, 14h57

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