FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage interprété(Php, Perl...)


  [PHP] récupération et affichage d'infos à partir d'une bd mysql

 




Le salon de discussion : ced-2k, 1 utilisateur anonyme et 8 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] récupération et affichage d'infos à partir d'une bd mysql

n°723
neojack
Le GET 27, c'est puissant
Posté le 31-12-2003 à 15:49:26  profilanswer
 

voilà,
 
continuant mon site, je voudrais maintenant réaliser un annuaire des membres.
 
Pour cela, je voudrais afficher les membres par ordre alphabétique suivant leur nom (ou une information autre)...
 
Pour ce qui est de récupérer les infos dans la base de données j'ai fait ceci :
 

Code :
  1. <?php
  2. if(MODE_DEMO!=1) {
  3.  // CONNEXION AU SERVEUR DE LA BASE DE DONNEE
  4.  $db_link = mysql_connect(SQL_SERVEUR, SQL_USER, SQL_PASSWD) or die("Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier config.php" );
  5.  // CHOIX DE LA BASE
  6.  mysql_select_db(SQL_BDD,$db_link) or die("la base de données est introuvable" );
  7.  // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
  8.  $requete = mysql_query("SELECT * FROM membre",$db_link) or die(mysql_error());
  9.  $row = mysql_fetch_object ($requete);
  10. }
  11. ?>


 
Maintenant, je n'arrive pas à faire "printer" les informations ressortant de la base de données... en ce qui concerne l'affichage des infos je souhaiterais afficher sous forme d'une "carte de visite" si vous voyez ce que je veux dire...
 

Code :
  1. Nom :
  2. Prénom :
  3. Adresse :
  4. ....

[cpp]
 
J'aimerais la possibilité de passer d'une page à une autre suivant un certains nombre de résultat. Ex : si on a 10 record trouvé pour la lettre A, deux pages de 5  
 
