PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 28-06-2011 16:56:29

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

tri pour affichage de requete sql

Bonjour les codeurs,

Je suis supposée faire un menu avec les champs d'une table sql.
Table video => id     etat     type     titre     date     lieu     nom     description     auteur

menu => champ type
               sous menu=> champ lieu
                                     ssous menu=>les vidéos

Chaque menu est restrictif ex: sous menu lieu ne s'affiche que s'il à des vidéo dont le type est $type et le lieu $lieu.

Pour l'instant,  j'arrive a afficher des résultats mais ils ne sont pas triés.

mysql_select_db($database_dbprotect, $dbprotect);
$query_videos = "SELECT * FROM videos";
$videos = mysql_query($query_videos, $dbprotect) or die(mysql_error());
$row_videos = mysql_fetch_assoc($videos);
$totalRows_videos = mysql_num_rows($videos);

<div id="menu_section">
       <?php do { ?>
         <li><a href="#"><?php echo $row_videos['type']; ?></a>
           <ul>
             <li>
             
             <a href="#<?php echo $row_videos['lieu']; ?>" onClick="setVideoListe('<?php echo $row_videos['lieu']; ?>', '1')"><?php echo $row_videos['lieu']; ?></a>
               <ul>
                 <li><a href="#<?php echo $row_videos['lieu']; ?>" onClick="setVideoListe('<?php echo $row_videos['lieu']; ?>', '1')">1 - <?php echo $row_videos['titre']; ?><br/><span class="stitre">par <?php echo $row_videos['auteur']; ?></span></a></li>
  </ul></li></ul></li>
         <?php } while ($row_videos = mysql_fetch_assoc($videos)); ?>
</div>

qui donne :

Interviews d'avant match

    Aix
        1 - test maj
        par André Hough - Demi d'ouverture

Interviews d'après match

    Tarbes
        1 - test 5
        par Thierry Cléda - Directeur sportif

Résumés des matchs

    Paris
        1 - titre qui apparaitra sur le site
        par Thierry Cléda - Directeur sportif

Les partenaires de la Section

    Pau
        1 - appareils
        par Thierry Cléda - Directeur sportif

Interviews d'après match

    Mont de Marsan
        1 - mama à tord
        par Thierry Cléda - Directeur sportif

Comment faire pour que toutes les vidéo de type "Interviews d'après match" soient les une sous les autres ??

Tout conseils est bienvenu, merci

Hors ligne

#2 28-06-2011 17:57:46

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : tri pour affichage de requete sql

order by ?
a++

Hors ligne

#3 28-06-2011 19:05:41

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : tri pour affichage de requete sql

Saluton,
La guerre des étoiles

Quand on trie, on filtre, (WHERE ou HAVING), quand on classe on ordonne, d'où ORDER BY


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#4 28-06-2011 19:25:45

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

coucou Maljuna Kris, Pierrot,
Ca faisait longtemps smile,
merci de vos réponses,
j'ai tenté ORDER by type, mais sans plus de succès que ça neutral.

En fait, le résultat escompté serait le même que plusieurs requêtes

$query_videos = "SELECT * FROM videos";

avec pour les menus : WHERE video.type= $type
                              sous menu : WHERE video.type=$type AND video.lieu=$lieu

Je pensais qu'il existait une façon de le faire sans multiplier les requêtes.
Peut on mettre les résultat de la requête simple dans un array et trier par $type[$i] et $lieu [$i] ?

Hors ligne

#5 28-06-2011 19:44:10

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : tri pour affichage de requete sql

ORDER BY type, lieu


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 29-06-2011 10:09:39

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

Ben non, je n'obtiens pas ce que je veux, snif
Je suis supposée avoir :
menus parents : type1          type2            type3     ...
Sous menus :    lieu1            lieu1             lieu1
        ssmenus   video1          video1          video1
                        video2          video2          video2
                        video3...       video3...       video3...

