Page 1 sur 1

Un petit problème de syntaxe>.<

Posté : 17 nov. 2006, 17:55
par Invité
Bonjour,
Voilà mon code :
//appel de la base
require("connection.php");
//écri le resultat qui est dans la base ici les films en salle
$requete = "
SELECT *
FROM films 
GROUP BY genre_film
LIMIT 0,10";





$result = mysql_query($requete) or die (mysql_error());
$requete2 = "    (SELECT COUNT( genre_film ) AS nombre_films
FROM films
GROUP BY genre_film 
LIMIT 0,10)";
$result2 = mysql_query($requete2) or die (mysql_error());
//titre
echo "<b><center>Films par genre :</center></b></td><td style='background-image: url(http://XXX.free.fr/fond/img_fond3.GIF);'> <b><center>Prochainement :</center></b></td></tr><tr><td>";
//recupération de la table
while ($row = mysql_fetch_array($result))

 {

 echo "<a href=http://XXXX.free.fr/admin/genre_film.php?genre_film=";echo $row["genre_film"];echo ">"; 
 echo $row["genre_film"];echo "</a>";while ($row2 = mysql_fetch_array($result2))

{echo $row2["nombre_films"];
}echo "<br>";}

Mais voilà moi je veu que le nombre de films (count..) apparaisse dèrière le genre du film mais j'y arrive pas>.<
voilà je suis sur que c juste un truck tout comme à mes habitudes :cry:
Merci à tous !

Posté : 17 nov. 2006, 18:13
par Cyrano
Pourquoi deux requêtes là où une seule suffirait ? :-k

Essaye avec quelque chose comme ceci :

Code : Tout sélectionner

SELECT DISTINCT (`genre`) AS genre, COUNT( `titre` ) AS nombre_films FROM `film` GROUP BY genre LIMIT 0 , 10;
Tu obtiendras deux colonnes, une avec chaque genre et la seconde avec le nombre par genre.

Posté : 17 nov. 2006, 20:04
par Invité
Voilà ma requette modiffiée :
$requete = "
SELECT DISTINCT (`genre_film`) AS genre_film, COUNT( `genre_film` ) AS nombre_films
FROM `films`
GROUP BY genre_film
LIMIT 0 , 10;";





$result = mysql_query($requete) or die (mysql_error());

//titre
echo "<b><center>Films par genre :</center></b></td><td style='background-image: url(http://****.free.fr/fond/img_fond3.GIF);'> <b><center>Prochainement :</center></b></td></tr><tr><td>";
//recupération de la table
while ($row = mysql_fetch_array($result))

 {

 echo "<a href=http://d***e***s.free.fr/films/genre_film.php?genre_film=";echo $row["genre_film"];echo ">"; 
 echo $row["genre_film"];echo "</a>";while ($row2 = mysql_fetch_array($result2))

{echo $row["nombre_films"];
}echo "<br>";}
ça m'affiche les genres mais dessous j'ai ça!
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/136/sdb/a/e/X***X**X/films/index_genre_film.php on line 54

Posté : 17 nov. 2006, 20:27
par Cyrano
As-tu testé la requête dans phpMyAdmin par exemple pour au moins vérifier qu'elle retournait le résultat attendu ?

Posté : 24 nov. 2006, 09:31
par Invité
ça marche mais pas en php :cry:

Posté : 24 nov. 2006, 09:55
par zeus
enleve le ; à la fin de la chaine $requete ;)

Posté : 24 nov. 2006, 11:18
par Cyrano
Tu as modifié ta requête, mais tu as toujours deux boucles imbriquées, la seconde faisant référence à une requête qui n'est plus là, donc non seulement ça ne fonctionne pas, mais ça doit même générer des messages d'erreur. Proposition de correction/Nettoyage du code :
<?php
$requete = "SELECT DISTINCT (`genre_film`) AS genre_film, COUNT( `genre_film` ) AS nombre_films ".
           "FROM `films` ".
           "GROUP BY genre_film ".
           "LIMIT 0 , 10;";

$result = mysql_query($requete) or die (mysql_error());
//titre
?>
      <b><center>Films par genre :</center></b>
    </td>
    <td style="background-image: url('http://d***e***s.free.fr/fond/img_fond3.GIF');"><b><center>Prochainement :</center></b></td>
  </tr>
  <tr>
    <td>
<?php
//recupération de la table
while(false != ($row = mysql_fetch_array($result)))
{
?>
<a href="http://d***e***s.free.fr/films/genre_film.php?genre_film=<?php echo($row['genre_film']); ?>"><?php echo($row['genre_film']); ?></a><?php echo($row['nombre_films']); ?><br />
<?php
}
?>

Posté : 24 nov. 2006, 23:47
par Invité
oué c bon^^ merci à tous!! :D

Posté : 24 nov. 2006, 23:48
par zeus
Modération : Puisque ta question est résolue, j'ajoute le tag [Résolu] pour indiquer aux personnes qui voudront consulter ce thread qu'il contient une solution.

Tu peux réaliser cette opération en cliquant sur le bouton [Résolu] en haut à gauche de ce thread lorsque tu as posté le 1er message en tant que membre
;).