Count défectueux PHP/MYSQL
Résolu/Fermé
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
-
8 août 2008 à 04:22
medoc13 Messages postés 65 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 12 août 2008 - 9 août 2008 à 18:15
medoc13 Messages postés 65 Date d'inscription jeudi 7 août 2008 Statut Membre Dernière intervention 12 août 2008 - 9 août 2008 à 18:15
A voir également:
- Count défectueux PHP/MYSQL
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Mysql gratuit ou payant - Forum MySQL
- Mysql error 1 ✓ - Forum Réseaux sociaux
13 réponses
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
8 août 2008 à 12:34
8 août 2008 à 12:34
Salut,
tu peux essayer
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
else
{
$pageNum = 1; // by default we show first page
}
en esperant que ça t'aideras
tu peux essayer
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
else
{
$pageNum = 1; // by default we show first page
}
en esperant que ça t'aideras
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 459
8 août 2008 à 12:40
8 août 2008 à 12:40
salut et merci pour ta réponse
mais j'aimerais savoir si ma requête est bonne car pour le premier affichage j'utilise cette requete et tout va bien mais une fois l'affichage faite il ne me donne pas le choix d'aller sur la 2 ieme page avec cette requete.
parcontre si je mets :
$query = "SELECT COUNT(*) AS numrows FROM groupes";
ça apparait sur la 2 ieme page mes tout est melé et il va chercher d'autres genres aussi
Merci de ton aide
mais j'aimerais savoir si ma requête est bonne car pour le premier affichage j'utilise cette requete et tout va bien mais une fois l'affichage faite il ne me donne pas le choix d'aller sur la 2 ieme page avec cette requete.
parcontre si je mets :
$query = "SELECT COUNT(*) AS numrows FROM groupes";
ça apparait sur la 2 ieme page mes tout est melé et il va chercher d'autres genres aussi
Merci de ton aide
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
8 août 2008 à 13:04
8 août 2008 à 13:04
Re salut,
il faut que tu ajoute ALL apres le UNION :
$requete = mysql_query("SELECT id,nom,genres,origine,images_tn FROM groupes WHERE genres LIKE '%$h%'
UNION ALL SELECT id,nom,genres,origine,images_tn FROM artistes WHERE genres LIKE '%$h%' ORDER BY nom LIMIT $offset, $rowsPerPage");
il faut que tu ajoute ALL apres le UNION :
$requete = mysql_query("SELECT id,nom,genres,origine,images_tn FROM groupes WHERE genres LIKE '%$h%'
UNION ALL SELECT id,nom,genres,origine,images_tn FROM artistes WHERE genres LIKE '%$h%' ORDER BY nom LIMIT $offset, $rowsPerPage");
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 459
8 août 2008 à 13:09
8 août 2008 à 13:09
hummm attends lol
je parle de la requête pour le count :)
je parle de la requête pour le count :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
8 août 2008 à 15:37
8 août 2008 à 15:37
essaye ça
UNION ALL => si tu veux tous les resultats
UNION => si tu veux pas de doublons
$query = "(SELECT COUNT(*) FROM groupes WHERE genres LIKE '%$h%') UNION ALL (SELECT COUNT(*) FROM artistes WHERE genres LIKE '%$h%')";
$result = mysql_query($query) or die('Error, query failed');
while($row = mysql_fetch_array($result, MYSQL_ASSOC))){
foreach($row as $key => $val)
{
$nb[]=$val;
}
}
$numrows=$nb[0]+$nb[1];
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
UNION ALL => si tu veux tous les resultats
UNION => si tu veux pas de doublons
$query = "(SELECT COUNT(*) FROM groupes WHERE genres LIKE '%$h%') UNION ALL (SELECT COUNT(*) FROM artistes WHERE genres LIKE '%$h%')";
$result = mysql_query($query) or die('Error, query failed');
while($row = mysql_fetch_array($result, MYSQL_ASSOC))){
foreach($row as $key => $val)
{
$nb[]=$val;
}
}
$numrows=$nb[0]+$nb[1];
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 459
8 août 2008 à 15:56
8 août 2008 à 15:56
merci medoc13
bon la page 1 de ... s'affiche correctement puisque $h = $_POST['name'];
Pour ce qui est de la page 2 et les suivante elle ne tient pas compte du WHERE genres LIKE '%$h%' donc l'affichage me donne d'autres genre.
Comment faire pour qu'il tienne compte de la varriable $h = $_POST['name']; qui vient du haut de ma page.
Merci encore de tes réponse et de ta patience ;)
bon la page 1 de ... s'affiche correctement puisque $h = $_POST['name'];
Pour ce qui est de la page 2 et les suivante elle ne tient pas compte du WHERE genres LIKE '%$h%' donc l'affichage me donne d'autres genre.
Comment faire pour qu'il tienne compte de la varriable $h = $_POST['name']; qui vient du haut de ma page.
Merci encore de tes réponse et de ta patience ;)
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
8 août 2008 à 16:09
8 août 2008 à 16:09
il y a deux solution,
soit tu passe ta variable par session, soit avec la methode get
exemple avec get
$next = " <a href=\"$self?page=$page&genre=$genre\">[Suivante]</a> ";
et à la place de
$h = $_POST['name'];
$h = $_GET['genre'];
exemple avec session
session_start();
$_SESSION['genre']=$_POST['name'];
et dans ton script tu mets
if(isset($_POST['name'])){
$h=$_POST['name'];
}
else
{
//pour la methode get
if(isset($_GET['genre'])){
$h=$_GET['genre'];
}
//pour la methode session
if(isset($_SESSION['genre'])){
$h=$_SESSION['genre'];
}
}
j'espere que ce n'est pas trop brouillon a comprendre, et que ça t'aideras
soit tu passe ta variable par session, soit avec la methode get
exemple avec get
$next = " <a href=\"$self?page=$page&genre=$genre\">[Suivante]</a> ";
et à la place de
$h = $_POST['name'];
$h = $_GET['genre'];
exemple avec session
session_start();
$_SESSION['genre']=$_POST['name'];
et dans ton script tu mets
if(isset($_POST['name'])){
$h=$_POST['name'];
}
else
{
//pour la methode get
if(isset($_GET['genre'])){
$h=$_GET['genre'];
}
//pour la methode session
if(isset($_SESSION['genre'])){
$h=$_SESSION['genre'];
}
}
j'espere que ce n'est pas trop brouillon a comprendre, et que ça t'aideras
noctambule28
Messages postés
31900
Date d'inscription
samedi 12 mai 2007
Statut
Webmaster
Dernière intervention
13 février 2022
2 858
8 août 2008 à 19:36
8 août 2008 à 19:36
salut les gars
medoc13, si tu veux conserver une mise en forme, utilise les balises, c'est le quatrieme bouton en haut de la fenetre d'ecriture
tu mets tun texte entre
Ricky, j'ai recupérér ce qui suit et qui n'as pus etre posté sur le forum, si ça peut rendre service .
*****************************
De Ricky
merci encore
Mais j'avoue que je suis pas mal melé.
regarde je te donne mon code :
Avec tous le code que j'ai vu pour ces pages je ne vois plus rien, c'est parce que c'est assez urgent car ça prendrait le bord de la tablette pour le moment loll mais bon je ne peux pas me le permettre. Aurais-tu la gentillesse d'intègrer ton code dans le mien stp. tu serais vraiment gentil.
Merci d'avance
medoc13, si tu veux conserver une mise en forme, utilise les balises, c'est le quatrieme bouton en haut de la fenetre d'ecriture
tu mets tun texte entre
Ricky, j'ai recupérér ce qui suit et qui n'as pus etre posté sur le forum, si ça peut rendre service .
*****************************
De Ricky
merci encore
Mais j'avoue que je suis pas mal melé.
regarde je te donne mon code :
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <input type="submit" name="name" value="Blues"> <input type="submit" name="name" value="Classique"> <input type="submit" name="name" value="Country"> <input type="submit" name="name" value="Dance"> <input type="submit" name="name" value="Disco"> <input type="submit" name="name" value="Electro"> <input type="submit" name="name" value="Folk"> <input type="submit" name="name" value="Funk"> <input type="submit" name="name" value="Gospel"> <input type="submit" name="name" value="Grunge"> <input type="submit" name="name" value="Hip Hop"> <input type="submit" name="name" value="Jazz"> <input type="submit" name="name" value="Métal"> <input type="submit" name="name" value="Musique du monde"> <input type="submit" name="name" value="New Wave"> <input type="submit" name="name" value="Pop"> <input type="submit" name="name" value="Punk"> <input type="submit" name="name" value="Rap"> <input type="submit" name="name" value="Reggae"> <input type="submit" name="name" value="Rythm n'Blues"> <input type="submit" name="name" value="Rock"> <input type="submit" name="name" value="Soul"> <input type="submit" name="name" value="Techno"> </form></div> <div id="date"> <script language="JavaScript"> navvers = navigator.appVersion.substring(0,1); if (navvers > 3) navok = true; else navok = false; today = new Date; jour = today.getDay(); numero = today.getDate(); if (numero<10) numero = "0"+numero; mois = today.getMonth(); if (navok) annee = today.getFullYear(); else annee = today.getYear(); TabJour = new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"); TabMois = new Array("janvier","février","mars","avril","mai","juin","juillet","aout","septembre","octobre","novembre","dééembre"); messageDate = TabJour[jour] + " " + numero + " " + TabMois[mois] + " " + annee; </script> <script language="JavaScript"> document.write(messageDate); </script> </div> <div class="Style60" id="Layer1"><a href="index.php" class="Style60">Accueil </a><span class="Style66">|</span> <a href="mailto:zonespectacle@live.fr">Contact</a> </div> <div id="pubaxanti"> <div align="center"><span class="Style60"><a href="index.php">Accueil</a> <span class="Style66">|</span> <a href="mailto:zonespectacle@live.fr">Contact</a> <span class="Style66">|</span> <a href="search.php">Rechercher</a></span><br/> <br/> <a href="https://www.axanti.com/?idaff=3390 " target="_blank"><img src="image/468x60.jpg" alt="Axanti" width="468" height="60" border="0" /></a></div> </div> <div id="donnees"> <?php $h = $_POST['name']; // how many rows to show per page $rowsPerPage = 5; // by default we show first page $pageNum = 1; // if $_GET['page'] defined, use it as page number if(isset($_GET['page'])) { $pageNum = $_GET['page']; } // counting the offset $offset = ($pageNum - 1) * $rowsPerPage; $requete = mysql_query("SELECT id,nom,genres,origine,images_tn FROM groupes WHERE genres LIKE '%$h%' UNION SELECT id,nom,genres,origine,images_tn FROM artistes WHERE genres LIKE '%$h%' ORDER BY nom LIMIT $offset, $rowsPerPage"); while($donnees = mysql_fetch_array($requete)) { // boucle parcours des resultats $id = $donnees['id']; $nom = $donnees['nom']; $quand = $donnees['quand']; $lieu = $donnees['lieu']; $ville = $donnees['ville']; $origine = $donnees['origine']; $genres = $donnees['genres']; $images = $donnees['images']; $images_tn = $donnees['images_tn']; ?> </p> <p> <p> <p> <center> <table align="center" width="450" border="0" cellpadding="0"> <tr> <td width="52" valign="middle"><form method="post" action="genres_details.php"> <input type="image" border="0" value="Submit" src="<?php echo "$images_tn"; ?>" name="img" border="0"> <input type="hidden" name="img" value="<?php echo "$images_tn"; ?>"> </form></td> <td width="133" valign="middle" class="Style23"><?php echo "$nom"; ?></td> <td width="133" valign="middle" class="Style23"><?php echo "$genres"; ?></td> <td width="133" valign="middle" class="Style23"><?php echo "$origine"; ?></td> </tr> </table> <?php } $h = $_POST['name']; echo '<br>'; // how many rows we have in database $query = "(SELECT COUNT(*) FROM groupes WHERE genres LIKE '%$h%') UNION (SELECT COUNT(*) FROM artistes WHERE genres LIKE '%$h%')"; $result = mysql_query($query) or die('Error, query failed'); while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ foreach($row as $key => $val) { $nb[]=$val; } } $numrows=$nb[0]+$nb[1]; // how many pages we have when using paging? $maxPage = ceil($numrows/$rowsPerPage); $self = $_SERVER['PHP_SELF']; // creating 'previous' and 'next' link // plus 'first page' and 'last page' link // print 'previous' link only if we're not // on page one if ($pageNum > 1) { $page = $pageNum - 1; $prev = " <a href=\"$self?page=$page\">[Précédente]</a> "; $first = " <a href=\"$self?page=1\">[Première Page]</a> "; } else { $prev = ' [Précédente] '; // we're on page one, don't enable 'previous' link $first = ' [Première Page] '; // nor 'first page' link } // print 'next' link only if we're not // on the last page if ($pageNum < $maxPage) { $page = $pageNum + 1; $next = " <a href=\"$self?page=$page\">[Suivante]</a> "; $last = " <a href=\"$self?page=$maxPage\">[Dernière Page]</a> "; } else { $next = ' [Suivante] '; // we're on the last page, don't enable 'next' link $last = ' [Dernière Page] '; // nor 'last page' link } // print the page navigation link echo $first . $prev . " <strong>Page $pageNum de $maxPage</strong> " . $next . $last; ?>
Avec tous le code que j'ai vu pour ces pages je ne vois plus rien, c'est parce que c'est assez urgent car ça prendrait le bord de la tablette pour le moment loll mais bon je ne peux pas me le permettre. Aurais-tu la gentillesse d'intègrer ton code dans le mien stp. tu serais vraiment gentil.
Merci d'avance
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
8 août 2008 à 20:24
8 août 2008 à 20:24
<div id="donnees"> <?php //pour la version session //pour utiliser la version session décommente ces lignes et commente celle de la methode get /*session_start(); if(isset($_POST['name'])){ $h = $_POST['name']; $_SESSION['genre']=$h; }else{ if(isset($_SESSION['genre'])){ $h = $_SESSION['genre']; } }*/ //pour la version session //pour la version get if(isset($_POST['name'])){ $h = $_POST['name']; }else{ if(isset($_GET['genre'])){ $h = $_GET['genre']; } } //pour la version get // how many rows to show per page $rowsPerPage = 5; // if $_GET['page'] defined, use it as page number if(isset($_GET['page'])) { $pageNum = $_GET['page']; }else{ $pageNum =1; } // counting the offset $offset = ($pageNum - 1) * $rowsPerPage; $requete = mysql_query("SELECT id,nom,genres,origine,images_tn FROM groupes WHERE genres LIKE '%$h%' UNION SELECT id,nom,genres,origine,images_tn FROM artistes WHERE genres LIKE '%$h%' ORDER BY nom LIMIT $offset, $rowsPerPage"); while($donnees = mysql_fetch_array($requete)) { // boucle parcours des resultats $id = $donnees['id']; $nom = $donnees['nom']; $quand = $donnees['quand']; $lieu = $donnees['lieu']; $ville = $donnees['ville']; $origine = $donnees['origine']; $genres = $donnees['genres']; $images = $donnees['images']; $images_tn = $donnees['images_tn']; ?> </p> <p> <p> <p> <center> <table align="center" width="450" border="0" cellpadding="0"> <tr> <td width="52" valign="middle"><form method="post" action="genres_details.php"> <input type="image" border="0" value="Submit" src="<?php echo "$images_tn"; ?>" name="img" border="0"> <input type="hidden" name="img" value="<?php echo "$images_tn"; ?>"> </form></td> <td width="133" valign="middle" class="Style23"><?php echo "$nom"; ?></td> <td width="133" valign="middle" class="Style23"><?php echo "$genres"; ?></td> <td width="133" valign="middle" class="Style23"><?php echo "$origine"; ?></td> </tr> </table> <?php } echo '<br>'; // how many rows we have in database $query = "(SELECT COUNT(*) FROM groupes WHERE genres LIKE '%$h%') UNION (SELECT COUNT(*) FROM artistes WHERE genres LIKE '%$h%')"; $result = mysql_query($query) or die('Error, query failed'); while($row = mysql_fetch_array($result, MYSQL_ASSOC)){ foreach($row as $key => $val) { $nb[]=$val; } } $numrows=$nb[0]+$nb[1]; // how many pages we have when using paging? $maxPage = ceil($numrows/$rowsPerPage); $self = $_SERVER['PHP_SELF']; // creating 'previous' and 'next' link // plus 'first page' and 'last page' link // print 'previous' link only if we're not // on page one if ($pageNum > 1) { $page = $pageNum - 1; $prev = " <a href=\"$self?page=$page\">[Précédente]</a> ";//pour la methode en get tu ecris <a href=\"$self?page=$page&genre=$genres\">[Précédente]</a> $first = " <a href=\"$self?page=1\">[Première Page]</a> ";//pour la methode en get tu ecris <a href=\"$self?page=1&genre=$genres\">[Première Page]</a> } else { $prev = ' [Précédente] '; // we're on page one, don't enable 'previous' link $first = ' [Première Page] '; // nor 'first page' link } // print 'next' link only if we're not // on the last page if ($pageNum < $maxPage) { $page = $pageNum + 1; $next = " <a href=\"$self?page=$page\">[Suivante]</a> ";//pour la methode en get tu ecris <a href=\"$self?page=$page&genre=$genres\">[Suivante]</a> $last = " <a href=\"$self?page=$maxPage\">[Dernière Page]</a> ";//pour la methode en get tu ecris <a href=\"$self?page=$maxPage&genre=$genres\">[Dernière Page]</a> } else { $next = ' [Suivante] '; // we're on the last page, don't enable 'next' link $last = ' [Dernière Page] '; // nor 'last page' link } // print the page navigation link echo $first . $prev . " <strong>Page $pageNum de $maxPage</strong> " . $next . $last; ?> </div>
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
8 août 2008 à 20:25
8 août 2008 à 20:25
je t'es mis la portion a remplacer celle de <div id="donnees">.....</div>
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 459
8 août 2008 à 20:39
8 août 2008 à 20:39
salut medoc merci bien
mais malheureusement j'ai toujours le même résultat
en fait en arrivant sur le site je clique sur le bouton rockalors la page 1 de ... affiche des données dont le genres contient le mot rock, jusque là ça va,
si je clique sur suivante il m'amène a la page 2 de ... et et l'affichage montre encore des données dont le genres contient le mot rock mais le probleme il m'affiche aussi d'autres genres.
J'espère que je suis clair :)
mais malheureusement j'ai toujours le même résultat
en fait en arrivant sur le site je clique sur le bouton rockalors la page 1 de ... affiche des données dont le genres contient le mot rock, jusque là ça va,
si je clique sur suivante il m'amène a la page 2 de ... et et l'affichage montre encore des données dont le genres contient le mot rock mais le probleme il m'affiche aussi d'autres genres.
J'espère que je suis clair :)
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
8 août 2008 à 20:50
8 août 2008 à 20:50
est ce que tu peux me passer le fichier sql de ta base pour que je teste en local pour voir ou est le prob
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 459
8 août 2008 à 20:56
8 août 2008 à 20:56
oui biensur
tient je te laisse mon msn ça va être plus facile ericp96@hotmail.com
tient je te laisse mon msn ça va être plus facile ericp96@hotmail.com
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 459
9 août 2008 à 14:07
9 août 2008 à 14:07
Merci beaucoup medoc13
Tout fonctionne à merveille.
J'ai pris le temps de regarder le code et les tables et oui je comprends mieux le problème maintenant.
Vraiment sympa de ta part
Tout fonctionne à merveille.
J'ai pris le temps de regarder le code et les tables et oui je comprends mieux le problème maintenant.
Vraiment sympa de ta part
medoc13
Messages postés
65
Date d'inscription
jeudi 7 août 2008
Statut
Membre
Dernière intervention
12 août 2008
21
9 août 2008 à 18:15
9 août 2008 à 18:15
avec plaisir