[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

  1. 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