(enfin bon ça c'est pas encore trop grave)...  
 
Le tout est que je code jusque là l'affichage des record trouvés.
 
Merci


---------------
--- XstephX le roi du up déguisé ---
mood
Google
Posté le 31-12-2003 à 15:49:26  profilanswer
 

n°726
Deadog
Dain Bramaged
Posté le 31-12-2003 à 17:32:51  profilanswer
 

dans ta requête SQL tu dois utiliser les mots clé "LIMIT" et "ORDER"
regarde la doc sur mysql.com ou .org (attention, elle est pas facile à aborder mais une fois zappé les infos inutiles ça deviens plus simple :D)


Message édité par Deadog le 31-12-2003 à 17:33:24
n°727
neojack
Le GET 27, c'est puissant
Posté le 31-12-2003 à 17:37:19  profilanswer
 

oui d'accord mais pour afficher dans ma page web c'est ça que je vois pas...


---------------
--- XstephX le roi du up déguisé ---
n°728
albataur
Posté le 31-12-2003 à 18:08:11  profilanswer
 

à la place de

Code :
  1. $row = mysql_fetch_object ($requete);


tu mets :

Code :
  1. $row = mysql_fetch_array ($requete);


 
Ca va te créer un tableau contenant les infos style $row['nom'] ($row['le_nom_de_ton_champ']).
Après tu fais ton code html et tu mets aux endroits où tu veux que ça affiche le nom par exemple :

Code :
  1. <?=$row['nom']?>


Tu mets le tout dans une boucle et c'est bon.
 
Pour trier faut que tu rajoutes un "ORDER BY nom ASC" à ta requète par exemple :

Code :
  1. $requete = mysql_query("SELECT * FROM membre ORDER BY nom ASC",$db_link) or die(mysql_error());


 
Voila.
 
T'as plus propre en ce qui concerne l'affichage mais avec ça, ça suffira et c'est plus simple.

n°729
neojack
Le GET 27, c'est puissant
Posté le 31-12-2003 à 18:25:28  profilanswer
 

bon voilà mon code :
 

Code :
  1. <?php
  2.  
  3.   if(MODE_DEMO!=1) {
  4.      // CONNEXION AU SERVEUR DE LA BASE DE DONNEE  
  5.      $db_link = mysql_connect(SQL_SERVEUR, SQL_USER, SQL_PASSWD) or die("Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier config.php" );
  6.    
  7.      // CHOIX DE LA BASE  
  8.      mysql_select_db(SQL_BDD,$db_link) or die("la base de données est introuvable" );
  9.      
  10.      // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS  
  11.      $requete = mysql_query("SELECT * FROM membre",$db_link) or die(mysql_error());
  12.    
  13.      $row = mysql_fetch_array ($requete);
  14.    
  15. ?>
  16. <html>
  17. <head
  18. </head>
  19. <body>
  20. <?=$row['pseudo']?>
  21. </body>
  22. </html>


 
et j'ai ce message d'erreur :
 

Code :
  1. Parse error: parse error, unexpected $ in d:\siteweb\160\includes\centre_annuaire.php on line 27


---------------
--- XstephX le roi du up déguisé ---
n°730
neojack
Le GET 27, c'est puissant
Posté le 31-12-2003 à 18:28:16  profilanswer
 

Edit : si ça tombe c'est moi qui ai fait une bête erreur mais c'est la fin de journée et je suis crevé... et dire que je sors au soir ça va être dûr...


---------------
--- XstephX le roi du up déguisé ---
n°732
xstephx
Sarah!
Posté le 31-12-2003 à 18:45:11  profilanswer
 

c'est ça qui est pas correct :
 

Code :
  1. <?=$row['pseudo']?>

 tu vires le '=' ;) et tu mets un print à la place (si ton but etait bien d'afficher ladite valeur)


---------------
Gagnez un iPhone en jouant sur www.findupays.be
n°733
neojack
Le GET 27, c'est puissant
Posté le 31-12-2003 à 19:03:43  profilanswer
 

voilà, je viens de faire ce que tu dis xsteph et ça passe toujours pas :
 

Code :
  1. Parse error: parse error, unexpected $ in d:\siteweb\160\includes\centre_annuaire.php on line 28


---------------
--- XstephX le roi du up déguisé ---
n°734
xstephx
Sarah!
Posté le 31-12-2003 à 19:22:33  profilanswer
 

Code :
  1. <?php 
  2.    
  3.     if(MODE_DEMO!=1) { 
  4.          // CONNEXION AU SERVEUR DE LA BASE DE DONNEE   
  5.          $db_link = mysql_connect(SQL_SERVEUR, SQL_USER, SQL_PASSWD) or die("Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier config.php" ); 
  6.          
  7.          // CHOIX DE LA BASE   
  8.          mysql_select_db(SQL_BDD,$db_link) or die("la base de données est introuvable" ); 
  9.          
  10.          // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS   
  11.          $requete = mysql_query("SELECT * FROM membre",$db_link) or die(mysql_error()); 
  12.          
  13.          $row = mysql_fetch_array ($requete);
  14.    
  15.        
  16.  
  17.    
  18. echo "<html><head></head><body> $row['pseudo'] </body></html>
  19. ?>


 
et là ?


---------------
Gagnez un iPhone en jouant sur www.findupays.be
n°750
albataur
Posté le 01-01-2004 à 23:27:16  profilanswer
 

xstephx a écrit :

c'est ça qui est pas correct :
 

Code :
  1. <?=$row['pseudo']?>

 tu vires le '=' ;) et tu mets un print à la place (si ton but etait bien d'afficher ladite valeur)


 
C'est tout à fait correct le <?=$row['pseudo']?>, c'est un contraction de <? echo $row['pseudo'] ?>.
Le problème ça vient surtout du fait qu'il ouvre une { et qu'il la ferme pas.
 
Ensuite ca risque pas de marcher si tu fais pas de boucle.

n°751
albataur
Posté le 01-01-2004 à 23:31:17  profilanswer
 

Code :
  1. <?php 
  2.    
  3.     if(MODE_DEMO!=1) { 
  4.     ...
  5.          
  6.      
  7.     ?>
  8.    
  9.     <html>
  10.     <head
  11.     </head>
  12.    
  13.     <body>
  14.     <?while($row = mysql_fetch_array($requete))
  15.          {
  16.     ?>
  17.    
  18.     <?=$row['pseudo']?>
  19.     <? } //Fermeture du while ?>
  20.     </body>
  21.    
  22.     </html>
  23. <? } //Fermeture du if ?>


 
C'est pas beau mais ça devrait marcher.

n°762
neojack
Le GET 27, c'est puissant
Posté le 02-01-2004 à 12:32:56  profilanswer
 

pour le code d'albtaur c'est oki.  
Maintenant je vais faire récupérer les données par ligne entière des utilisateurs mais en excluant certaines données par exemple. histoire que quand la reqûete est exécutée sur la base de données, le prog ne me ressorte pas les mots de passe ...
 
Autre question : si comme dit plus haut je veux mettre ça sous forme de carte de visite de ce style :
 
Nom : nom user 1
Prénom : prénom user 1
 
----------
 
Nom : Nom user 2
Prénom : prénom user 2
 
Comment dois je faire ...
 
Merci


---------------
--- XstephX le roi du up déguisé ---
n°763
neojack
Le GET 27, c'est puissant
Posté le 02-01-2004 à 12:34:49  profilanswer
 

en fait je ne vois comment dire au prog qu'il passe automatiquement au prochain user et qu'il continue à créer des cartes de visite jusque quand il trouve des users... histoire de ne pas devoir remettre les lignes de code chaque fois manuellement.


---------------
--- XstephX le roi du up déguisé ---
n°765
Dr Lous
I see old password
Posté le 02-01-2004 à 13:01:56  profilanswer
 

foreach est ton amis ;)


---------------
Oseras-tu m'affronter ?
n°766
albataur
Posté le 02-01-2004 à 14:13:36  profilanswer
 

Tu fais un truc du style :
 
<?while($row = mysql_fetch_array($requete))
             {
          ?>
           
          Nom :<?=$row['nom']?><br>
          Prénom : <?=$row['prenom']?><br>
          -------------------------------<br><br>
<? } //Fermeture du while ?>

n°767
neojack
Le GET 27, c'est puissant
Posté le 02-01-2004 à 14:18:35  profilanswer
 

oui mais pour montrer qu'on passe chaque fois à la ligne suivante dans la base de donnée... car là en fait, je vais avoir (comme résultat : Nom : pierre paul jacques (qui correspondent à tous les users, or c'est pour un seul user chaque fois qu'il me faudrait...)


---------------
--- XstephX le roi du up déguisé ---
n°768
neojack
Le GET 27, c'est puissant
Posté le 02-01-2004 à 14:23:34  profilanswer
 

bon apparement avec ton code albataur, il me crée toutes les mises en forme (le nombre de record de la base) , mais il n'attribue les valeurs qu'aux deux derniers enregistrements de la base... va savoir pourquoi ...


Message édité par neojack le 02-01-2004 à 14:24:19

---------------
--- XstephX le roi du up déguisé ---
n°769
neojack
Le GET 27, c'est puissant
Posté le 02-01-2004 à 14:30:47  profilanswer
 

en regardant dans ma base sql je vois que seule les 2 lignes affichées sont complètes... les autres ont des attributs qui manquent... donc pouvez vous me renseigner un moyen d'afficher les valeurs des enregistrements même si les lignes ne sont pas complètes. (car en fait les visiteurs peuvent compléter leur profil et si il ne le complète pas alors j'aurai des users manquant dans mon annuaire.)
encore merci à tous


---------------
--- XstephX le roi du up déguisé ---
n°771
Dr Lous
I see old password
Posté le 02-01-2004 à 14:47:58  profilanswer
 

albataur a écrit :

Tu fais un truc du style :
 
<?while($row = mysql_fetch_array($requete))
             {
          ?>
           
          Nom :<?=$row['nom']?><br>
          Prénom : <?=$row['prenom']?><br>
          -------------------------------<br><br>
<? } //Fermeture du while ?>


 
[:vomi][:vomi2]
 
 :sweat:


---------------
Oseras-tu m'affronter ?
n°772
Dr Lous
I see old password
Posté le 02-01-2004 à 14:49:01  profilanswer
 

neo.. fait le schema de la base en clair (3 ligne avec exemple d'affichage final) et je te file ton code ;)


---------------
Oseras-tu m'affronter ?
n°774
Dr Lous
I see old password
Posté le 02-01-2004 à 15:05:25  profilanswer
 

Comme boucle tu a le while
 
while(list($id,$pseudo,$gsm) = mysql_fetch_row($query_array))
{
le code ici... a tour de la boucle il prends le suivant...
}


---------------
Oseras-tu m'affronter ?
n°775
Dr Lous
I see old password
Posté le 02-01-2004 à 15:14:10  profilanswer
 

$query_array="SELECT nom,gsm,mail FROM bdd_user ORDER BY nom ASC";
 
while(list($nom,$gsm,$mail) = mysql_fetch_row($query_array))
{
echo $nom;
echo $gsm;
echo $mail;
}  
 
plus clair ?


---------------
Oseras-tu m'affronter ?
n°776
neojack
Le GET 27, c'est puissant
Posté le 02-01-2004 à 16:09:39  profilanswer
 

j'ai fait comme tu disais lous et j'ai pas un pet d'affichage de données :
 

Code :
  1. <?php 
  2.      
  3.       if(MODE_DEMO!=1) { 
  4.              // CONNEXION AU SERVEUR DE LA BASE DE DONNEE   
  5.              $db_link = mysql_connect(SQL_SERVEUR, SQL_USER, SQL_PASSWD) or die("Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier config.php" ); 
  6.              
  7.              // CHOIX DE LA BASE   
  8.              mysql_select_db(SQL_BDD,$db_link) or die("la base de données est introuvable" ); 
  9.              
  10.              // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS   
  11.              $query_array ="SELECT pseudo, nom, prenom, totem, email, telephone, gsm, rue, postal, localite FROM membre ORDER BY nom ASC";
  12. }
  13. ?>
  14. <?php
  15. while(list($pseudo,$nom,$prenom,$totem,$email,$telephone,$gsm,$rue,$postal,$localite) = mysql_fetch_row($query_array))
  16. {
  17. echo $nom;
  18. echo $gsm;
  19. echo $mail;
  20. ?>


---------------
--- XstephX le roi du up déguisé ---
n°777
Dr Lous
I see old password
Posté le 02-01-2004 à 16:53:41  profilanswer
 

ta requete SQL est bonne, je veux dire par la test ss phpmyadmin pour voir si il te donne kkchose ;)


---------------
Oseras-tu m'affronter ?
n°778
neojack
Le GET 27, c'est puissant
Posté le 02-01-2004 à 17:00:50  profilanswer
 

si tu parles au niveau de la connection à la base de données, oui c'est bon puisque j'arrive à me logger.


---------------
--- XstephX le roi du up déguisé ---
n°779
albataur
Posté le 02-01-2004 à 17:26:12  profilanswer
 


 
Ho ho ça veut dire quoi ça ?
J'ai dit qu'il y avait plus propre. Mais à mon avis c'est ce qu'il y a de plus simple à comprendre pour lui.
En plus à tous les coups ca marche très bien, et le perfs sont aussi bonnes.

n°780
Dr Lous
I see old password
Posté le 02-01-2004 à 17:30:04  profilanswer
 

je sais pas mais t'avait pas dit "J'ai dit qu'il y avait plus propre."


---------------
Oseras-tu m'affronter ?
n°781
Deadog
Dain Bramaged
Posté le 02-01-2004 à 17:33:20  profilanswer
 

dr lous > c bien ce ke je disais, les codeurs php codent comme des porcs :D
 
utilisation de chose totallement inutile (list) dans une boucle [:tapai]


Message édité par Deadog le 02-01-2004 à 17:33:44
n°782
Dr Lous
I see old password
Posté le 02-01-2004 à 17:33:57  profilanswer
 

Deadog a écrit :

dr lous > c bien ce ke je disais, les codeurs php codent comme des porcs :D
 
utilisation de chose totallement inutile (list) dans une boucle [:tapai]


 
c plus rapide a executé [:spamafote]


---------------
Oseras-tu m'affronter ?
n°783
xstephx
Sarah!
Posté le 02-01-2004 à 17:35:10  profilanswer
 

Deadog a écrit :

dr lous > c bien ce ke je disais, les codeurs php codent comme des porcs :D
 
utilisation de chose totallement inutile (list) dans une boucle [:tapai]


 
c'est à cause de MySQL, c'est une incitation au code mal structuré...
 
php+xml ca powasse bien :D


---------------
Gagnez un iPhone en jouant sur www.findupays.be
n°784
albataur
Posté le 02-01-2004 à 17:51:40  profilanswer
 

albataur a écrit :

Code :
  1. <?php 
  2.    
  3.     if(MODE_DEMO!=1) { 
  4.     ...
  5.          
  6.     ....<? } //Fermeture du if ?>


 
C'est pas beau mais ça devrait marcher.


 
;)


Message édité par albataur le 02-01-2004 à 17:51:58
n°785
albataur
Posté le 02-01-2004 à 17:53:43  profilanswer
 

Et puis on s'en fout que ce soit beau ou propre ou rapide à executer, neojack il y connait rien, il veut juste afficher ses cartes de visites.
Donc le but du jeu c'est de lui pondre un truc qui marche et qu'il puisse comprendre ;)


