requete calcul sql

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 : requete calcul sql

Re: requete calcul sql

par GiorgioLino » 01 févr. 2012, 00:25

@Damb34
[...]mais en essayant d'adapter, cela n'a rien donné[...]
et c'est bien là le problème car manifestement tu ne comprends pas bien ce que tu fais.

Ce que je te conseille c'est d'exécuter les requêtes déjà via l'interface dont tu te sers pour afficher les éléments de ta base de données (phpmyadmin ?)

Exécuter par exemple ta requête
SELECT tutoriel.id,titre,categorie_id, categorie.nom_categorie FROM tutoriel LEFT JOIN categorie ON tutoriel.categorie_id=categorie.id WHERE categorie.nom_categorie="After Effects"
, voir ce qu'elle retourne, et la corriger s'il faut.
Je te rappelle au paasage que je t'ai fait une suggestion plus haut, l'as-tu essayée ?

En tout cas il me semble nécessaire que tu "joues" un peu avec les requêtes avant de t'expliquer quoi que ce soit d'autre que tu risquerais de toute façon de ne pas comprendre.
Et je penses que d'autres ont déjà essayé de te le faire comprendre (je pense à xTG notamment)

Re: requete calcul sql

par Damb34 » 31 janv. 2012, 17:15

Merci beaucoup. J'ai bien lu le lien que donné xTG, mais en essayant d'adapter, cela n'a rien donné :( desesperent...
      <?php
	  
	  
	  try {

    $sql = 'SELECT tutoriel.id,titre,categorie_id, categorie.nom_categorie FROM tutoriel LEFT JOIN categorie ON tutoriel.categorie_id=categorie.id WHERE categorie.nom_categorie="After Effects"';
    $result = $bdd->query($sql);
    $columns = $result->fetch();
    $nb = $columns['categorie_nom'];
    
    echo 'Il y a '.$nb.' enregistrement(s).';

} catch(PDOException $e) {
    echo 'Erreur PDO : '.$e->getMessage();
}

	  
	  ?>

Re: requete calcul sql

par GiorgioLino » 29 janv. 2012, 23:50

Bonjour,

pourquoi le faire en plusieurs requêtes alors qu'une seule suffirait ?

Par exemple avec quelque chose de la forme
SELECT categorie.id as id, categorie.nom_categorie as categorie, count(tutoriel.id) as total
FROM tutoriel JOIN categorie ON categeorie.id = tutoriel.categorie_id
group by categorie.id

Re: requete calcul sql

par liens_geeks » 29 janv. 2012, 23:26

Pour que ça fonctionne il faudrait faire 'SELECT COUNT(*) FROM categorie WHERE nom_categorie=\'photoshop\''
Mais ce n'est absolument pas la bonne méthode. :non: :non: :non:

il faut que tu récupères l'id et que tu fasse ta requête avec :
'SELECT COUNT(*) FROM categorie WHERE id=3'

Suis le lien de XTG ;-)

Re: requete calcul sql

par xTG » 29 janv. 2012, 21:10

Re: requete calcul sql

par Damb341 » 29 janv. 2012, 20:58

Peux tu me dire s il te plait comment técrirais la requete?

Re: requete calcul sql

par liens_geeks » 29 janv. 2012, 20:44

Salut,
'SELECT COUNT(*) WHERE photoshop' => il manque le nom de ta colonne après le where

Re: requete calcul sql

par Damb34 » 29 janv. 2012, 20:29

Merci, mais j'ai du me rater dans quelque chose (apprenant le pdo et en général le php).

Voici ce que j'ai fait et cela ne marche pas. Tu dois surement voir le pourquoi :
      <?php
      $req = $bdd->prepare('SELECT * FROM tutoriel JOIN categorie ON categorie.id = tutoriel.categorie_id');
      $req->execute();
      while($data = $req->fetch(PDO::FETCH_OBJ)):
	  
	  $sql = mysql_query("SELECT COUNT(*) WHERE photoshop");
	  
	  
	  ?>
 
      
      <p>Photoshop : (<?php echo $sql?></p>)
      <p>Categorie : <?php echo $data->nom_categorie;?></p>

      
      <?php
      endwhile;
      ?>
Voici les tables :

http://img809.imageshack.us/img809/6564/categorie.png
http://img840.imageshack.us/img840/4593/tutok.jpg

Re: requete calcul sql

par xTG » 29 janv. 2012, 15:49

Tu commences par une jointure entre les tables categorie et tutoriel.
Puis en clause WHERE l'id correspondant à ce que tu veux compter (l'id du n-uplet photoshop par exemple).
Et enfin avec la fonction COUNT() dans la clause SELECT tu comptes le nombre de n-uplets renvoyés.

requete calcul sql

par Damb34 » 29 janv. 2012, 14:47

Bonjour à tous,

Désolé de solliciter une fois de plus votre aide, mais je suis bloqué pour la conception de mon site ;).

Je vous explique ce que j'essaie de faire :
J'ai des vignettes (catégories de tuto, after effects, photoshop...). En dessous il y a marqué le nom de la catégorie par exemple : Photoshop. Ce que je cherche a faire c'est un calcul dans la base de donnée afin que si j'ai 7 tutos dans la catégorie photoshop que sous la vignette il y ait écrit "Photoshop (7)".

Du coup j'ai crée 3 tables :

users : avec l'id,username,passeword...
categorie : photoshop, after effects... avec deux champs : id et nom_categorie
tutoriel : avec neuf champs : id, titre, description, video, durée,categorie_id,prix,source,membre_id.

Alors ma question, comment faire pour récupérer le nombre de tutos ayant la catégorie (exemple) photoshop, et ainsi l'afficher sur ma page?

En vous remerciant beaucoup de bien vouloir m'aider