Passage d'un tableau en parametre - php-

Fermé
carrubba - 20 août 2004 à 15:05
 THE GHOST - 4 mai 2009 à 13:44
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
A voir également:

6 réponses

JSS Messages postés 3745 Date d'inscription jeudi 22 avril 2004 Statut Contributeur Dernière intervention 17 décembre 2004 32
20 août 2004 à 17:45
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
Bonjour
Regarde les fonctions serialize() et unserialize()
0
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
Utilisateur anonyme
23 août 2004 à 11:16
addslashes()

--------------------------------------------------------
L'informatique est un long fleuve pas tranquille !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
essay dnx php remote log pour liberation des enregistrements slot par slot merci
0
Attends tu peux nous le refaire en Français stp ?
0
daudet > watted
12 mars 2008 à 15:47
Bonjour,

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

Cette discution doit être fermée.
0
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