Afficher des résultats avec une seule requête

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher des résultats avec une seule requête

Re: Afficher des résultats avec une seule requête

par Toons43 » 28 nov. 2009, 17:14

Merci,
Je ne peux pas récupérer l'ID puisque je suis sur la même page pour chaque contenu, il n'y a pas de paramètre passé dans l'url. J'ai ma page accueil.php dans laquelle j'ai 3 div qui prennent leur contenu en base de données.
Comment je peux stocker le résultat de ma requête et puis l'utiliser comme je veux à différent endroit dans ma page.
Par exemple pour le div 1 j'ai besoin du titre et du contenu de la page ayant pour ID 1 en bdd, pour le div 2 j'ai besoin du titre et du contenu de la page ayant pour ID 2 en bdd

Re: Afficher des résultats avec une seule requête

par visualight » 28 nov. 2009, 17:03

Merci pour cette réponse,

Je ne vois pas trop comment je peux utiliser ton code. Comment est-ce que je peux faire dans ma page pour dire par exemple si ID=2 alors afficher titre correspondant à l'ID n°2 ?

Y'a t-il un moyen ?
1. Tu stocke ta variable ID dans la barre d'adresse (methode $_GET) - ex.: index.php?id=2
2. Tu vérifie si la variable id existe bien et n'est pas vide - ex.: if (isset ($_GET['id']) AND !empty($_GET['id']) { ...
3. Tu exécute le code SQL avec une clause WHERE - ex.: $reponse = mysql_query("SELECT * FROM matable WHERE id='$_GET[id]' ) or die(mysql_error());
4. Tu récupère le titre et tu l'affiche.
if (isset ($_GET['id']) AND !empty($_GET['id']) { 
$monid = $_GET['id'];

$reponse = mysql_query("SELECT * FROM matable WHERE id='$monid') or die(mysql_error());
while ($donnees = mysql_fetch_assoc($reponse))
{
  $tab_temp[$donnee["ID"]] = $donnees;
}

foreach ($tab_temp as $cle => $donnees)
{
  echo $cle;
  print_r ($donnees);
  echo '<li class="maclasse"><a class="selected" href="#bref"><h2><span class="title">'.$Page_nom.'</span><span class="soustitle">'.$Page_sous_titre.'</span></h2></a></li>';
 echo '<div id="bref" class="tabs_content">'.$Page_contenu.'</div>';
}
}

Re: Afficher des résultats avec une seule requête

par Toons43 » 28 nov. 2009, 16:53

Merci pour cette réponse,

Je ne vois pas trop comment je peux utiliser ton code. Comment est-ce que je peux faire dans ma page pour dire par exemple si ID=2 alors afficher titre correspondant à l'ID n°2 ?

Y'a t-il un moyen ?

Re: Afficher des résultats avec une seule requête

par Aureusms » 28 nov. 2009, 00:36

Un truc du genre ? Je reste flou car ton code l'est aussi :D
$reponse = mysql_query("SELECT * FROM matable ) or die(mysql_error());
while ($donnees = mysql_fetch_assoc($reponse))
{
  $tab_temp[$donnee["ID"]] = $donnees;
}

foreach ($tab_temp as $cle => $donnees)
{
  echo $cle;
  print_r ($donnees);
  echo '<li class="maclasse"><a class="selected" href="#bref"><h2><span class="title">'.$Page_nom.'</span><span class="soustitle">'.$Page_sous_titre.'</span></h2></a></li>';
  echo '<div id="bref" class="tabs_content">'.$Page_contenu.'</div>';
}

Afficher des résultats avec une seule requête

par Toons43 » 27 nov. 2009, 23:51

Bonjour à tous,

Je crée actuellement un site et j'utilise sur ma page d'accueil un div en "accordeon". Chaque contenu de chaque panneau est stocké dans ma base de donnée comme une page différente.
Actuellement pour afficher le contenu de chaque panneau j'utilise une requête différente qui ressemble à ça :

Code : Tout sélectionner

<?php mysql_connect("server", "login", "mdp"); // Connexion à MySQL mysql_select_db("base"); // Sélection de la base $reponse = mysql_query("SELECT * FROM matable WHERE ID="1"") or die(mysql_error()); $donnees = mysql_fetch_array($reponse); echo '<li class="maclasse"><a class="selected" href="#bref"><h2><span class="title">'.$Page_nom.'</span><span class="soustitle">'.$Page_sous_titre.'</span></h2></a></li>'; echo '<div id="bref" class="tabs_content">'.$Page_contenu.'</div>'; ?>
Je ne peux pas faire de boucle parce que chaque element "li" est différent.

Le probleme est que je suis obligé de créer une requête différente à chaque fois, ça marche de cette façon, mais je souhaite apprendre et coder proprement, donc y aurait-il une solution pour faire une seule requête et stocker les résultats dans un array pour selectionner ensuite uniquement ce dont j'ai besoin en fonction de l'ID que je veux.

J'espère ne pas être trop confus et j'attend vos propositions
D'avance merci