table dans un tableau

table dans un tableau - PHP - Programmation

Marsh Posté le 23-05-2003 à 20:01:19    

Bonjour, :hello:  
 
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
Reply

Marsh Posté le 23-05-2003 à 20:01:19   

Reply

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

Reply

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\"
   cellpadding=\"1\" cellspacing=\"0\"><tr><td>" );
 
print("<FONT FACE=\"$titrefont\" COLOR=\"#$titrecolor\" size=\"5\"><b>  $titre</b></FONT>
  <FONT FACE=\"$datfont\" COLOR=\"#$datcolor\" size=\"2\"> - $dat</FONT>" );
 
print("</td></tr><tr><td>" );
 
print("<FONT FACE=\"$textfont\" COLOR=\"#$textcolor\">$text</FONT>" );
 
print("</td></tr><tr><td>" );
print("<FONT FACE=\"$signfont\" COLOR=\"#$signcolor\">  Envoyé par  
  <A HREF=\"mailto:$email\">$nick</A></FONT>" );
 
print("</td></tr></table><br>" );
 
Source du code


Message édité par bodbod le 23-05-2003 à 20:27:04

---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

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 ?
 
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\"
   cellpadding=\"1\" cellspacing=\"0\"><tr><td>" );
 
print("<FONT FACE=\"$titrefont\" COLOR=\"#$titrecolor\" size=\"5\"><b>  $titre</b></FONT>
  <FONT FACE=\"$datfont\" COLOR=\"#$datcolor\" size=\"2\"> - $dat</FONT>" );
 
print("</td></tr><tr><td>" );
 
print("<FONT FACE=\"$textfont\" COLOR=\"#$textcolor\">$text</FONT>" );
 
print("</td></tr><tr><td>" );
print("<FONT FACE=\"$signfont\" COLOR=\"#$signcolor\">  Envoyé par  
  <A HREF=\"mailto:$email\">$nick</A></FONT>" );
 
print("</td></tr></table><br>" );
 
Source du code




 
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

Reply

Marsh Posté le 23-05-2003 à 20:37:34    

Citation :

$query = "select * from nom_de_la_table" ;  
$result=mysql_query($query) ;  
 
$compteur=0
while (list($nom,$prenom) = mysql_fetch_row($result))
{
  $tableau[$compteur][0]=$nom;
  $tableau[$compteur][1]=$prenom ;
  $compteur++;
}


 
C'est ca ?
 
Et comment ressorte les colonnes ?
En fait, je voudrais que ca donne un peu comme le forum.


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le 23-05-2003 à 20:48:42    

bodbod a écrit :

Citation :

$query = "select * from nom_de_la_table" ;  
$result=mysql_query($query) ;  
 
$compteur=0
while (list($nom,$prenom) = mysql_fetch_row($result))
{
  $tableau[$compteur][0]=$nom;
  $tableau[$compteur][1]=$prenom ;
  $compteur++;
}


 
C'est ca ?
 
Et comment ressorte les colonnes ?
En fait, je voudrais que ca donne un peu comme le forum.


 
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>
}

Reply

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...


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le 23-05-2003 à 20:51:11    

bodbod a écrit :

<? 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...


 
Y a un ; apres $compteur=0

Reply

Marsh Posté le 23-05-2003 à 20:52:30    

samuelp a écrit :


 
Y a un ; apres $compteur=0

oops  :sweat:  
Je reesai...


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

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


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le 23-05-2003 à 20:54:13   

Reply

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...
 
http://www.bodbod.fr.st/Aideonline/Modo


 
Tu vas pouvoir mettre mon pseudo dans la section remerciement sur ton site :D

Reply

Marsh Posté le 23-05-2003 à 20:58:28    

samuelp a écrit :


 
Tu vas pouvoir mettre mon pseudo dans la section remerciement sur ton site :D

Non, c'est pour un forum concurrent  :whistle:  ;)  
Mais on est pas specialisé dans la prog.
 
Sinon, rien ne s'affiche


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le 23-05-2003 à 21:02:18    

bodbod a écrit :

Non, c'est pour un forum concurrent  :whistle:  ;)  
Mais on est pas specialisé dans la prog.
 
Sinon, rien ne s'affiche


 
Un echo count($tableau) te donne quoi ?
 
Fais un print_r($tableau) apres la recuperation des donnees pour voir ce que tu as extrait

Reply

Marsh Posté le 23-05-2003 à 21:07:11    

Citation :

<table width="100%" border="0" cellspacing="1" cellpadding="1">
  <tr bgcolor="#FFCC99">  
    <td width="19%"> <div align="center">Titre de la news </td>
    <td width="19%"> <div align="center">Date de la news </td>
    <td width="37%"> <div align="center">Personne ayant envoyé la news </td>
    <td width="13%"> <div align="center">Numéro de la news </td>
    <td width="12%"> <div align="center"> </td>
</tr>
 
<? 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++;
}  
 
for ($compteur=0;$compteur <count($tableau);$compteur++)
{
   echo "<tr><td>"; echo $tableau[$compteur][0];  
   echo "</td><td>"; echo $tableau[$compteur][1];
   echo "</td></tr>";
}
?>
</table>

Ca affiche bien la variable $multi1 mais pas $lien  :??:


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le 23-05-2003 à 21:08:28    

bodbod a écrit :

Citation :

<table width="100%" border="0" cellspacing="1" cellpadding="1">
  <tr bgcolor="#FFCC99">  
    <td width="19%"> <div align="center">Titre de la news </td>
    <td width="19%"> <div align="center">Date de la news </td>
    <td width="37%"> <div align="center">Personne ayant envoyé la news </td>
    <td width="13%"> <div align="center">Numéro de la news </td>
    <td width="12%"> <div align="center"> </td>
</tr>
 
<? 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++;
}  
 
for ($compteur=0;$compteur <count($tableau);$compteur++)
{
   echo "<tr><td>"; echo $tableau[$compteur][0];  
   echo "</td><td>"; echo $tableau[$compteur][1];
   echo "</td></tr>";
}
?>
</table>

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

Reply

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 ;)


Message édité par bodbod le 23-05-2003 à 21:32:26

---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

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 [:spamafote]

Reply

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 [:spamafote]

c'est bien la le probleme....
C'est peut etre un truc de pas grand chose.


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le 24-05-2003 à 11:30:37    

bodbod a écrit :

c'est bien la le probleme....
C'est peut etre un truc de pas grand chose.

bodbod  :pfff:  :sweat:  
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 ?


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le 24-05-2003 à 11:45:11    

bodbod a écrit :

bodbod  :pfff:  :sweat:  
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 ?


 
C'est une solution oui

Reply

Marsh Posté le 24-05-2003 à 11:55:07    

samuelp a écrit :


 
C'est une solution oui

salut  :hello:  
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


Message édité par bodbod le 24-05-2003 à 11:57:16

---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le 24-05-2003 à 12:01:42    

Citation :

SELECT * FROM fournisseurs
 
WHERE colonne_de_comparaison = valeur_voulu

 
http://www.programmationworld.com/ [...] numero=189


C'est ca pour le tri ?
Et pour l'ordre d'entrée dans la base ?


Message édité par bodbod le 24-05-2003 à 12:02:13

---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le 24-05-2003 à 12:07:34    

bodbod a écrit :

salut  :hello:  
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


 
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'

Reply

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


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed