[RESOLU] Affichage requete sql dans un tableau

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 : [RESOLU] Affichage requete sql dans un tableau

Re: Affichage requete sql dans un tableau

par LMAM » 17 déc. 2012, 12:27

Problème résolu, les attributs doivent être en majuscule car les champs sont en majuscules ... :? :D

<td>'.$row->TITRE.'</td>
<td>'.$row->EDITEUR.'</td>
<td>'.$row->MILLESIME.'</td>
<td>'.$row->NOM.'</td>
<td>'.$row->DOMAINE.'</td>

Re: Affichage requete sql dans un tableau

par xTG » 17 déc. 2012, 12:25

C'est bien bizarre ton affaire...
Pour moi ton code ne contient pas d'erreur.

Donc s'il y a souci d'affichage cela est provoqué par tes données.
As-tu regardé la source HTML générée pour voir si tu y voyais quelque chose pouvant nous faire avancer ?

Re: Affichage requete sql dans un tableau

par LMAM » 17 déc. 2012, 12:20

Pour vous donner une idée voilà des copies écrans de ce que ça donne
En S1 la recherche, S2 la page "d'accueil" (avant recherche et flouté).
S1.jpg
S2.jpg

Re: Affichage requete sql dans un tableau

par LMAM » 17 déc. 2012, 11:31

Je l'ai déjà fait dans phpmyadmin et direct dans le code, la requête affiche bien le bon résultat.
C'est ça qui est étrange !

Je précise ça affiche Resource id #3 mais lors d'un var_dump($row) celà m'affiche bien :

object(stdClass)#1 (8) { ["NOM"]=> string(29) "nom de l'utilisateur " ["PRENOM"]=> string(0) "prenom de l'utilisateur" ["EDITEUR"]=> string(25) "Editions machin truc" ["TITRE"]=> string(25) "bouquin" ["MILLESIME"]=> string(4) "2011" ["SERIE"]=> string(16) "serie du bouquin" ["DOMAINE"]=> string(6) "domaine du bouquin" ["ID"]=> string(1) "1" }

etc etc donc celà renvoi le bon résultat de recherche..

Re: Affichage requete sql dans un tableau

par xTG » 17 déc. 2012, 11:21

Commences par afficher ta requête et à l'exécuter directement sur le SGBD (console mysql ou bien phpmyadmin).
echo $req;
Et vérifies qu'elle te renvoie bien ce que tu lui avais demandé via le formulaire.

Re: Affichage requete sql dans un tableau

par LMAM » 17 déc. 2012, 00:25

Je précise que je débute en programmation et que j'avais rédigé un texte plus long mais qui a été refusé par le système anti spam ... :oops:

Affichage requete sql dans un tableau

par LMAM » 17 déc. 2012, 00:24

Salut à tous,
J'ai un souci d'affiche dans le tableau, la liste s'affiche entièrement à la base mais lors d'une recherche par mots clés ou par domaine via la liste déroulante les lignes s'affichent (le quadrillage du tableau) mais elles sont vides.

Code : Tout sélectionner

<?php /* Entete page */ echo'<head>'; echo'<title>Recherche - Base documentaire</title>'; echo'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; echo'<meta http-equiv="Content-Language" content="fr" />'; /* JQUERY */ echo'</head>'; echo'<body>'; /* CSS */ echo'<style> table { border:3px solid #6495ed; border-collapse:collapse; width:90%; margin:auto; } thead, tfoot { background-color:#D0E3FA; border:5px solid #6495ed; } tbody { background-color:#FFFFFF; border:1px solid #6495ed; } th { font-family:monospace; border:1px dotted #6495ed; padding:5px; background-color:#EFF6FF; //width:25%; } td { font-family:sans-serif; font-size:80%; border:1px solid #6495ed; padding:5px; text-align:center; } caption { font-family:sans-serif; } </style>'; /* Connexion à la BDD */ mysql_connect('localhost','XXXX',''); mysql_select_db('ouvrage'); mysql_query("SET NAMES 'utf8'"); /* Traitement */ echo '<a href="/Biblio/biblio.php">Liste complète</a><br>'; //On determine l'expression a rechercher if( isset( $_POST['recherche'] ) ){ $rec = htmlentities( $_POST['recherche'] ); }else{ $rec = ''; } //On determine le type de recherche if( isset( $_POST['type'] ) ){ if( $_POST['type']=='un' ){ //Un des mots $type = 1; }elseif( $_POST['type']=='tout' ){ //Tout les mots $type = 2; }else{ //L'expression exacte $type = 3; } }else{ $type = 1;//type par defaut: L'expression exacte } echo'<form action="'.$_SERVER["PHP_SELF"].'" method="post" id="formRecherche">'; echo'Expression &agrave; rechercher: <input type="text" name="recherche" value="'.$rec.'" /><br />'; echo'Type de recherche: <input type="radio" name="type" value="un"'.(($type==1)?' checked="checked"':'').' />'; echo'Un des mots <input type="radio" name="type" value="tout"'.(($type==2)?' checked="checked"':'').' />'; echo'Expression exacte (titre)<br /><input type="submit" value="Rechercher" /><br />'; echo'<select name="liste_domaine" onchange="$(\'#formRecherche\').submit();">'; $selected = (($_POST["liste_domaine"]=='voirtout')?' selected="selected"':''); echo'<option value="voirtout"'.$selected.'>--Tous les domaines--</option>'; $selected = (($_POST["liste_domaine"]=='Domaine1')?' selected="selected"':''); echo'<option value="domaine1"'.$selected.'>Domaine1</option>'; $selected = (($_POST["liste_domaine"]=='Domaine2')?' selected="selected"':''); echo'<option value="domaine2"'.$selected.'>Domaine2</option>'; $selected = (($_POST["liste_domaine"]=='Domaine3')?' selected="selected"':''); echo'<option value="domaine3"'.$selected.'>Domaine3</option>'; $selected = (($_POST["liste_domaine"]=='Domaine4')?' selected="selected"':''); echo'<option value="domaine4"'.$selected.'>Domaine4</option>'; $selected = (($_POST["liste_domaine"]=='Domaine5')?' selected="selected"':''); echo'<option value="domaine5"'.$selected.'>Domaine5</option>'; echo'</select>'; echo'<input type="submit" value="Envoyer"><br/>'; echo'</form>'; /* Traitement des résultats */ //On dertermine les informations des ouvrages if(isset($_POST["liste_domaine"])){ if($_POST["liste_domaine"]=='voirtout'){ $resultat = @mysql_query("SELECT * FROM exemple"); }else{ $resultat = @mysql_query("SELECT * FROM exemple WHERE domaine ='".mysql_real_escape_string($_POST['liste_domaine'])."' ORDER BY id ASC"); } }else{ $req= 'SELECT nom, prenom, editeur, titre, millesime, domaine, serie, ID FROM exemple'; $sCondition = ''; if( $type==1 ){ //ayant un des mots dans leurs informations $mots = explode(' ',$rec);//On separe lexpression en mots cles foreach( $mots as $mot ){ if($sCondition==''){ $sCondition.=' WHERE'; }else{ $sCondition.=' OR'; } $sCondition .= ' titre LIKE "%'.$mot.'%" OR domaine LIKE "%'.$mot.'%" OR serie LIKE "%'.$mot.'%"'; } }elseif( $type==2 ){ //ayant tout des mots dans leurs informations $mots = explode(' ',$rec);//On separe lexpression en mots cles foreach( $mots as $mot ){ if($sCondition==''){ $sCondition.=' WHERE'; }else{ $sCondition.=' AND'; } $sCondition .= ' titre LIKE "%'.$mot.'%"'; } }else{ if($sCondition==''){ $sCondition.=' WHERE'; } //ayant l'expression exacte dans leurs informations $sCondition .= ' titre LIKE "%'.$rec.'%"'; } //Les utilisateur seront ranges par domaine en ordre croissant $req .= $sCondition.' order by domaine asc'; $resultat = @mysql_query($req); } if( $resultat ){ if( mysql_num_rows($resultat)>0 ){ echo'<h2>R&eacute;sultats</h2>'; echo'<div style="text-align:center"> <table> <tr> <th>Titre</th> <th>Editeur</th> <th>Millésime</th> <th>Nom</th> <th>Domaine</th> </tr>'; //On affiche les resultats while( $row = mysql_fetch_object($resultat) ){ echo'<tr> <td>'.$row->titre.'</td> <td>'.$row->editeur.'</td> <td>'.$row->millesime.'</td> <td>'.$row->nom.'</td> <td>'.$row->domaine.'</td> </tr>'; } echo'</table> </div>'; }else{ echo'<p>Aucun résultat ne correspond à votre recherche</p>'; } }else{ echo'<p>Erreur de requête</p>'; } echo'</body> </html>'; ?>
Merci de votre aide :D