beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006
-
28 mars 2006 à 22:29
beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006
-
4 juil. 2006 à 12:52
j'ai un probleme avec le code ci dessous , je n'arrive pas a afficher un enregistrement par page , il affiche tout les enregistrement l'un en dessous de l'autre
pourriez vous m'aidez? c'est super important
$resultat = mysql_query("SELECT * from personnes where per_statut='0'");
$nbnews=mysql_numrows($resultat);
while($personnes = mysql_fetch_object($resultat))
{
echo "<center> il y a $nbnews";
$moy= ceil($nbnews/$nbpage);
echo "
et il y aura $moy page
";
if ($moy>=1)
{
//on vérifie l'éxistence de la variable page avant les vérifications
if (isset($_GET['pk']))
{
//si $_GET['pk'] = 1 alors on est a la première page et donc pas besoins
//de lien vers la précédente qui n'éxiste pas
if ($_GET['pk']==1){echo "Precedent ";}
//sinon on met le lien en ajoutant +1 page a la page courante
else
{
echo "Precedent ";
}
}
else{echo "Precedent ";}
}
for ($i=0;$i<$moy;$i++)
{
// on ajoute 1 a $i pour afficher 1-2-3-... au lieu de 0-1-2-3-...
echo " Page ".($i+1)." ";
}
if ($moy>=1)
{
//on vérifie l'éxistence de la variable page avant les vérifications
if (isset($_GET['pk']))
{
//si $_GET['pk'] = $moy alors on est a la dernière page et donc pas besoins
//de lien vers la suivante qui n'éxiste pas
if ($_GET['pk']==$moy){echo " Suivant";}
//sinon on met le lien en ajoutant +1 page a la page courante
else
{
echo " Suivant";
}
}
else{echo "Suivant";}
}
//*********** fin de la partie concernant le "bouton" Suivant ***********\\
huberdine
Messages postés158Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention17 juin 2010 29 mars 2006 à 10:10
Ton problème vient de là :
$resultat = mysql_query("SELECT * from personnes where per_statut='0'");
$nbnews=mysql_numrows($resultat);
while($personnes = mysql_fetch_object($resultat))
{
...
}
Ce morceau de code fait une boucle sur tous les enregistrements.
Si tu ne veux qu'un seul enregistrement par page, tu peux faire :
$resultat = mysql_query("SELECT * from personnes where per_statut='0' LIMIT 1, $_GET[pk]");
$nbnews=mysql_numrows($resultat);
$personnes = mysql_fetch_object($resultat);
...
ta varaible $_GET[pk] dont tu te sers pour passer d'une page à l'autre sert ici dans la requête à dire quelle ligne il faut aller chercher dans la base de données ($_GET[pk] doit commencer à 0 pour le 1er enregistrement).
Dans la mesure ou tu ne veux qu'un seul enregistrement par page, il est inutile de faire une boucle !
beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006 29 mars 2006 à 20:26
merci pour ta reponse j'ai fais ce que tu m'as dis et il affiche un enregistrement par page mais seulement mnt il ne veut plus passe d'une page a l'autre , les bouton suivant et precedent sont inactif pk?tu saurais encore m'aider merci d'avance tu es super sympa
mysql_connect("localhost","root","");
mysql_select_db("videobeur");
$nbpage = 1;
$resultat = mysql_query("SELECT * from personnes where per_statut='0' LIMIT 1 ,$_GET[pk]");
echo "<center> il y a $nbnews";
$moy= ceil($nbnews/$nbpage);
echo "
et il y aura $moy page
";
if ($moy>=1)
{
//on vérifie l'éxistence de la variable page avant les vérifications
if (isset($_GET['pk']))
{
//si $_GET['pk'] = 1 alors on est a la première page et donc pas besoins
//de lien vers la précédente qui n'éxiste pas
if ($_GET['pk']==1){echo "Precedent ";}
//sinon on met le lien en ajoutant +1 page a la page courante
else
{
echo "Precedent ";
}
}
else{echo "Precedent ";}
}
for ($i=0;$i<$moy;$i++)
{
// on ajoute 1 a $i pour afficher 1-2-3-... au lieu de 0-1-2-3-...
echo " Page ".($i+1)." ";
}
if ($moy>=1)
{
//on vérifie l'éxistence de la variable page avant les vérifications
if (isset($_GET['pk']))
{
//si $_GET['pk'] = $moy alors on est a la dernière page et donc pas besoins
//de lien vers la suivante qui n'éxiste pas
if ($_GET['pk']==$moy){echo " Suivant";}
//sinon on met le lien en ajoutant +1 page a la page courante
else
{
echo " Suivant";
}
}
else{echo "Suivant";}
}
//*********** fin de la partie concernant le "bouton" Suivant ***********\\
huberdine
Messages postés158Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention17 juin 2010 30 mars 2006 à 10:47
Voilà un morceau de script qui pourra t'aider
<?
// Pour savoir quelle page afficher
if($_GET[page])
{
$page=$_GET[page];
}
else
{
// Dans le cas ou aucune page n'a été affichée, on affiche la première
$page=1;
}
// Nombre de résultats par page
$nb_resultats=1;
mysql_connect("localhost","root","");
mysql_select_db("videobeur");
// On compte le nombre d'éléments dans la base de données
$requete=" SELECT COUNT(*) ";
$requete .= "FROM personnes ";
$resultat=mysql_query($requete);
$nb_entrees=mysql_fetch_array($resultat);
// En fonction du nombre d'éléments dans la BDD et le nombre de résultats à afficher par page, on calclue le nombre de pages
$nb_pages=ceil(($nb_entrees[0] / $nb_resultats));
// La page courante ne peut pas être suppérieure au nombre de pages total
if( $page > $nb_pages )
{
$page=1;
}
// Liens pour naviger dans les pages
if($page > 1)
{
?>[?page=<?=$page-1?> <]<?
}
?> Page <?=$page?> / <?=$nb_pages?> <?
if($page < $nb_pages)
{
?>[?page=<?=$page+1?> >]<?
}
// Sélection des éléments pour la page courante
$requete="SELECT * from personnes where per_statut='0' ";
$requete.=" LIMIT ".(($page-1)*$nb_resultats).", ".$nb_resultats." ";
$resultat = mysql_query($requete);
$personnes = mysql_fetch_object($resultat);
// Ici tu peux rajoutter l'affichage de tes éléments
beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006 5 avril 2006 à 11:07
merci bcp , ca fonctionne mnt
j'ai un autre probleme mais je sais pas si tu vas savoir m'aider , je n'arrive pas a enregister dans ma base de données(filmographie) plusieurs interpretes pour un film saurais tu m'aider je ne vois pas du tout comment faire merci d'avance
et encore merci pour l'autre code
j'arrive a enregistrer un interpretes par film mais c'est tout
CREATE TABLE FILMS (
pk_film INTEGER NOT NULL,
fil_num VARCHAR(40),
fil_titre VARCHAR(40),
fil_issn INTEGER,
fil_statut CHAR(2),
pk_recompense INTEGER NOT NULL,
pk_genre INTEGER NOT NULL,
PRIMARY KEY (pk_film)
);
beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006 6 avril 2006 à 16:53
//Dans le code qui suit je selectionne dans un enregistrement de la table films et un enregsitrement de interpretes et j'envoie le tout dans la tabele filmographie mais je sais pas comment faire pour pouvoir inserer plusieurs enregsitrement (interpretes ) pour un meme film
film
nom
// ci dessous le code pour inserer dans la base de données je t'ai mis tous l'un en dessous de l'autre
beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006 24 avril 2006 à 18:53
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> salut dis j'aimerais savoir si tu sais m'aider pour un autre truc sur la pagination</v:shapetype>
<v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">avec le code que tu m'as donne j'arrive parfaitement a afiiche sur une page mais tu ne sais pas cmt on peut faire pour afficher en fonction de la lettre cad </v:shapetype>
<v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">j'aimerais avoir sur la page que j'affiche juste au dessus des boutons suivant et precedent toutes les lettres de l'alphabet </v:shapetype>
<v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">A B C D etc et que si je clic sur la lettre B il m'affiche les enregistrement qui commence par la lette B </v:shapetype>
<v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">mais je vois pas du tout comment faire saurais tu m'aider en me donnant un exemple merci d'avance</v:shapetype>
<v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">// Pour savoir quelle page afficher
if($_GET[page])
{
$page=$_GET[page];
}
else
{
// Dans le cas ou aucune page n'a été affichée, on affiche la première
$page=1;
}</v:shapetype>
<v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">// Nombre de résultats par page
$nb_resultats=1;
mysql_connect("localhost","root","");
mysql_select_db("videobeur");</v:shapetype>
<v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">// On compte le nombre d'éléments dans la base de données
$requete=" SELECT COUNT(*) ";
$requete .= "FROM client ";
$resultat=mysql_query($requete);
$nb_entrees=mysql_fetch_array($resultat);</v:shapetype>
<v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">// En fonction du nombre d'éléments dans la BDD et le nombre de résultats à afficher par page, on calclue le nombre de pages
$nb_pages=ceil(($nb_entrees[0] / $nb_resultats));</v:shapetype>
<v:shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">// La page courante ne peut pas être suppérieure au nombre de pages total
if( $page > $nb_pages )
{
$page=1;
}
if($page < $nb_pages)
{
beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006 27 avril 2006 à 12:05
salut avec la boucle que tu m'as donne il donne comme resultat
abcdefghijklmnopkrstuvwxaaabacadae etc il n'y a pas moyen de de mettre juste les 25 lettres ?
// Pour savoir quelle page afficher
if($_GET[page])
{
$page=$_GET[page];
}
else
{
// Dans le cas ou aucune page n'a été affichée, on affiche la première
$page=1;
}
// Nombre de résultats par page
$nb_resultats=1;
mysql_connect("localhost","root","");
mysql_select_db("videobeur");
// On compte le nombre d'éléments dans la base de données
$requete=" SELECT COUNT(*) ";
$requete .= "FROM client ";
$resultat=mysql_query($requete);
$nb_entrees=mysql_fetch_array($resultat);
// En fonction du nombre d'éléments dans la BDD et le nombre de résultats à afficher par page, on calclue le nombre de pages
$nb_pages=ceil(($nb_entrees[0] / $nb_resultats));
// La page courante ne peut pas être suppérieure au nombre de pages total
if( $page > $nb_pages )
{
$page=1;
}
for($i='a';$i<='z';$i++)
{
echo "<center>[?page=<?=$page+1?> Suivant]<hr><?
}
beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006 27 avril 2006 à 14:41
merci ca fonctionne mais si par exemple j'ai 2 personnes dont le nom est le meme je fais commnent pour les voir et passe de l'un l'autre pcq comme j'ai fais la si je clic sur suivant il passe a l'enregistrement suivant mais pas a la personne qui a le meme nom si tu vois ce que je vx dire
huberdine
Messages postés158Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention17 juin 2010 27 avril 2006 à 14:54
Il suffit pour cela que tu tri par ordre alphabétique :
$requete="SELECT * from client where cli_statut='1'AND cli_nom LIKE '".$lettre."%' ";
$requete.="ORDER BY cli_nom ASC";
$requete.=" LIMIT ".(($page-1)*$nb_resultats).", ".$nb_resultats." ";
beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006 4 mai 2006 à 15:43
salut j'ai encore un ptit probleme dans le code qui suit j'aimerais recupere le pk et la mettre dans une variable mais je sais pas comment faire
$resultats = mysql_query("SELECT pk_client from client where cli_nom='$noms' and cli_prenom='$prenoms'");
while($pret = mysql_fetch_object($resultats))
{
echo "<center>$pret->pk_client
ca marche";
}
$noms et $prenoms viens d'un input si jamais avec le code que j'ai la j'arrive a voir le numero du pk mais cmt faire pour envoyer le resultat dans une variable
beur81
Messages postés28Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention19 juillet 2006 4 juil. 2006 à 12:52
salut j'ai encore un petit problème
dans le code qui suit je selectionne dans ma base de donnée le code postal et la localite
mais je sais pas comment faire pour si je selectionne un code postal
ex 5590 ->il me donne la possibile de choisir la localite adequat dans l'autre select et vis versa
j'espere que tu vas comprendre ce que je vx dire
donc si j'ai
pour le code postal 5590 ciney,hamois ,leignon etc
5100 jambes , namur
donc si je selectionne 5590 il faudrait qu'il ne me donne que la possibilite de choisir entre ciney,hamois,leigon
merci d'avance
<td>Code postal *</td><td><select name= "code">
<?php
mysql_connect("localhost","root","");
mysql_select_db("videobeur");
$resultat = mysql_query("SELECT * FROM localite order by localite");
while($localite = mysql_fetch_object($resultat))
{
echo "<option value=$localite->pk_localite>$localite->codepost</option>";
}
mysql_close();
?>
</select>
<td> localite * </td><td><select name ="localite">
<?php
mysql_connect("localhost","root","");
mysql_select_db("videobeur");
$resultat = mysql_query("SELECT * FROM localite order by localite");
while($localite = mysql_fetch_object($resultat))
{
echo "<option value=$localite->pk_localite>$localite->localite</option>";
}