Tableaux en PHP
Résolu/Fermé
A voir également:
- Tableaux en PHP
- Easy php - Télécharger - Divers Web & Internet
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Mise en forme tableau word - Guide
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). ✓ - Forum Logiciels
15 réponses
kstou2001
Messages postés
35
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
12 avril 2010
5
9 sept. 2009 à 14:21
9 sept. 2009 à 14:21
quand tu lanceras ta requete du genre
$resultat = mysql_query($req);
$resultat te retournera un tableau associatif. tu pourras parcourir l'ensemble des resultats de cette maniere
while($rows=mysql_fetch_assoc($resultat)){
//on affiche la premiere ligne
echo "nom: ".$rows['nom']." prenom: ".$rows['prenom']."<br>";
}
D'apres ce que je comprends tu cherches à afficher tes resultats colonne apres colonne alors que tu auras plus simple de les afficher ligne par ligne
$resultat = mysql_query($req);
$resultat te retournera un tableau associatif. tu pourras parcourir l'ensemble des resultats de cette maniere
while($rows=mysql_fetch_assoc($resultat)){
//on affiche la premiere ligne
echo "nom: ".$rows['nom']." prenom: ".$rows['prenom']."<br>";
}
D'apres ce que je comprends tu cherches à afficher tes resultats colonne apres colonne alors que tu auras plus simple de les afficher ligne par ligne
Non car c'est dans une fonction, à la fin je retourne mon tableau et je doit mouvoir l'utiliser.
Et je doit avoir comme données:
Et donc genre:
$tabmachin['NOM'][2] va donner Depardieu
ou bien $tabmachin['PREN'][4] va donner Sandy...
Et je doit avoir comme données:
PREN NOM 0 Jean Potier 1 Paul Cézam 2 Julie Depardieu 3 Nico Tetedevo 4 Sandy Kilo
Et donc genre:
$tabmachin['NOM'][2] va donner Depardieu
ou bien $tabmachin['PREN'][4] va donner Sandy...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
9 sept. 2009 à 14:52
9 sept. 2009 à 14:52
Oui tout à fait c'est possible:
$tabmachin=array(); //init de l'array while($rows=mysql_fetch_assoc($resultat)){ //on empile dans l'array a chaque passage de la boucle ça va incrementer l'index deuxieme niveau automatiquement $tabmachin['nom')[]=$rows['nom']; $tabmachin['prenom')[]=$rows['prenom']; }
kstou2001
Messages postés
35
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
12 avril 2010
5
9 sept. 2009 à 15:06
9 sept. 2009 à 15:06
Si tu ne veux pas tous les enregistrements a toi de faire le tri dans la requete que tu vas executer.
Par contre je ne vois pas trop l'interet de passer par un deuxieme tableau. (Ta requete te donneras un premier tableau)
Par contre je ne vois pas trop l'interet de passer par un deuxieme tableau. (Ta requete te donneras un premier tableau)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
9 sept. 2009 à 15:12
9 sept. 2009 à 15:12
Automatiquement? Ainsi j'aurai toute mes données dans un même tableau?
OUI , au premier passage de la boucle tu empile les données du premier client dans
$tabmachin['nom')[0]
$tabmachin['prenom')[0]
au passage suivant celles du deuxieme client:
$tabmachin['nom')[1]
$tabmachin['prenom')[1]
ça se fait tout seul
pour y acceder:
echo $tabmachin['nom')[1];
par contre si tu ne veut pas tous le mettre dans ton array il faut faire une requette avec une condition WHERE
$tabdispo = array(
$i => array('jour' => date("d",$i), 'nom' => $nom, 'prenom' => $prenom, 'datedeb' => $date1 ,'hdeb' => $depart ,'datefin' => $date2 ,'hfin' => $arrivee)
);
en faisant ainsi tu changes le "sens" de ton array
il devient
donc il faut modifier un peu la boucle while:
au passage je me suis rendu compte d'une petite erreur dans mon code du topic plus haut
$tabmachin['nom')[]=$rows['nom'];
$tabmachin['prenom')[]=$rows['prenom'];
devient:
$tabmachin['nom'][]=$rows['nom'];
$tabmachin['prenom'][]=$rows['prenom'];
crochet au lieu de )
OUI , au premier passage de la boucle tu empile les données du premier client dans
$tabmachin['nom')[0]
$tabmachin['prenom')[0]
au passage suivant celles du deuxieme client:
$tabmachin['nom')[1]
$tabmachin['prenom')[1]
ça se fait tout seul
pour y acceder:
echo $tabmachin['nom')[1];
par contre si tu ne veut pas tous le mettre dans ton array il faut faire une requette avec une condition WHERE
$tabdispo = array(
$i => array('jour' => date("d",$i), 'nom' => $nom, 'prenom' => $prenom, 'datedeb' => $date1 ,'hdeb' => $depart ,'datefin' => $date2 ,'hfin' => $arrivee)
);
en faisant ainsi tu changes le "sens" de ton array
il devient
$tabdispo[0]['nom'] $tabdispo[0]['prenom'] etc.. $tabdispo[1]['nom'] $tabdispo[1]['prenom']
donc il faut modifier un peu la boucle while:
$tabdispo=array(); //init de l'array $i=0; while($rows=mysql_fetch_assoc($resultat)){ //on empile dans l'array a chaque passage de la boucle on increment le $i $tabdispo[$i]['nom']=$rows['nom']; $tabmachin[$i]['prenom']=$rows['prenom']; //etc.. pour les autres champs $i++; }
au passage je me suis rendu compte d'une petite erreur dans mon code du topic plus haut
$tabmachin['nom')[]=$rows['nom'];
$tabmachin['prenom')[]=$rows['prenom'];
devient:
$tabmachin['nom'][]=$rows['nom'];
$tabmachin['prenom'][]=$rows['prenom'];
crochet au lieu de )
kstou2001
Messages postés
35
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
12 avril 2010
5
9 sept. 2009 à 15:19
9 sept. 2009 à 15:19
donc d'apres ce que tu dis alain, on revient à ma solution
pas besoin de passer par un tableau intermediaire si c'est pour lire ligne par ligne.
et si c'est une fonction tu retourne le resultat c'est pareil pas besoin de coder des lignes et des lignes en plus
pas besoin de passer par un tableau intermediaire si c'est pour lire ligne par ligne.
et si c'est une fonction tu retourne le resultat c'est pareil pas besoin de coder des lignes et des lignes en plus
Je trie après ma requête.
Je m'explique:
C'est plus clair? Car je ne crois pas que ta solution convenait. Si?
Je m'explique:
$mois = "07"; ++Requête ++Récupère données requête Tant qu'il y a des résultats: $nom=... $prenom=... $date1=... etc... ++Triage Si le mois de la date correspond au mois $mois alors je veux dans mon tableau les variables $jour, $nom, $prenom, $dat...... on passe à la ligne suivante Fin tant que retourner tableau
C'est plus clair? Car je ne crois pas que ta solution convenait. Si?
kstou2001
Messages postés
35
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
12 avril 2010
5
9 sept. 2009 à 15:23
9 sept. 2009 à 15:23
par contre jte conseille de faire le tri avant de lancer ta requete si tu peux le faire. Quand tu travailles sur des petites bases à la rigueur tu tries apres mais quand tu as une bdd volumineuse faut le faire avant
kstou2001
Messages postés
35
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
12 avril 2010
5
9 sept. 2009 à 15:26
9 sept. 2009 à 15:26
oui
J'ai pas le choix, je trie après car il faut que je sélectionne que les lignes ou le mois correspond à mon mois en cours.
En fait, c'est pour afficher les informations (nom, prenom...) dans un calendrier de réservation.
Sachant qu'un réservation a une date de début et date de fin....
En fait, c'est pour afficher les informations (nom, prenom...) dans un calendrier de réservation.
Sachant qu'un réservation a une date de début et date de fin....
Et ensuite je retourne ça avec juste "return $tabdispo;" ?
Et pour utiliser mes données je fais:
de $i a $imax
$tabjour[] = $tabdispo[$i]['jour'];
fin
$nom = $tabdispo[$i]['nom'];
C'est exact?
Et pour utiliser mes données je fais:
de $i a $imax
$tabjour[] = $tabdispo[$i]['jour'];
fin
$nom = $tabdispo[$i]['nom'];
C'est exact?
Bon j'ai testé dans mon code et ça bug.
Comment puis-je enlever les doublons de jours?
Avant quand j'avait un tableau simple contenant que les jours je faisais:
Maintenant que j'ai plusieurs infos j'ai testé ça sans succès:
Comment puis-je enlever les doublons de jours?
Avant quand j'avait un tableau simple contenant que les jours je faisais:
$tabdispo = array_unique($tabdispo);
Maintenant que j'ai plusieurs infos j'ai testé ça sans succès:
$tabdispo = array_unique($tabdispo[]['jour']);
Ah oui, aussi, quand je fais
J'ai " Array['nom'] " dans ma case à l'écran...
Merci d'avance
echo "<td class=\"reserve\">$tabdisp[$k]['nom']</td>";
J'ai " Array['nom'] " dans ma case à l'écran...
Merci d'avance