Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1133 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  table dans un tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

table dans un tableau

n°406504
bodbod
Planquez vous, bodbod arrive..
Posté le 23-05-2003 à 20:01:19  profilanswer
 

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
mood
Publicité
Posté le 23-05-2003 à 20:01:19  profilanswer
 

n°406510
samuelp
Posté le 23-05-2003 à 20:14:46  profilanswer
 

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

n°406515
bodbod
Planquez vous, bodbod arrive..
Posté le 23-05-2003 à 20:24:32  profilanswer
 

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
n°406517
samuelp
Posté le 23-05-2003 à 20:32:18  profilanswer
 

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

n°406519
bodbod
Planquez vous, bodbod arrive..
Posté le 23-05-2003 à 20:37:34  profilanswer
 

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
n°406522
samuelp
Posté le 23-05-2003 à 20:48:42  profilanswer
 

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

n°406523
bodbod
Planquez vous, bodbod arrive..
Posté le 23-05-2003 à 20:49:09  profilanswer
 

<? 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
n°406525
samuelp
Posté le 23-05-2003 à 20:51:11  profilanswer
 

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

n°406527
bodbod
Planquez vous, bodbod arrive..
Posté le 23-05-2003 à 20:52:30  profilanswer
 

samuelp a écrit :


 
Y a un ; apres $compteur=0

oops  :sweat:  
Je reesai...


---------------
http://www.menuiseriemerceron.fr - http://www.atlantiquecoloration.fr
n°406529
bodbod
Planquez vous, bodbod arrive..
Posté le 23-05-2003 à 20:54:13  profilanswer
 

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
mood
Publicité
Posté le 23-05-2003 à 20:54:13  profilanswer
 

n°406530
samuelp
Posté le 23-05-2003 à 20:55:34  profilanswer
 

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

n°406532
bodbod
Planquez vous, bodbod arrive..
Posté le 23-05-2003 à 20:58:28  profilanswer
 

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
n°406535
samuelp
Posté le 23-05-2003 à 21:02:18  profilanswer
 

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

n°406537
bodbod
Planquez vous, bodbod arrive..
Posté le 23-05-2003 à 21:07:11  profilanswer
 

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
n°406538
samuelp
Posté le 23-05-2003 à 21:08:28  profilanswer
 

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

n°406550
bodbod
Planquez vous, bodbod arrive..
Posté le 23-05-2003 à 21:32:11  profilanswer
 

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
n°406551
samuelp
Posté le 23-05-2003 à 21:34:08  profilanswer
 

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]

n°406741
bodbod
Planquez vous, bodbod arrive..
Posté le 24-05-2003 à 10:37:12  profilanswer
 

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
n°406749
bodbod
Planquez vous, bodbod arrive..
Posté le 24-05-2003 à 11:30:37  profilanswer
 

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
n°406750
samuelp
Posté le 24-05-2003 à 11:45:11  profilanswer
 

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

n°406753
bodbod
Planquez vous, bodbod arrive..
Posté le 24-05-2003 à 11:55:07  profilanswer
 

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
n°406755
bodbod
Planquez vous, bodbod arrive..
Posté le 24-05-2003 à 12:01:42  profilanswer
 

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
n°406757
samuelp
Posté le 24-05-2003 à 12:07:34  profilanswer
 

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'

n°406774
bodbod
Planquez vous, bodbod arrive..
Posté le 24-05-2003 à 12:59:51  profilanswer
 

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
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  table dans un tableau

 

Sujets relatifs
Lire un fichier et stocker les valeurs dans un tableau[MySQL] DROP TABLE de plusieurs tables
Probleme pour modifier une colonne dans une table Postgres[CSS] Center un tableau
[CSS]pour une table qui ne fonctionne pas[C] Comment fait-on un tableau dynamique a 2 dimensions ?
comment fait-on avec un getter pour accéder a un tableau en private ?[CSS] Aligner une table en haut
Tableau de recordSupprimer les lignes redondandes dans un tableau excel ?????
Plus de sujets relatifs à : table dans un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR