Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Rue-Montgallet.com
  Programmation
  Php - Sql

  organisation d'une liste dans une page

Bas de page
Auteur Sujet :

organisation d'une liste dans une page

n°14140
Profil sup​primé
Posté le 11-07-2005 à 15:07:13  
 

alors voila, j'ai fait plusieurs tentatives mais sans succes aucun avec un boucle row en plus...
 
le code de base est le suivant

Citation :

$sql = 'SELECT id_base, ref, designation, idb_image1
 FROM base_des ORDER BY ref';
 
// on envoie la requête  
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
// on fait une boucle qui va faire un tour pour chaque enregistrement  
echo '<h3><center>Liste des désignations disponibles au magasin<br>Classé par références</center></h3>';
echo '<center> Pour acceder à  la fiche détaillée selectionner la reference</center> <br>';
echo '<ul>';
while($data = mysql_fetch_assoc($req))  
 {  
 // on affiche le nom de chaque designation avec un lien menant à toutes les infos la concernant  {
  echo '<li>
  <a href="index.php?page=Consultation/fiche_detail&id_base='.$data['id_base'].'">
  '.$data['ref'].'</a> : '.$data['designation'].'  
  </li>';
  // on crée la requête SQL et on classe les etudiants par ordre alphabétique
  $sql2 = 'SELECT description, url_mini, url
   FROM images WHERE "'.$data['idb_image1'].'" = description';
 
  // on envoie la requête  
  $req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
  $data2 = mysql_fetch_assoc($req2);
  echo'<p><a href="'.$data2['url'].'" target="_blank"><img src="'.$data2['url_mini'].'" alt="'.$data2['description'].'"></a></p>';
 }
echo '</ul>';
?>


 
et avc le row ca donne ca le code :

Citation :

