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

  FORUM HardWare.fr
  Programmation
  PHP

  affichage resultats en PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

affichage resultats en PHP

n°1726444
redah75
Posté le 29-04-2008 à 17:41:09  profilanswer
 

Bonjour,
 
j'ai une page php dans laquelle j'affiche les resultats d'une recherche.
cette recherche peut contenir jusqu'a 300 resultats et je dois les afficher tous ds une seule page, et cela ralenti ennormement l'affichage de la page. j'utilise le code suivant :
 

Code :
  1. <table ...>
  2. <? $sel = mysql_query("SELECT nom, prenom, adresse... FROM table..." );
  3. while($res = mysql_fetch_array($sel))
  4. {
  5. echo "<tr><td>$res[prenom] $res[nom] ...</td></tr>";
  6. }
  7. ?>
  8. </table>


 
y a t il un autre moyen plus rapide?
 
et une derniere question svp :
comment pourrais je afficher les resultats sur 2 ou 3 colonnes ?? c'est a dire :

Code :
  1. while($res = mysql_fetch_array($sel))
  2. {
  3. echo "<tr>";
  4. echo "<td>resultat 1</td>";
  5. echo "<td>resultat 2</td>";
  6. echo "<td>resultat 3</td>";
  7. echo "</tr>";
  8. }


 
Merci bp de votre aide

mood
Publicité
Posté le 29-04-2008 à 17:41:09  profilanswer
 

n°1726447
sielfried
Posté le 29-04-2008 à 17:52:13  profilanswer
 

redah75 a écrit :

Bonjour,
 
j'ai une page php dans laquelle j'affiche les resultats d'une recherche.
cette recherche peut contenir jusqu'a 300 resultats et je dois les afficher tous ds une seule page, et cela ralenti ennormement l'affichage de la page. j'utilise le code suivant :
 

Code :
  1. <table ...>
  2. <? $sel = mysql_query("SELECT nom, prenom, adresse... FROM table..." );
  3. while($res = mysql_fetch_array($sel))
  4. {
  5. echo "<tr><td>$res[prenom] $res[nom] ...</td></tr>";
  6. }
  7. ?>
  8. </table>


 
y a t il un autre moyen plus rapide?


 
Plus rapide pour toi non, pour le browser oui : un système de pagination, comme tu as sur ce forum.
 

Citation :


et une derniere question svp :
comment pourrais je afficher les resultats sur 2 ou 3 colonnes ?? c'est a dire :

Code :
  1. while($res = mysql_fetch_array($sel))
  2. {
  3. echo "<tr>";
  4. echo "<td>resultat 1</td>";
  5. echo "<td>resultat 2</td>";
  6. echo "<td>resultat 3</td>";
  7. echo "</tr>";
  8. }


 
Merci bp de votre aide


 
Utilise un compteur. Quand celui-ci modulo 2 (ou 3) vaut 0, tu crées une autre ligne.
edit: en fait, quand il vaut 2 (ou 3), crée une autre ligne et reset le, c'est mieux.


Message édité par sielfried le 29-04-2008 à 18:00:49

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1726460
redah75
Posté le 29-04-2008 à 18:02:48  profilanswer
 

Merci pour ta reponse.
oui, je connais le systeme de pagination, mais je ne peux pas l'utiliser dans mon cas!!
 
excuse moi, g pas bien compris ton 2eme point!

n°1726461
babasss
Posté le 29-04-2008 à 18:08:33  profilanswer
 

redah75 a écrit :

Merci pour ta reponse.
oui, je connais le systeme de pagination, mais je ne peux pas l'utiliser dans mon cas!!


Plutôt tu ne veux pas, je ne connais pas de système où ce n'est pas possible (enfin je n'ai pas tout vu non plus ...)

 
redah75 a écrit :


excuse moi, g pas bien compris ton 2eme point!

 
Code :
  1. echo "<tr>";
  2. $i=1;
  3. while (...)
  4. {
  5.  echo "<td>resultat</td>";
  6.  if ($i%3==0) { echo "</tr><tr>"; } //Toutes les 3 occurences, on ajoute une ligne
  7. $i++;
  8. }
  9. echo "</tr>";


Message édité par babasss le 29-04-2008 à 18:08:58

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1726464
redah75
Posté le 29-04-2008 à 18:14:21  profilanswer
 

je ne veux pas et je ne peux pas :) il me faut le visuel de tous les resultats en une seule page...
 
Ok cool, merci pour le bout de code qui me sera tres utile ;)
 
merci a vous et merci pour la rapidite de vos reponses :)

n°1726466
redah75
Posté le 29-04-2008 à 18:15:31  profilanswer
 

juste une petite question :)
pourquoi utiliser le modulo plutot que la soustraction ($i - 3) ???

n°1726469
babasss
Posté le 29-04-2008 à 18:17:26  profilanswer
 

Avec le modulo tu ne fais que deux opérations : un test et un incrément
Avec la soustraction tu fais trois opérations : un test, un incrément, et une remise à zéro si le test est vrai
=> Tu gagnes un test, tu fais un truc propre et optimisé...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1726479
redah75
Posté le 29-04-2008 à 18:31:28  profilanswer
 

