|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Bonjour tout le monde,
J'ai une base de données mysql où sont enregistrées des références de livres (titre,auteur,éditeur,etc.). Pour afficher mes données à l'écran, j'ai fait un tableau, chaque colonne correspondant à un champ de la base de données. J'ai un formulaire html avec champs "titre","auteur","editeur","genre" où l'utilisateur peut entrer sa recherche soit par nom d'auteur, soit part titre, soit par éditeur, soit par genre. J'ai fait un script PHP avec les requêtes mysql pour sortir les données demandées par l'utilisateur. Or j'ai un petit souci : alors que je voudrais que toutes les données d'un même critère soient dans le même tableau, elles se mettent chacune dans des tableaux différents. Je m'explique : si par exemple l'utilisateur veut sortir tous les livres d'un même auteur, il remplit le champ "auteur". Et au lieu que tous les livres de cet auteur soient dans le même tableau, il y a un tableau par livre de cet auteur. Cela fait 2 jours que je planche là-dessus et que je triture mon code dans tous les sens, sans succès. Il n'y a pas de parse error, donc il ne s'agit pas d'une erreur de syntaxe. Mon code doit être faux, mais je ne vois pas où ; seul je n'y arrive pas . Est-ce que quelqu'un aurait la gentillesse de regarder mon code php et me dire quelles corrections je dois apporter ? Voici mon code : Code :
Je vous remercie d'avance pour l'aide apportée. |
||
|
|
00
|
|
|
#2 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 16 ![]() |
Si j'ai bien compris tu veux un tableau par auteur avec une ligne par livre ?
Il suffit d'afficher le début du tableau html (avec le nom de l'auteur) avant de parcourir les livres (avec le while). Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() |
Salut,
Normal qu'il y ai un tableau par livre tu déclare ton tableau dans la boucle while, sors simplement la balise table de ta boucle et le premier <tr> avec les titres des champs
|
|
00
|
|
|
#4 | |||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Citation:
Je mets l'intégralité de mon code cette fois : Code :
D'avance un grand merci. |
|||
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 16 ![]() |
Je ne sais pas si c'est ça mais sache que isset vérifie si la variable existe, pas si elle est remplie donc avec la condition est exécutée même si la variable genre est vide.
La requête est alors exécutée et va te retourner tous les livres sans genre. Pour éviter cela tu peux en plus tester la variable avec empty pour vérifier qu'elle n'est pas vide : Code :
if(isset($_POST['genre']) && !empty($_POST['genre'])) |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Merci encore ninog. Tu m'aides vraiment beaucoup et ça me permet de décoincer mon travail. C'est pas facile de débuter dans un langage. C'est ma première application web (mon baptême du web !). C'est pourquoi je nage un peu dans la semoule.
Si je peux me permettre de te demander encore quelquechose ? Dans mon formulaire html j'ai des boutons radio pour que l'utilisateur puisse cocher le genre de son livre. Mais au cas où le genre ne serait pas dans la liste, il y a un champ de saisie "text" qui s'appelle "autre_genre" dans lequel l'utilisateur peut entrer le genre de son livre. Mon script php actuel renvoie les genres entrés par les boutons radios, mais pas ceux entrés par le champ de saisie "autre_genre". Pourtant j'ai rajouté une partie "if(isset($_POST['autre_genre'])" à la suite du "if(isset($_POST['genre'])". J'avais essayé aussi de faire "(if(isset($_POST['genre']) || ($_POST['autre_genre'])))", mais ça ne marche pas, ça ne retourne jamais les genres entrés par le champ de saisie. Voici le code que j'ai fait (et qui doit être faux...) : Code :
|
||
|
|
00
|
|
|
#7 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 16 ![]() |
Le problème c'est que ta condition pour autre_genre est dans le
Code :
if(isset($_POST['genre']) && !empty($_POST['genre'])) Il serait plus logique de faire ceci : Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
J'ai essayé de modifier mon code mais ça ne fonctionne pas plus. En fait je ne sais pas trop où placer le "elseif". Voilà ce que j'ai fait :
Code :
Merci de m'aider. |
||
|
|
00
|
|
|
#9 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 16 ![]() |
Avec ton code lorsqu'un genre est sélectionné tu fais la requête mais tu n'exploites pas le résultat qui est affiché uniquement si la condition autre_genre est vérifiée.
Tu dois utiliser les conditions pour différencier les requêtes mais après le traitement est le même. La meilleure solution est de stocker dans une variable le genre retenu selon les conditions : Code :
|
||
|
|
00
|
|
|
#10 |
![]() ![]() |
Bonjour,
à voir : Affichage de données dans un tableau HTML dont les sections : - IV. Affichage "en ligne" avec Base de Données - VI. Affichage "en colonne" avec Base de Données
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 13 ![]() |
Ben écoute ninog j'ai essayé ton code (copié/collé), mais ça ne marche pas plus. Ça me renvoie les genres, mais toujours pas les autres genres.
|
|
|
00
|
|
|
#12 |
|
Futur Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 16 ![]() |
C'est soit l'un soit l'autre non ? S'il y a un genre ça affiche les livre de ce genre sinon s'il y a un autre genre ça affiche les livres de cet autre genre.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com