Sous menus :    lieu2            lieu2             lieu2
        ssmenus   video1          video1          video1
                        video2          video2          video2
                        video3...       video3...       video3...
Sous menus :    lieu3             lieu3             lieu3
        ssmenus   video1          video1          video1
                        video2          video2          video2
                        video3...       video3...       video3...

Hors ligne

#7 29-06-2011 10:10:57

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

Hors ligne

#8 29-06-2011 10:43:15

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : tri pour affichage de requete sql

Ce n'est plus un problème de requête SQL, c'est un problème d'algorithme PHP de gestion de ruptures lors du parcours du résultat de la requête.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#9 29-06-2011 10:51:30

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

???

Hors ligne

#10 29-06-2011 11:11:28

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : tri pour affichage de requete sql

allhambra a écrit :

???

Fais-voir le code qui pose problème.
La requête soumise
Un jeu d'essai
Le résultat de la requête
Le code PHP qui exploite (parcourt) ce résultat.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#11 29-06-2011 11:57:37

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

J'ai tnté une nouvelle approche avec  une table menu.

mysql_select_db($database_dbprotect, $dbprotect);
$query_parents = "SELECT * FROM menus WHERE menus.niveau=0";
$parents = mysql_query($query_parents, $dbprotect) or die(mysql_error());
$row_parents = mysql_fetch_assoc($parents);
$totalRows_parents = mysql_num_rows($parents);

mysql_select_db($database_dbprotect, $dbprotect);
$query_enfants = "SELECT * FROM menus WHERE menus.niveau=1";
$enfants = mysql_query($query_enfants, $dbprotect) or die(mysql_error());
$row_enfants = mysql_fetch_assoc($enfants);
$totalRows_enfants = mysql_num_rows($enfants);

$typ= $row_parents['nom'];
$ou=$row_enfants['nom'];

mysql_select_db($database_dbprotect, $dbprotect);
$query_video = "SELECT * FROM videos WHERE videos.type=$typ AND videos.lieu=$ou";
$video = mysql_query($query_video, $dbprotect) or die(mysql_error());
$row_video = mysql_fetch_assoc($video);
$totalRows_video = mysql_num_rows($video);

Ce qui me donne :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'avant match AND videos.lieu=Colomiers' at line 1

je essayé diverses syntaxes (type=".$type." , type='$type' type='.$type.') sans succès
Bouh Bouh bouh

Hors ligne

#12 29-06-2011 12:09:05

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : tri pour affichage de requete sql

Je ne comprends plus rien à la démarche.
Structure de la table menus ?
A ce propos, SELECT *, je te le rappelle, n'aide pas.
Type de colonne de la colonne type ?
Si tu as des doutes sur la syntaxe d'inclusion de variables dans une chaîne de caractères utilise :


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#13 29-06-2011 12:12:25

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : tri pour affichage de requete sql

"SELECT LesNomsDeColonnesQuiVontBienMaisPasÉtoile FROM videos WHERE videos.type='$typ' AND videos.lieu='$ou'";

$typ et $ou entre simple cotes de porc wink


EDIT : Bien m'sieur, j'ai bien compris wink
a++

Hors ligne

#14 29-06-2011 13:19:18

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

Table vidéos :

id  int(11)       Non   Aucun   AUTO_INCREMENT  Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  etat  int(11)       Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  type  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  titre   varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  date  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  lieu  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  nom   varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  description   varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  auteur  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier

Table menus

  id  int(11)       Non   Aucun   AUTO_INCREMENT  Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  nom   varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  niveau  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
  etat  varchar(255)  latin1_swedish_ci     Non   Aucun     Affiche les valeurs distinctes  Modifier  Supprimer   Primaire  Unique  Index   Texte entier
$query_video = "SELECT id,type,titre,auteur FROM videos WHERE videos.type='$typ' AND videos.lieu='$ou'";

me donne toujours

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'd'avant match AND videos.lieu=Colomiers' at line 1

