Passage d'un tableau en parametre - php-

carrubba -  
 THE GHOST -
Bonjour,

Débutante en php/mysql, je voudrais un petit coup de pouce pour le problème suivant:

Je dispose d'un tableau (créé par requete sql et il n'est pas vide) .

Je voudrais utiliser ce tableau pour afficher les lignes (une seule ligne dans le formulaire) en utilisant un bouton "Enregistrement suivant".

A.php fait un include B.php qui fait 'action="C.php" 'qui fait un include B.php

Pas très clair peut-etre???

A.php fait une requête sql pour remplir un tableau. Puis fait un include B.php
A ce niveau là , le tableau est rempli.

B.php affiche un formulaire contenant des champs non modifiables issus du tableau et un champ à saisir.
La 1ere ligne du tableau s'affiche bien dans le formilaire.
Cette page fait appel à C.php
En champ caché, je veux faire passer le tableau et l'indice de lecture de tableau.

C.php fait un insert sur une table sql pour MAJ, puis fait l'include de B.php
qui doit afficher les données d'une nouvelle ligne du tableau.

Le tableau ne passe pas en champ cache (ni en champ clair d'ailleurs...)

Le code dans B.php est le suivant :
<input name="rangtab" id="rangtab" value=" <? echo "$rangtab"; ?>">

<input name="tabmatri" id="tabmatri" value=" <? echo "is_array$tabmatri"; ?>">

Ma logique d'enchainement des .php est-elle bonne?

POurquoi le tableau ne passe-t-il pas et pourquoi l'indice passe-t-il ?

A bientôt

6 réponses

  1. JSS Messages postés 3743 Date d'inscription   Statut Contributeur 32
     
    Bonjour ou Bonsoir,

    je debute aussi en php mais j'utilise des sessions pour passer mes tableaux.

    sur ce site tu trouveras de l'aide concernant les sessions :

    http://www.phpdebutant.org/article69.php

    apres il te suffit de faire :

    $_SESSION['mon_nom_de_tableau']=$tab;
    $_SESSION['indice']=$index;

    et tu accede a ces variables pour afficher ce que tu veux ...

    Bon Courage

    JSS
    1
  2. ric
     
    Bonjour
    Regarde les fonctions serialize() et unserialize()
    0
  3. carrubba
     
    Bonjour,

    je viens de tester le serialize et unserialize :
    J'ai toujours un problème:
    Apres avoir serializer mon tableau voilà la variable que j'obtiens: elle est correcte.

    a:44:{
    i:0;a:4:{i:0;s:8:"08000015";i:1;s:6:"ARNOUX";i:2;s:6:"ARNOUX";i:3;s:6:"MARYSE";}
    i:1;a:4:{i:0;s:8:"08000300";i:1;s:9:"PONSIGNON";i:2;s:7:"GERODEL";i:3;s:7:"MARTINE";}
    i:2;a:4:{i:0;s:8:"08000106";i:1;s:8:"DESTENAY";i:2;s:6:"LETROU";i:3;s:15:"MARIE-CHRISTINE";}
    i:3;a:4:{i:0;s:8:"08000070";i:1;s:6:"BOUZON";i:2;s:7:"TENAZIO";i:3;s:5:"RENEE";}

    Voilà ce que j'obtiens dans le champ caché (que j'ai mis également en type text pour les tests ):

    a:44:{i:0;a:4:{i:0;s:8:

    Je n'ai que les 23 1ers caractères . ça s'arrête aux".

    Y aurait-il un problème à faire passer les "?

    Y a-t-il autre chose?

    je ne comprends plus rien.

    merci d'avance
    0
  4. poof65
     
    addslashes()

    --------------------------------------------------------
    L'informatique est un long fleuve pas tranquille !!!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. momix
     
    essay dnx php remote log pour liberation des enregistrements slot par slot merci
    0
    1. watted
       
      Attends tu peux nous le refaire en Français stp ?
      0
      1. daudet > watted
         
        Bonjour,

        La demande initiale date de 2004. Il y a longtemps que le tableau passe et repasse .....

        Cette discution doit être fermée.
        0
  7. THE GHOST
     
    le but de ce code est, que lorsque la requête routourne les résultats(l'ensemble des cmmande passé),je récupère dans un autre tableau.c'est à dire que chaque commande possède un détails de cmmande,étant que le premier tableau qui contient les information selon le numéro de $id, il peut exister un même $id repété plus qu'une fois et chacun est relative a un détal :
    commande:1 *********article1
    commande:1 *********article2
    commande:1 *********article3
    commande:2*********article1
    ...ainsi de suite
    la fonction que je lui transmis le tableau(qui contient tout les articles de la même commande) doit afficher les détails.pour le test que vous m'avez demandé(s'il n'y pas de résultats), est déja assuré, donc il y en a certainement .
    ben voila mon code :
    $res=mysql_query("select commande.id_commande,nom_user,des_article,Montant_ht,montant_ttc,id_caisse,total_ttc,jj,mm,aa,hh,mn,qte,num_table,MONTANT_ESPECE,MONTANT_CHEQUE_BANQUAIRE,NBR_COUVERTS,TYPE_REMISE_GLOBALE,MONTANT_REMISE,MONTANT_OFFERT,REMISE,TYPE_REMISE from commande,details_commande,ordre,article,users where commande.id_commande=details_commande.id_commande and commande.num_ordre=ordre.num_ordre and article.id_article=details_commande.id_article and commande.id_user=users.id_user AND commande.num_ordre>=\"$num_ordre1\" and commande.num_ordre<=\"$num_ordre2\" order By(commande.num_ordre)");
    $num_lignes=mysql_num_rows($res);//nombre de lignes retournées par la requête
    $resultats[$num_lignes][17]=array();//Matrice pour stocker les résultats de retour de la requête
    $commande[$num_lignes][17]=array();
    $i=0;//variable qui contient le nombre des résultats retournées par la requête éxecuté
    while($result=mysql_fetch_row($res))
    { if($result[11]<10)
    {
    $result[11]="0".$result[11];// pour avoir 2 chiffre pour les minutes: au lieu de 5, on doit avoir 05
    }
    $resultats[$i][0]=$result[7]."-".$result[8]."-".$result[9]." ".$result[10].":".$result[11];//date et heure
    $resultats[$i][1]=$result[0];//id commande
    $resultats[$i][2]=$result[5];//id caisse
    $resultats[$i][3]=$result[1];//nom vendeur
    $resultats[$i][4]=$result[3];//montant hors taxe
    $resultats[$i][5]=$result[4];//Montant TTC
    $resultats[$i][6]=$result[6];//Total TTC
    $resultats[$i][7]=$result[2];//Designation de l'article
    $resultats[$i][8]=$result[12];//Quantité de l'article vendue
    $resultats[$i][9]=$result[13];//numéro de la table pour le cas d'un restaurant
    $resultats[$i][10]=$result[14];//Montant espece
    $resultats[$i][11]=$result[15];//Montant chèque banquaire
    $resultats[$i][12]=$result[16];//Nbre de couvert pour le cas d'un restaurant
    $resultats[$i][13]=$result[17];//type de remise globale pour la commande
    $resultats[$i][14]=$result[18];//montant de la remise pour la commande
    $resultats[$i][15]=$result[19];//montant offert pour la commande
    $resultats[$i][16]=$result[20];//remise pour l'article
    $resultats[$i][17]=$result[21];//type de la remise pour l'article
    $i++;
    }

    switch($filtre)

    {
    case 0: //si aucun filtre n'a été utilisé
    if($i==0)
    {
    echo"Aucun enregistrement ne correspond à vos critères de recherche.";
    }
    else
    { $count=0;$var=0;
    $id=$resultats[$count][1]; //sauvgarder le premier id des commandes
    while($count<$i)
    {
    if($resultats[$count][1]==$id )
    {
    $commnade[$var][0]=$resultats[$count][0];
    $commnade[$var][1]=$resultats[$count][9];
    $commnade[$var][2]=$resultats[$count][12];
    $commnade[$var][3]=$resultats[$count][8];//quantité
    $commnade[$var][4]=$resultats[$count][7];//designation article
    $commnade[$var][5]=0;//montant article non utilisé
    $commnade[$var][6]=$resultats[$count][17];//type remise pour l'article
    $commnade[$var][7]=$resultats[$count][16];//la remise pour l'article $commnade[$var][8]=$resultats[$count][13];//type remise globale pour la commande
    $commnade[$var][9]=$resultats[$count][15];//montant offert
    $commnade[$var][10]=$resultats[$count][14];//montant remise
    $commnade[$var][11]=$resultats[$count][4];//montant hors taxe
    $commnade[$var][12]=$resultats[$count][5];//montant TTC
    $commnade[$var][13]=$resultats[$count][6];//total TTC pour l'article $commnade[$var][14]=$resultats[$count][3];//nom du vendeur
    $commnade[$var][15]=$resultats[$count][2];//id caisse
    $commnade[$var][16]=$resultats[$count][10];//montant espèce
    $commnade[$var][17]=$resultats[$count][11];//montant chèque banquaire
    $var++;
    }
    else
    {
    voir($commande,$var);
    $id=$resultats[$count][1];
    $var=0;
    }
    $count++;
    }
    }
    break;
    0