Message édité par albataur le 02-01-2004 à 17:53:58
n°787
Dr Lous
I see old password
Posté le 02-01-2004 à 18:38:00  profilanswer
 

wee ta pas tort la dessus...
 
perso je prefere un code rapide qu'un code propre...


---------------
Oseras-tu m'affronter ?
n°788
neojack
Le GET 27, c'est puissant
Posté le 02-01-2004 à 18:51:09  profilanswer
 

ben c'est pas que j'y connais rien j'ai quand même fait la majeure partie de mon site http://la160sgp.webdynamit.net mais en ce qui concerne les utilisation sur base de données... j'y connais pas grand chose oui dans cette partie... autrement tout le site est quand même codé en php... si j'y connaissais rien j'aurais pas tenté de me lancer en php j'aurais fait uniquement en html comme je faisais jusqu'à maintenant...


---------------
--- XstephX le roi du up déguisé ---
n°790
albataur
Posté le 02-01-2004 à 19:13:49  profilanswer
 

neojack a écrit :

ben c'est pas que j'y connais rien j'ai quand même fait la majeure partie de mon site http://la160sgp.webdynamit.net mais en ce qui concerne les utilisation sur base de données... j'y connais pas grand chose oui dans cette partie... autrement tout le site est quand même codé en php... si j'y connaissais rien j'aurais pas tenté de me lancer en php j'aurais fait uniquement en html comme je faisais jusqu'à maintenant...


 
Je disais ça gentiment ;)

n°791
neojack
Le GET 27, c'est puissant
Posté le 02-01-2004 à 19:41:03  profilanswer
 

pas de souci l'ami.


---------------
--- XstephX le roi du up déguisé ---
mood
Google
Posté le 02-01-2004 à 19:41:03  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage interprété(Php, Perl...)


  [PHP] récupération et affichage d'infos à partir d'une bd mysql

 

Hit Parade