Je  ne comprends plus rien.

Hors ligne

#15 29-06-2011 13:26:30

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
$num=0;


mysql_select_db($database_dbprotect, $dbprotect);
$query_parents = "SELECT * FROM menus WHERE menus.niveau=0";
$parents = mysql_query($query_parents, $dbprotect) or die(mysql_error());
$row_parents = mysql_fetch_assoc($parents);
$totalRows_parents = mysql_num_rows($parents);

mysql_select_db($database_dbprotect, $dbprotect);
$query_enfants = "SELECT * FROM menus WHERE menus.niveau=1";
$enfants = mysql_query($query_enfants, $dbprotect) or die(mysql_error());
$row_enfants = mysql_fetch_assoc($enfants);
$totalRows_enfants = mysql_num_rows($enfants);

$typ= $row_parents['nom'];
$ou=$row_enfants['nom'];


mysql_select_db($database_dbprotect, $dbprotect);
$query_video = "SELECT id,type,titre,auteur FROM videos WHERE videos.type='$typ' AND videos.lieu='$ou'";

$video = mysql_query($query_video, $dbprotect) or die(mysql_error());
$row_video = mysql_fetch_assoc($video);
$totalRows_video = mysql_num_rows($video);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Document sans titre</title>
 <link href="webtv/css/MooDropMenu.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="webtv/lib/mootools-1.2.5-core.js"></script>
  <script type="text/javascript" src="webtv/lib/MooDropMenu.js"></script>
    <script type="text/javascript" src="webtv/lib/setvideoListe.js"></script>
    <script type="text/javascript" src="webtv/lib/setvideo.js"></script>
    <style type="text/css">
    html {
      height:100%;
      background:#000 url(images/bg1.jpg) right bottom no-repeat;
      color:#FFF;
    }
    </style>
</head>

<body>
  <div id="logo"><a href="http://www.section-paloise.com" target="_blank"><img src="images/logo_vert.png" border="0" /></a></div>

<div id="menu_section">
<ul id="nav">
               <?php do { ?>
                 <li><a href="#"><?php echo $row_parents['nom']; ?></a>
                 <?php } while ($row_parents = mysql_fetch_assoc($parents)); ?>
<ul>
                 <?php do { ?>
                   <li> <a href="#<?php echo $row_enfants['nom']; ?>" onClick="setVideoListe('<?php echo $row_enfants['nom']; ?>', '<?php echo $num++; ?>')"><?php echo $row_enfants['nom']; ?></a>
                     <?php } while ($row_enfants = mysql_fetch_assoc($enfants)); ?>
                 <ul>
                    <?php if (($row_video['type']= $typ)&&($row_video['lieu']=$ou)) { ?>
                   <li>a href="#<?php echo $row_enfants['nom']; ?>" onClick="setVideoListe('<?php echo $row_enfants['nom']; ?>', '<?php echo $num++; ?>')"><?php echo $num++; ?> - <?php echo $row_video['titre']; ?><br/>
                     <span class="stitre">par <?php echo $row_lieux['auteur']; ?>
                     <?php } ?>
                 </ul>
                 </li>
</ul>
               </li>
</ul>
</div>  
</body>
</html>
<?php
mysql_free_result($parents);

mysql_free_result($enfants);

mysql_free_result($video);
?>

Hors ligne

#16 29-06-2011 13:36:27

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : tri pour affichage de requete sql


$type=addslaches($type)
$ou=addslaches($ou)
$query_video = "SELECT id,type,titre,auteur FROM videos WHERE videos.type='$typ' AND videos.lieu='$ou'";
 

et le problème est reglé. wink

a++

Hors ligne

#17 29-06-2011 15:20:57

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

Pierrot a écrit :

$type=addslaches($type)
$ou=addslaches($ou)
$query_video = "SELECT id,type,titre,auteur FROM videos WHERE videos.type='$typ' AND videos.lieu='$ou'";
 

