table dans un tableau - PHP - Programmation
Marsh Posté le 23-05-2003 à 20:14:46
mysql_connet (cd php.info) ou pg_connect (Si tu utilises postgres)
Si tu utilises mysql
mysql_query($query) // ou query est "select * from table " par exemple
Cette fonction te retourne un Resultat Mysql il me semble
Tu reprends ce resultat (que j'appelle $result)
Ensuite while (list(champ1,champ2,champ3) = mysql_fetch_row($result))
Dans ta boucle tu recupere chaque champ, tu peux gerer un compteur qui representera tes lignes
Ex :
$compteur=0
while (list($nom,$prenom) = mysql_fetch_row($result))
{
$tableau[$compteur][0]=$nom;
$tableau[$compteur][1]=$prenom ;
$compteur++;
}
Si tu veux avoir une fonction plus "generaliste" tu peux utiliser mysql_fetch_array qui te retourne un array.
Dans ce cas il va ensuite falloir gerer les colonnes et les lignes, j'ai fait une fonction au boulot permettant de me donner un tableau bien structuré qqs la table. Je te la donnes si et seulement si tu en as vraiment besoin
Marsh Posté le 23-05-2003 à 20:24:32
Dans ton exemple, list est le nom de la table, et nom/prrenom les colonnes ?
J'ai trouver ca sur un site, je pense qu'il faut utiliser ton truv avec ca non ?
Citation : print("<table width=\"100%\" border=\"1\" bordercolor=\"#000000\" |
Marsh Posté le 23-05-2003 à 20:32:18
bodbod a écrit : Dans ton exemple, list est le nom de la table, et nom/prrenom les colonnes ?
|
Bah je sais pas, j'ai pas ete assez clair ?
Soit la table "personne" qui contient les champs (nom, prenom)
$query = "select * from personne" ;
$result=mysql_query($query) ;
Puis le reste du code
Marsh Posté le 23-05-2003 à 20:37:34
Citation : $query = "select * from nom_de_la_table" ; |
C'est ca ?
Et comment ressorte les colonnes ?
En fait, je voudrais que ca donne un peu comme le forum.
Marsh Posté le 23-05-2003 à 20:48:42
bodbod a écrit :
|
C'est exectement comme ça.
Tu retournes la valeur de $tableau et ensuite tu peux creer un tableau en HTML
<table><tr><td>Le Nom</td><td>Le Prenom</td></tr>
<?
for ($counter=0;$counter<count($tableau);$counter++)
{
echo "<tr><td>";echo $tableau[$counter][0]; echo "</td><td>"; echo $tableau[$counter][1]; echo "</td></tr>" ;
}
?>
</table>
}
Marsh Posté le 23-05-2003 à 20:49:09
<? include ("connexion.php" );
$id = MYSQL_CONNECT($serveur,$login,$pass);
mysql_select_db("$base" );
$query = "select * from pseudo" ;
$result=mysql_query($query) ;
$compteur=0
while (list($lien,$multi1) = mysql_fetch_row($result)){
$tableau[$compteur][0]=$lien;
$tableau[$compteur][1]=$multi1 ;
$compteur++;
}
?>
Parse error: parse error, unexpected T_WHILE in tableau.php on line 25
Dans le fichier connexion, j'ai mes identifiant mot de passe...
Marsh Posté le 23-05-2003 à 20:51:11
bodbod a écrit : <? include ("connexion.php" ); |
Y a un ; apres $compteur=0
Marsh Posté le 23-05-2003 à 20:52:30
samuelp a écrit : |
oops
Je reesai...
Marsh Posté le 23-05-2003 à 20:54:13
plus d'erreur, il ne me reste plus qu'a mettre la suite du tableau...
http://www.bodbod.fr.st/Aideonline/Modo
Marsh Posté le 23-05-2003 à 20:55:34
bodbod a écrit : plus d'erreur, il ne me reste plus qu'a mettre la suite du tableau... |
Tu vas pouvoir mettre mon pseudo dans la section remerciement sur ton site
Marsh Posté le 23-05-2003 à 20:58:28
samuelp a écrit : |
Non, c'est pour un forum concurrent
Mais on est pas specialisé dans la prog.
Sinon, rien ne s'affiche
Marsh Posté le 23-05-2003 à 21:02:18
bodbod a écrit : Non, c'est pour un forum concurrent |
Un echo count($tableau) te donne quoi ?
Fais un print_r($tableau) apres la recuperation des donnees pour voir ce que tu as extrait
Marsh Posté le 23-05-2003 à 21:07:11
Citation : <table width="100%" border="0" cellspacing="1" cellpadding="1"> |
Ca affiche bien la variable $multi1 mais pas $lien
Marsh Posté le 23-05-2003 à 21:08:28
bodbod a écrit :
Ca affiche bien la variable $multi1 mais pas $lien |
Oki dans ta boucle pour recuperer les donnees fais un echo $multi1 pour voir ce que ça donne
Marsh Posté le 23-05-2003 à 21:32:11
Pour la premiere ligne, ca affiche que multi mais pour la 2e, il y a bien les 2 ?????
ps : il n'y a que deux entrée dans la db.
ps2 : je dois partir, a demain
Marsh Posté le 23-05-2003 à 21:34:08
Faut alors aller verifier dans la base directement pour voir si une donnee ne manque pas parce que là, je vois pas autre chose
Marsh Posté le 24-05-2003 à 10:37:12
samuelp a écrit : Faut alors aller verifier dans la base directement pour voir si une donnee ne manque pas parce que là, je vois pas autre chose |
c'est bien la le probleme....
C'est peut etre un truc de pas grand chose.
Marsh Posté le 24-05-2003 à 11:30:37
bodbod a écrit : c'est bien la le probleme.... |
bodbod
J'avais po vu qu'il affichait les 2 premieres colonnes...
Effectivement, une des deux case de la 1ere colone est vide.
Donc en fait, si on veux par exemple que la 4e colonne on declare la variable associée ("while (list($lien,$multi1,$multi2,$variable) = mysql_fe...." )
(il faut declaré en partant de la premiere colonne jusqu'a celle voulu : ici 4)
On va cherché la valeur "$tableau[$compteur][3]=$variable;"
Puis on affiche.
Ca marche comme ca ?
Marsh Posté le 24-05-2003 à 11:45:11
bodbod a écrit : bodbod |
C'est une solution oui
Marsh Posté le 24-05-2003 à 11:55:07
samuelp a écrit : |
salut
Pour la question precedente, c'etait juste a titre d'info
Maintenant, pour une autre utilisation, il me faudrait pouvoir afficher que les lignes dont la colonnes 1 est egal a toto par ex.
C'est pour faire un truc multiutilisateur si tu vois ce que je veux dire.
Je sais qu'il y a une fonction avec WHERE mais je sais plus ou j'ai vu ca
Une autre question, dans la base, les lignes ne sont pas placé dans l'ordre d'entrée ????
En ce moment ca a fait :
3
1
2
4
Marsh Posté le 24-05-2003 à 12:01:42
Citation : SELECT * FROM fournisseurs |
C'est ca pour le tri ?
Et pour l'ordre d'entrée dans la base ?
Marsh Posté le 24-05-2003 à 12:07:34
bodbod a écrit : salut |
Pour le tri tu peux essayer http://fr2.php.net/manual/fr/function.ksort.php
Ou sort, cela depend comment tu veux structurer ton tableau
Pour ce qui est du where : c'est une clause SQL qui peut etre utilisée dans les update et select :
select * from table where monchamp='toto'
Marsh Posté le 24-05-2003 à 12:59:51
Dans la premiere colonne, je voudrai incrementer un compteur ou plutot mettre un numero a chaque ligne et qui s'ecremente a chaque nouvelle ligne. (ensuite, le tri sera facile).
Comment proceder ?
ex :
si la derniere ligne avait le n° 5.
Je veux entrer une ligne dans laquelle la premiere veleur prendrai 6
Marsh Posté le 23-05-2003 à 20:01:19
Bonjour,
Je suis nul en php et je fais mes premier pas.
Apres avoir galeré un peu pour entrer des données dans la db je voudrais reprendre les données de la table pour l'afficher dans un tableau. Avec bien sur la longueur (nb de ligne) qui soit different selon le nb d'entrée dans la db.
Comment fait on ?
En fait j'aimerai avoir un code simple pour que je puisse l'intégrer avec mes autres pages
merci
---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr