[SQL] Probleme d'affichage de requete

Tonio -  
 Tonio -
Bonjour, je vous sollicite encore, voici mon probleme:

J'aimerai (d'apres une liste deroulante reliee a ma bdd) ne selectionner que les articles correspondand a la categorie selectionnee.
Pour l'instant, que je clique sur n'importe quelle categorie, TOUT s'affiche.

1 réponse

Tonio
 
// information pour la connection à le DB
$host = 'localhost';
$user = 'XXX';
$pass = 'XXX';
$db = 'XXX';
$requete = "SELECT categorie FROM annuaire WHERE categorie LIKE '$categorie'";
$envoi = mysql_query($requete) or die(mysql_error());

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

// Debut de la partie ajout de page!!Nouvelles variables:
$nombre = 4; // on va afficher 3 résultats par page.
if (!isset($limite)) $limite = 0; // si on arrive sur la page pour la première fois
// on met limite à 0.
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['basename'];

// Compter le Nombre d'enregistrements dans la table:
$select = 'SELECT count(num) FROM annuaire ';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];

// requête SQL qui ne prend que le nombre d'enregistrements nécessaire à l'affichage.
$select = 'select titre,url,logo FROM annuaire ORDER BY titre ASC limit '.$limite.','.$nombre;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<table width="500" bgcolor="#FFFFFF" align="center">'."\n";
// première ligne on affiche les titres prénom et surnom dans 3 colonnes
echo '<tr>';
echo '<td bgcolor="#ABD598" width="150"><b><u><center>TITRE</center></u></b></td>';
echo '<td bgcolor="#ABD598" width="350"><b><u><center>Logo</center></u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 3 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CC3399" width="150"><a href="'.$row["url"].'"><center>'.$row[titre].'</center></a></td>';
echo '<td bgcolor="#CC3399" width="350"><center><img src="'.$row['logo'].'"></center></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);

// Calcul des fichiers restants apres l'affichage! Nouvelles variables
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
// Affichage du bouton suivant:
if($limite != 0) {
echo '<center><form action="'.$page.'" method="post">';
echo '<input type="submit" value="Retour">';
echo '<input type="hidden" value="'.$limiteprecedente.'" name="limite">';
echo '</form></center>';
}
//affichage d'un bouton formulaire
if($limitesuivante < $total) {
echo '<center><form action="'.$page.'" method="post">';
echo '<input type="submit" value="Suite">';
echo '<input type="hidden" value="'.$limitesuivante.'" name="limite">';
echo '</form></center>';
}
//récupération de $limite

if(isset($_GET['limite']))

$limite=$_GET['limite'];
else $limite=0;


function verifLimite($limite,$total,$nombre) {
// je verifie si limite est un nombre.
if(is_numeric($limite)) {
// si $limite est entre 0 et $total, $limite est ok
// sinon $limite n'est pas valide.
if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {
// j'assigne 1 à $valide si $limite est entre 0 et $max
$valide = 1;
}
else {
// sinon j'assigne 0 à $valide
$valide = 0;
}
}
else {
// si $limite n'est pas numérique j'assigne 0 à $valide
$valide = 0;
}
// je renvois $valide
return $valide;
}
0