et le problème est reglé. wink

a++

toujours pas

$parent=$row_parents['nom'];
$enfant=$row_enfants['nom'];
  $typ=addslaches($parent);
    $ou=addslaches($enfant);
Call to undefined function addslaches()

Hors ligne

#18 29-06-2011 15:52:47

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : tri pour affichage de requete sql

franchement alambra !!! roll
tu aurais pu trouver tout seul roll

addslashes

a++

Hors ligne

#19 29-06-2011 16:18:47

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

Mais quelle quiche !
Je n'en peux plus de ce code, je suis dessus depuis 3 jours et du coup, j'ai le cerveau en bouillie.
Un grand merci Pierrot.
Bonne soirée.

Hors ligne

#20 29-06-2011 17:19:26

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : tri pour affichage de requete sql

Moralité, si les tables étaient en formes normales avec des tables type et lieu dont les identifiants étaient des clés étrangères dans la table videos on n'en serait pas là.
En outre, mettre les items d'un menu dans une table pour reconstruire un menu, qui est souvent la partie la plus invariante, dynamiquement, c'est du grand n'importe quoi contre-productif.
Enfin, moi je dis ça, je ne dis rien, si ça vous amuse de surcharger les serveurs  avec des requêtes inutiles et des données redondantes, libre à vous.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#21 29-06-2011 20:05:19

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : tri pour affichage de requete sql

Bonsoir,

Juste un petit mot vite fait, car j'ai encore du taf..
L'avantage quand même de mettre les éléments d'un menu et des fonctionnalités respectives des menus (ou sous menus) dans une table, car il y en a et sont pas des moindres, sont les suivants (liste non exhaustive) :
- Modification du contenu des titres menus, de leur quantités et de leur relations, le tout sans toucher au code PHP.
- Contrôle des droits d'accès utilisateur et/ou groupe d'utilisateurs en lecture/modification/suppression/ajout des fonctionnalités des menus, et gestion de tout ceci, sans toucher au code PHP
- etc...

++

EDIT: Certes mes propos sont valables dans un contexte applicatif, et les propos de MK sont pour les autres cas, mais bon c'etait histoire de compléter un peu, tout ça... wink

Dernière modification par Jc (29-06-2011 20:11:20)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#22 29-06-2011 22:02:52

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : tri pour affichage de requete sql

D'autant que les points évoqués peuvent tout à fait très bien se concilier avec les deux points de vue.
On met les données dans une table, à chaque modification de la table, mais seulement à ce moment-là, on régénère les menus dans un fichier include à partir de requêtes.
On garde la souplesse sans toucher au code PHP et on ne surcharge pas le serveur à chaque appel du menu (et ils sont très fréquents).


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#23 04-07-2011 17:05:30

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

Bonjour les codeurs,
J'avoue que je ne suis pas une as du code et que j'ai encore beaucoup de chose à apprendre.
Du coup, j'ai encore tout chagé :
2 tables (menus :"items parents" et videos)

<div id="menu_section">
        <ul id="nav">
       <?php
mysql_select_db($database_dbprotect, $dbprotect);