$sql = 'SELECT * FROM base_des ORDER BY famille AND sous_famille, designation ASC';
 
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
 
 
$result = mysql_query("SELECT famille, sous_famille, id_base, ref, designation, idb_image1, url_mini, url  
   FROM base_des, images ORDER BY famille ASC, sous_famille ASC" );
if(!$result){
 echo'Impossible d\'exécuter la requête : ' .mysql_error();
 exit;
 }
else{
 $row = mysql_fetch_row($result);
// on fait une boucle qui va faire un tour pour chaque enregistrement  
echo '<h3><center>Liste des désignations disponibles au magasin<br>Classé par désignation</center></h3>';
echo '<center> Pour acceder à  la fiche détaillée selectionner la désignation</center> <br>';
echo '<ul>';
 
 
while($data = mysql_fetch_assoc($req)){
while($row = mysql_fetch_row($result)){
 if( $data['famille'] == $row[0] )  
  {
  echo'  <br><li><H3>'.$row[0].' </H3></li>';
  if( $data['sous_famille'] == $row[1] )  
   {
 // on affiche le nom de chaque designation avec un lien menant à toutes les infos la concernant apres la famille et la sous famille
 echo'  <p><br><ul><li>'.$row[1].' </li></ul><p>
 <ul><ul><li>
 <a href="index.php?page=Consultation/fiche_detail&id_base='.$row[2].'">
 '.$row[4].'</a> : '.$row[3].'
 <p><a href="'.$row['7'].'" target="_blank">
 <img src="'.$row['6'].'" alt="'.$row['4'].'"></a></p>';
   }
  }
 }
echo '</ul>';
}
}
?>


 
dans le premier cas j'ai bien la liste de tout ce que je veux mais pas ordonner et dans le second ba j'ai bien des trucs mais pas comme je veu et les liens vers les fiches sont plus bon, y'en a plus qu'une...
 
merci de m'aider


Message édité par Profil supprimé le 15-07-2005 à 07:09:40
mood
Pub
Posté le 11-07-2005 à 15:07:13  
 

n°14142
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 11-07-2005 à 17:20:00  
 

Y'a aussi le mysql_fetch_array qui est bien plus pratique!

Code :
  1. while ($aResult = mysql_fetch_array($result)) {
  2.      [...]
  3. }


Si tu ne veux pas retrier en PHP (ce qui est tout à fait faisable) tu dois t'assurer de trier dans ta requête PHP. L'ordre des résultats sera donc pré-déterminé, et tu n'as plus qu'à afficher les résultats au fur et à mesure qu'ils te parviennent...

n°14179
Profil sup​primé
Posté le 15-07-2005 à 07:09:20  
 

c'est ce que jai essayer de faire en fait, mais visiblement j' m'y suis mal pris :(
 
t'as ligne jla place a la place de mes 2 whiles ?

n°14214
snarky
Profil : Membre
Posté le 19-07-2005 à 03:46:06  
 

while ($aResult = mysql_fetch_array($result)) {
 
c lequivalant de mysql_fetch_row sof ke a la place de mettre $aResult[0] tu mettra $aResult['nom_de_champ'](id_base, ref, designation, idb_image1)
 
donc tu as juste a replacé ton while($row = mysql_fetch_row($result)){ par while($row = mysql_fetch_array($result)){ et de remplacer [0] par ['id_base'] etc...

n°14222
Profil sup​primé
Posté le 19-07-2005 à 13:40:04  
 

merci

n°14282
Zebra3
Very nice !
Profil : Super Administrateur
Posté le 23-07-2005 à 00:22:45  
 

snarky a écrit :

while ($aResult = mysql_fetch_array($result)) {
 
c lequivalant de mysql_fetch_row sof ke a la place de mettre $aResult[0] tu mettra $aResult['nom_de_champ'](id_base, ref, designation, idb_image1)
 
donc tu as juste a replacé ton while($row = mysql_fetch_row($result)){ par while($row = mysql_fetch_array($result)){ et de remplacer [0] par ['id_base'] etc...


petite mise au point :
 
mysql_fetch_row($result) <=> mysql_fetch_array($result, MYSQL_NUM)
-> le résultat est un tableau à indices numériques
 
et
 
mysql_fetch_assoc($result) <=> mysql_fetch_array($result, MYSQL_ASSOC)
-> le résultat est un tableau associatif
 
et
 
mysql_fetch_array($result) <=> mysql_fetch_array($result, MYSQL_BOTH)
-> le résultat est un tableau associatif ET un à indices numériques, les résultats se retrouvent 2 fois dans le tableau retourné, cette solution est donc à déconseiller. Selon les besions du moment il faut donc choisir entre mysql_fetch_row() et mysql_fetch_assoc() en évitant mysql_fetch_array() à moins de préciser le second argument...


---------------
Manipulateur de string
n°14283
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 23-07-2005 à 14:25:01  
 

C'est bon à savoir, merci Zebra3 :jap:

n°14284
Zebra3
Very nice !
Profil : Super Administrateur
Posté le 23-07-2005 à 17:09:04  
 

ollone a écrit :

C'est bon à savoir, merci Zebra3 :jap:


j'admets, à ma plus grande honte, que je n'ai réalisé ceci que récemment :sweat:  
 
et pourtant RTFM c'est marqué dedans :o
 
y'a un bench posté dans les comments sur mysql_fetch_array() qui est assez éloquent à ce sujet :
http://fr2.php.net/manual/en/funct [...] .php#22361
...


---------------
Manipulateur de string
n°14300
snarky
Profil : Membre
Posté le 25-07-2005 à 21:03:35  
 

Zebra3 a écrit :

j'admets, à ma plus grande honte, que je n'ai réalisé ceci que récemment :sweat:  
 
et pourtant RTFM c'est marqué dedans :o
 
y'a un bench posté dans les comments sur mysql_fetch_array() qui est assez éloquent à ce sujet :
http://fr2.php.net/manual/en/funct [...] .php#22361
...


 
sympa le link
j'avais deja entendu parler de cette différence d'exécution, mais bon vu que y'avais pas de bench associé je pensé que c'était pas tres important, et puis avec les habitudes voila où on en arrive :whistle:
 
merci pour l'info  :hello:  

  FORUM Rue-Montgallet.com
  Programmation
  Php - Sql

  organisation d'une liste dans une page

© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés