PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 09-04-2010 05:35:51

dan4
Membre
Inscription : 10-01-2010
Messages : 128

Rendre clicable le résultat pour afficher la catégorie

Bonjour, J'ai pensé à ça comme idée pour rendre clicable la catégorie afin d'afficher son contenu.

Je crois qu'il faut que je fasse une requête mais je ne sais pas comment je vais exploité le résultat.

---------------------------------------------
$reqq = ("SELECT nocat, COUNT(nocat) AS nombre FROM produits GROUP BY nocat ORDER BY noart ASC");
$req = mysql_query($reqq, $db);

while ($data = mysql_fetch_array($req)) {
    echo ''.$data['nocat'].''. $data['nombre'] .'';
}
?>
---------------------------------------------

résulat actuelle : ça donne un url de la catégorie et son nombre.

Une idée?

svp. merci.


Salutations smile

Hors ligne

#2 09-04-2010 09:05:39

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Rendre clicable le résultat pour afficher la catégorie

Récupérer tous les articles de la catégorie concernée ?

SELECT blablabla FROM produits WHERE `nocat`='$nocat' ORDER BY noart ASC

Si ce n'est pas cela il faudrait une meilleure explication, car je n'ai rien compris.

Hors ligne

#3 09-04-2010 14:29:17

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Rendre clicable le résultat pour afficher la catégorie

Dan4 !!

Puisque tu parlais de syntaxe correcte (cf ton autre post) , je vais te montrer justement a quel point ce peut etre différent :

Dan4 a écrit :

echo ''.$data['nocat'].''. $data['nombre'] .'';

Si tu avais un peu lu les tutos "usine à gaz" qui te sont proposés, tu saurais que la formule exacte est :


echo $data['nocat'].$data['nombre'];
 

Résultat identique certes, mais au moins, c'est pas coder comme un âne !


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#4 09-04-2010 18:17:29

dan4
Membre
Inscription : 10-01-2010
Messages : 128

Re : Rendre clicable le résultat pour afficher la catégorie

xTG a écrit :

Récupérer tous les articles de la catégorie concernée ?

SELECT blablabla FROM produits WHERE `nocat`='$nocat' ORDER BY noart ASC

Si ce n'est pas cela il faudrait une meilleure explication, car je n'ai rien compris.

Merci pour ton poste xTG

Au départ, c'était d'afficher le contenu d'un champ appelé "nocat", cela fonctionne bien. J'avais aussi besoin de savoir combien d'articile qui sont de même nom dans cette catégorie.

C'est alors que j'ai conclu à ceci :

<?php include 'produits_connect.php';?>

<?php
$reqq = ("SELECT nocat, COUNT(nocat) AS nombre FROM produits GROUP BY nocat ORDER BY noart ASC");
$req = mysql_query($reqq, $db);

while ($data = mysql_fetch_array($req)) {
 
    echo '<a href"'.$data['nocat'].'">'.$data['nocat'].'</a> : '. $data['nombre'] .'<br />';
   
}

?>

<?php mysql_close();?>

qui affiche la catégorie et son nombre à l'intérieur de cette catégorie. Que j'ai tenter de rendre en url.

Ex: chaussures : 12  (le mot chaussures est clicable mais n'est pas correct, je sais)

Ce dont, je cherche à faire, c'est de cliquer sur chaussures et cela afficherait son contenu.


Salutations smile

Hors ligne

#5 09-04-2010 18:21:13

dan4
Membre
Inscription : 10-01-2010
Messages : 128

Re : Rendre clicable le résultat pour afficher la catégorie

Alnoss a écrit :

Dan4 !!

Puisque tu parlais de syntaxe correcte (cf ton autre post) , je vais te montrer justement a quel point ce peut etre différent :

Dan4 a écrit :

echo ''.$data['nocat'].''. $data['nombre'] .'';

Si tu avais un peu lu les tutos "usine à gaz" qui te sont proposés, tu saurais que la formule exacte est :


echo $data['nocat'].$data['nombre'];
 

Résultat identique certes, mais au moins, c'est pas coder comme un âne !

Acceptez mes excuses!

Pour l'erreur : "

Je test avant d'envoyer le poste mais là, j'ai mal transcrit en plus de na pas avoir testé.


Salutations smile

Hors ligne

#6 09-04-2010 18:49:30

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Rendre clicable le résultat pour afficher la catégorie

Bah c'est le même fonctionnement que pour ton module de page.
Tu mets dans l'url un signe distinctif qui permet de charger la page contenant la requête et l'affichage que tu souhaites.

Hors ligne

#7 10-04-2010 09:16:56

dan4
Membre
Inscription : 10-01-2010
Messages : 128

Re : Rendre clicable le résultat pour afficher la catégorie

xTG a écrit :

Bah c'est le même fonctionnement que pour ton module de page.
Tu mets dans l'url un signe distinctif qui permet de charger la page contenant la requête et l'affichage que tu souhaites.

Salut xTG, j'ai réussi ce que je voulais faire; voici le code :

<?php include 'produits_connect.php';?>

<?php

function chk(&$var) {
if (!isset($var))
return NULL;
else
return $var;
}

chk($_GET['nocat']);


    $reqq = ("SELECT nocat, COUNT(nocat) AS nombre FROM produits GROUP BY nocat ORDER BY noart ASC");
    $req = mysql_query($reqq, $db);
    while ($data = mysql_fetch_array($req))
    {
    echo '<a href="' . $_SERVER['PHP_SELF'] . '?nocat=' . $data['nocat'] .'">'.$data['nocat'].'</a> : '. $data['nombre'] .'<br />';
    }

    $reqq1 = ("SELECT nocat AS nocat_affiche FROM produits WHERE nocat='".$_GET['nocat']."' ORDER BY noart ASC");
    $req1 = mysql_query($reqq1, $db);
    while ($data = mysql_fetch_array($req1))
    {
    echo 'Modèle : ' .$data['nocat_affiche']. '<br />';
    }
   
?>

<?php mysql_close();?>

ça affiche en premier lieu la catégorie clicable séparée par ":" et le nombre.

Ex: catégorie : nombre

Et dans le url, ça resemble à ceci :  http://127.0.0.1/voir.php?nocat=catégorie

ça marche parfaitement.

Il me reste à regarder pour la sécurité, le fameux GROUP BY et possiblement optimiser le code. Et bien sur ajouter ce qui manque pour compléter.

Une autre chose que je dois voir, c'est la combinaison de la page principale qui va appeler voir.php?nocat=categorie alors que cette page va être ?page=1...

Je crois comprendre que ça serait ainsi :

http://..../index.php?page=1&nocat=categorie

possiblement que je devrais changer la portion de code de <a href surement. c'est une réflexion.

Merci !!


Salutations smile

Hors ligne

Pied de page des forums