$req1="SELECT * FROM menus";
$res1=@mysql_query($req1,$dbprotect);
if(!$res1)
{
echo "Lecture du 1 impossible";
}
else
{
while($a = mysql_fetch_array($res1))
{
    $types= $a[nom];
$typ=addslashes($types);
?>
<li><a href="#"><?php echo ''.$a['nom'].'' ?></a>
<ul>
<?php
$req2="SELECT  * FROM videos WHERE type='$typ' AND etat=1 ORDER by 'lieu'";
$res2=@mysql_query($req2,$dbprotect);
$i=0;
$num=1;
if(!$res2)
{
echo "Lecture du 2 impossible";
}
else
{
while($b = mysql_fetch_array($res2))
{

?>
<li><a href="#<?php echo ''.$b['lieu'] ?>" onClick="setVideoListe('<?php echo ''.$b['lieu'].''?>', '<?php echo $i++; ?>')"><?php echo ''.$b['lieu'].'' ?></a>
  <?php // }
 
  ?>
                      <ul>
                     
                        <li><a href="#<?php echo ''.$b['lieu'].'' ?>" onClick="setVideoListe('<?php echo ''.$b['lieu'].''?>', '<?php echo $i++; ?>')"><?php echo $num++; ?> <?php echo ''.$b['titre'].'' ?><br/>
                          <span class="stitre"> par <?php echo ''.$b['auteur'].'' ?></span></a></li>
                      </ul>    <?php } ?> </li></ul> <?php } ?>
                   
                 
                </li> <?php }
}

?>
  </ul>
</div>

Ce code fonctionne  et m'affiche bien les $types comme parents et les $lieux comme enfants. smile

Par contre si j'ai plusieurs vidéo pour un même lieu, au lieu de les grouper ( group by lieu), il affiche plusieurs fois le "lieu" enfant.
Quand je tente un "GROUP BY lieu" il ne m'en affiche plus que le premier résultat.

J'ai du rater une boucle  ou autre  sad
voir ici

Hors ligne

#24 05-07-2011 08:04:22

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : tri pour affichage de requete sql

Mon but est juste d'afficher et de gérer les ajouts dans les menus dynamiquement.
Il y à peut être une façon plus simple d'y parvenir en évitant les requêtes superflues, dans ce cas, je suis tout ouïe.

Sinon ma mise  en forme est réussie grâce à :

<div id="menu_section">
        <ul id="nav">
       <?php
mysql_select_db($database_dbprotect, $dbprotect);

$req1="SELECT * FROM menus";
$res1=@mysql_query($req1,$dbprotect);
if(!$res1)
{
echo "Lecture du 1 impossible";
}
else
{
while($a = mysql_fetch_array($res1))
{
    $types= $a[nom];
$typ=addslashes($types);
?>
<li><a href="#"><?php echo ''.$a['nom'].'' ?></a>
<ul>
<?php
$tab=array();
$req2="SELECT DISTINCT lieu FROM videos WHERE type='$typ'";
$res2=@mysql_query($req2,$dbprotect);

if(!$res2)
{
echo "Lecture du 2 impossible";
}
else
{
while($b = mysql_fetch_array($res2))
{
$i=1;
$num=1;
 $lieux= $b[lieu];
$lieu=addslashes($lieux);
?>
<li><a href="#<?php echo ''.$b['lieu'] ?>" onClick="setVideoListe('<?php echo ''.$b['lieu'].''?>', '<?php echo $i++; ?>')"><?php echo ''.$b['lieu'].'' ?></a>
<?php // foreach ($b as $lieu) { ?>
<ul>
   
    <?php $req3="SELECT * FROM videos WHERE type='$typ' AND lieu='$lieu' AND etat=1 ORDER BY lieu";
  $res3=@mysql_query($req3,$dbprotect);
  if(!$res3)
{
echo "Lecture du 3 impossible";
}
else
{
while($c = mysql_fetch_array($res3))
{

?>
                 
                   
                        <li><a href="#<?php echo ''.$b['lieu'].'' ?>" onClick="setVideoListe('<?php echo ''.$b['lieu'].''?>', '<?php echo $i++; ?>')"><?php echo $num++; ?> <?php echo ''.$c['titre'].'' ?><br/>
                          <span class="stitre"> par <?php echo ''.$c['auteur'].'' ?></span></a></li> <?php } ?>
                         
                      </ul>  <?php }?></li>  <?  } ?>   <?php } ?></ul></li> <?php } ?>
                   
                 
                 <?php } ?>
  </ul>
</div>

Dernière modification par allhambra (05-07-2011 14:13:00)

Hors ligne

Pied de page des forums