OK, je ne savais pas que le modulo fait une remise a zero, je me suis jamais servi du modulo!! je dois faire une recherche pour mieux connaitre le modulo :)

n°1726487
redah75
Posté le 29-04-2008 à 18:48:24  profilanswer
 

la je sens que j'abuse avec cette question, mais j'ai vraiment du mal a comprendre le modulo :(
 
5 % 2 est 1 ??? c'est pas le reste entier c'est a dire 2 ????
je cherche toujours une doc sur le modulo, si tu as un lien, je suis preneur!!
 
avec if ($i%3==0) a quel moment on remet a zero $i??

n°1726507
babasss
Posté le 29-04-2008 à 19:11:50  profilanswer
 

Modulo te donne les reste de la division euclidienne du premier chiffre par le deuxième : 5 = 2*2 + 1 : quotient = 2 et reste = 1
 
Donc faire $i%3 == 0, va te donner tous les nombres $i pour lequels le reste est égal à 0, c'est à dire tous les 3 fois... cqfd


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
mood
Publicité
Posté le 29-04-2008 à 19:11:50  profilanswer
 

n°1726764
redah75
Posté le 30-04-2008 à 10:53:04  profilanswer
 

OK, merci, là j'ai bien compris le modulo :)
Merci de votre aide ;)
 
@+

Message cité 1 fois
Message édité par redah75 le 30-04-2008 à 11:21:51
n°1726783
babasss
Posté le 30-04-2008 à 11:17:42  profilanswer
 

redah75 a écrit :

OK, merci, là j'ai bien compris le modulo :)
mais je ne sais par contre toujours pas a quel moment ds ton script, tu remets $i a zero??


Jamais, c'est justement l'intérêt, ne pas remettre à zéro le $i...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1726787
redah75
Posté le 30-04-2008 à 11:22:48  profilanswer
 

lol, oui, je viens tout juste de modifier mon message car je viens de m'en rendre compte ;)
tu as ete plus rapide que moi :)
Merci bien

n°1726801
redah75
Posté le 30-04-2008 à 11:44:41  profilanswer
 

Ayeye, un petit souci :)
avec le code que tu m'as donne, il me met toujours une ligne vide a la fin, y a t il un remede?
la solution que j'ai en tete est de mettre :

Code :
  1. echo "<tr>";
  2. $i=1;
  3. while (...)
  4. echo "<td>resultat</td>"; 
  5. if ($i%3==0) { echo "</tr>"; if($i != mysql_num_rows($sel)) echo "<tr>"; } //Toutes les 3 occurences, on ajoute une ligne  
  6. $i++;
  7. }
  8. if($i != mysql_num_rows($sel)) echo "echo "</tr>";


 
peut on faire mieux??


Message édité par redah75 le 30-04-2008 à 11:48:18
n°1726806
babasss
Posté le 30-04-2008 à 11:49:48  profilanswer
 

Code :
  1. $i=0;
  2.  while (...)
  3.  {
  4.   if ($i%3==0) { echo "<tr>"; }
  5.   echo "<td>resultat</td>";
  6.   if ($i%3==2) { echo "</tr>"; } //Toutes les 3 occurences, on ajoute une ligne
  7.   $i++;
  8.  }


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1726814
redah75
Posté le 30-04-2008 à 12:02:11  profilanswer
 

encore merci ;)

n°1726878
redah75
Posté le 30-04-2008 à 14:10:23  profilanswer
 

je suis desole de revenir t'embeter encore une fois.
je bloque sur ce que je veux faire:
je suis entain de preparer une page d'etiquettes a imprimer. dans chaque page, il y a 2 colonnes et 7 lignes.
j'aimerais pouvoir mettre toujours 7 lignes meme si j'obtiens que 3 ou 4 resultats qui tiendront sur 2 lignes.
et si j'ai 17 resultats, j'affiche les 14 premiers ds un 1er tableau, puis les 3 derniers resultats ds un autre tableau
 
aurais tu une idee??
 
la solution que j'ai en tete est de faire ceci mais je sais que t'as mieux :) :

Code :
  1. while(...) $tableau[] = $resultats;
  2. for($i = 0; $j = 0; $i < 17; $i++; $j++)
  3. {
  4. $tableau[$j] ...
  5. ...
  6. }


Message édité par redah75 le 30-04-2008 à 14:13:28

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

  affichage resultats en PHP

 

Sujets relatifs
De VRAIS cours de PHP, ça existe ??[Résolu 2 fois ;)] script PHP liste deroulante et base de données
[ PHP ] [ RESOLU ] Envoyer des mail hotmail avec php[ PHP ] str_replace avancé dans un $texte
Aide sur fonction PHP[PHP / BDD] Ma gallerie photo
PHP MYSQL Affichage resultats selon heure et heure de nuit[PHP] Proposer au visiteur un nombre d'affichage de résultats
[PHP]affichage de resultats mysql ds un <select>[PHP] modifier l'affichage des resultats....
Plus de sujets relatifs à : affichage resultats en PHP


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