Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
Je sais le titre est bizarre mais pourtant j'aimerais savoir jusqu'ou s'arrête cette fonction LIMIT dans ma requête.
Mon problème:
Sur ma page, j'appelle des extraits depuis un BDD. Je limite le nbre à 8 par page.
Je suis en train de mettre en place un système de vote par étoiles. J'appelle cette page avec la fonction INCLUDE.
Mais plutôt que d'avoir ça:
Extrait1
noteExtrait1Extrait2
noteExtrait2Extrait3
noteExtrait3etc jusqu'à 8
J'ai ça:
Extrait1
noteExtrait1
noteExtrait2
noteExtrait3etc... les 8 notes à chaque Extrait
Pas si facile à expliquer...
Comment de pas impacter la fonction LIMIT à ma fonction INCLUDE ?
Merci.
Hors ligne
Bonjour,
Comment de pas impacter la fonction LIMIT à ma fonction INCLUDE ?
L'un n'a rien à avoir avec l'autre.
Allez dans phpMyAdmin, entrez
Pour chacune des tables concernées par votre requête, ensuite montrez nous votre requête qui génère les résultats, ensuite on sera en mesure de vous aider à résoudre votre problème.
Jc.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Voilà la structure des 2 tables:
CREATE TABLE `ratings` (
`id` int(10) NOT NULL default '0',
`total_votes` int(5) NOT NULL default '0',
`total_value` int(5) NOT NULL default '0',
`used_ips` longtext NOT NULL,
`date` timestamp(14) NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM
CREATE TABLE `citations_celebres` (
`id` int(11) NOT NULL auto_increment,
`citation` longtext,
`numcitateur` int(11) default '0',
`votes` int(5) NOT NULL default '0',
`score` int(15) NOT NULL default '0',
`twitter` int(11) default NULL,
PRIMARY KEY (`id`),
KEY `numcitateur` (`numcitateur`),
KEY `id` (`id`),
KEY `score` (`score`),
KEY `votes` (`votes`),
KEY `twitter` (`twitter`)
) TYPE=MyISAM
Pour la requête, c'est l'INCLUDE mais je ne suis pas sur que c'est bien ça que tu, heu vous voulez voir. (On tutoyait pas d'office sur les forums avant ? )
Hors ligne
Bonjour
Pour la requête, c'est l'INCLUDE mais je ne suis pas sur que c'est bien ça que tu, heu vous voulez voir. (On tutoyait pas d'office sur les forums avant ?
En effet c'est la requête SQL qui se trouve dans le fichier rating.php que l'on a besoin de voir pour vous aider.
Cordialement,
Jc.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Le voilà entier du coup:
C'est un fichier téléchargé en package qu'on trouve partout.
$result = mysql_query($sql);
$ids = array();
while ($row = mysql_fetch_assoc($result)){
$ids[] = $row['id'];
}
?>
<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<link rel="stylesheet" href="rating.css" />
<script type="text/javascript" src="rating.js"></script>
</head>
<body>
<?php
for($i=0;$i<count($ids);$i++)
{
$rating_tableName = 'ratings';
$id=$ids[$i];
$q="SELECT ratings.total_votes, ratings.total_value FROM $rating_tableName WHERE ratings.id=$id";
$r=mysql_query($q);
if(!$r) echo mysql_error();
while($row=mysql_fetch_array($r))
{
$v=$row['total_votes'];
$tv=$row['total_value'];
$rat=$tv/$v;
}
$j=$i+1;
$id=$ids[$i];
echo'<div class="product">
Rate Item '.$j.'
<div id="rating_'.$id.'" class="ratings">';
for($k=1;$k<6;$k++){
if($rat+0.5>$k)$class="star_".$k." ratings_stars ratings_vote";
else $class="star_".$k." ratings_stars ratings_blank";
echo '<div class="'.$class.'"></div>';
}
echo' <div class="total_votes"><p class="voted"> Rating: <strong>'.@number_format($rat).'</strong>/5 ('.$v. ' vote(s) cast)
</div>
</div></div>';}
?>
</body></html>
La requête $sql vient de la page principale:
Hors ligne
Bonjour,
C'est un fichier téléchargé en package qu'on trouve partout.
A la vue de ce code, je dirais que cela ne m'étonne pas, l'absence totale de qualité rejoignant le fait qu'il soit distribué partout.
Alors oui votre problème est normal puisque votre include vous donne l'ensemble des notes pour la citation en cours. Enfin d'après les requêtes que vous nous montrez.
Donc l'include n'est pas adapté à ce que vous voulez faire. Il vous faut donc supprimer cet include et passer par la requête adéquate, sauf que les tables montrées c'est du n'importe quoi.
Donc après avoir pris soin d'avoir uniformisé vos id + numcitateur en INT(10) NOT NULL pour le moins, vous pourrez utiliser cette seule requête pour faire votre affichage souhaité:
Ensuite il vous suffit de récupérer la page courante via l'url par exemple via $page=intval($_GET['page']) et d'afficher les lignes correspondantes ($a=$page*8;$a<(($page+1)*8);$a++)
en changeant de paragraphe d'affichage lorsque la valeur de t0.id change.
Bonne continuation
Dernière modification par Jc (22-09-2013 22:07:32)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Ensuite il vous suffit de récupérer la page courante via l'url par exemple via $page=intval($_GET['page']) et d'afficher les lignes correspondantes ($a=$page*8;$a<(($page+1)*8);$a++)
en changeant de paragraphe d'affichage lorsque la valeur de t0.id change.
Merci beaucoup, mais je pense que c'est un peu trop compliqué pour moi.
Hors ligne
bonjour,
Cela reste très simple.
Lorsque vous affichez x lignes à raison de 8 par page, sur la première page vous allez afficher les lignes de 1 à 8, sur la seconde de 9 à 16, sur la troisième de 17 à 24, etc.. Vous voyez donc que le nombre de lignes affichées restent un multiple de 8.
En sachant que la première ligne de votre resultset retourné par l'exécution de votre requête possède l'index 0, on a en transposant
Ensuite il est vrai qu'il y a un aspect un peu obscur dans votre fonctionnalité du à l'absence totale d'un modèle de données cohérent.
Corrigez donc moi si je me trompe, mais un auteur peut avoir 0 ou plusieurs citations et chaque citation peut être l'objet de 0 ou plusieurs votes. Par contre il semble juste de dire qu'une citation ne peut avoir qu'un seul et unique indice de popularité (vos étoiles).
Donc si cela est le cas, il est vrai qu'une petite modification au niveau de la requête que je vous ais fournie, reste nécessaire.
++
Dernière modification par Jc (23-09-2013 14:16:39)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Ensuite il est vrai qu'il y a un aspect un peu obscur dans votre fonctionnalité du à l'absence totale d'un modèle de données cohérent.
Corrigez donc moi si je me trompe, mais un auteur peut avoir 0 ou plusieurs citations et chaque citation peut être l'objet de 0 ou plusieurs votes. Par contre il semble juste de dire qu'une citation ne peut avoir qu'un seul et unique indice de popularité (vos étoiles).
Donc si cela est le cas, il est vrai qu'une petite modification au niveau de la requête que je vous ais fournie, reste nécessaire.++
Bonjour,
Oui, c'est bien ça. Je m'y colle.
Hors ligne
J'ai pu m'en sortir avec un peu de ça ici et ailleurs, merci.
Hors ligne
Pages :: 1