tine444

  • Nombre de sujets
    12
  • Nombre de messages
    48
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

tine444
le 28/02/2005 à 16:26
Ma barre de navigation
Trouvé

donc mon code est ici


http://www.lephpfacile.com/wall/wall.php?id=2052


merci
tine444
le 28/02/2005 à 16:07
Ma barre de navigation
Oui tu as raison

Donc pour la fonction
//----------------------------
// BARRE DE NAVIGATION
//----------------------------

function barre_navigation ($nb_total,
$nb_affichage_par_page,
$debut,
$nb_liens_dans_la_barre) {

$barre = '';

// on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT
if ($_SERVER['QUERY_STRING'] == "") {
$query = $_SERVER['PHP_SELF'].'?debut=';
}
else {
$tableau = explode ("debut=", $_SERVER['QUERY_STRING']);
$nb_element = count ($tableau);
if ($nb_element == 1) {
$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
}
else {
if ($tableau[0] == "") {
$query = $_SERVER['PHP_SELF'].'?debut=';
}
else {
$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'debut=';
}
}
}
// on calcul le numéro de la page active
$page_active = floor(($debut/$nb_affichage_par_page)+1);
// on calcul le nombre de pages total que va prendre notre affichage
$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);

// on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin)
// exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11
if ($nb_liens_dans_la_barre%2==0) {
$cpt_deb1 = $page_active - ($nb_liens_dans_la_barre/2)+1;
$cpt_fin1 = $page_active + ($nb_liens_dans_la_barre/2);
}
else {
$cpt_deb1 = $page_active - floor(($nb_liens_dans_la_barre/2));
$cpt_fin1 = $page_active + floor(($nb_liens_dans_la_barre/2));
}

if ($cpt_deb1 <= 1) {
$cpt_deb = 1;
$cpt_fin = $nb_liens_dans_la_barre;
}
elseif ($cpt_deb1>1 && $cpt_fin1<$nb_pages_total) {
$cpt_deb = $cpt_deb1;
$cpt_fin = $cpt_fin1;
}
else {
$cpt_deb = ($nb_pages_total-$nb_liens_dans_la_barre)+1;
$cpt_fin = $nb_pages_total;
}

if ($nb_pages_total <= $nb_liens_dans_la_barre) {
$cpt_deb=1;
$cpt_fin=$nb_pages_total;
}

// si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
if ($cpt_deb != 1) {
$cible = $query.(0);
$lien = '<A HREF="'.$cible.'">&lt;&lt;</A>&nbsp;&nbsp;';
}
else {
$lien='';
}
$barre .= $lien;

// on affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) {
if ($cpt == $page_active) {
if ($cpt == $nb_pages_total) {
$barre .= $cpt;
}
else {
$barre .= $cpt.'&nbsp;-&nbsp;';
}
}
else {
if ($cpt == $cpt_fin) {
$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A>";
}
else {

$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A>&nbsp;-&nbsp;";
}
}
}

$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
if (($nb_total % $nb_affichage_par_page) == 0) {
$fin = $fin - $nb_affichage_par_page;
}

// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
if ($cpt_fin != $nb_pages_total) {
$cible = $query.$fin;
$lien = '&nbsp;&nbsp;<A HREF="'.$cible.'">&gt;&gt;</A>';
}
else {
$lien='';
}
$barre .= $lien;

return $barre;
}
?>

et dans ma page j'ai

//----------------------------------
// NAVIGATION
//----------------------------------
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Affichage des News</title>
</head>
<body>
<?php
// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
$sql = "SELECT count(*) FROM $table";

// on exécute cette requête
$resultat1 = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_array($resultat1);

// on teste si ce nombre de vaut pas 0
if (($nb_total = $nb_total[0]) == 0) {
echo 'Aucune réponse trouvée';
}
else {
echo '<table><tr><td><td></td></tr>';
// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$nb_affichage_par_page = 1;

// Préparation de la requête avec le LIMIT
$sql = "SELECT TYPEEVT FROM $table ORDER BY TYPEEVT ASC LIMIT ".$_GET['debut'].','.$nb_affichage_par_page;

// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {
// on affiches les résultats dans la <table>
echo '<tr><td><td>' , stripslashes(htmlentities(trim($data['TYPEEVT']))) , '</td></tr>';
}
echo '</table>';

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);

// on affiche enfin notre barre
echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 3).'</span>';
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($resultat1);

Merci à vous tous

Tine
tine444
le 28/02/2005 à 15:57
Ma barre de navigation
Bonjour

j'essaie de mettre en place une barre de navigation selon l'aide d'ici : http://www.lephpfacile.com/howto/index.php?p=6

Seulement j'ai un souci et je n'arrive pas à y remédier.

Tout d'abord j'ai un élément qui s'affiche au dessus de la barre (un élément de ma base)
et de plus, lorsque je clique par exemple sur la page 2, et bien j'accède à la page 2 mais toujours avec les éléments de ma page 1.

Pouvez vous m'aider ?

Merci

Tine
tine444
le 24/02/2005 à 15:22
navigation
C'est quoi le BB code stp ?
tine444
le 24/02/2005 à 13:02
navigation
en fait $nnp est défini dans une autre page que j'appelle.
tine444
le 24/02/2005 à 12:13
navigation
Bonjour à toutes et à tous

J'ai un souci de navigation en bas de ma page
Quelque chose de tout simple
Je voudrais afficher des news, et seulement 3 par page, avec une barre de navigation en bas qui me dit combien il y a de pages restantes et qui affiche une flèche de direction
bien et pour le code ,voila ce que j'ai

<?php
//---------------
$nombre = ceil($nrows/$nnp);
//------------------
if (!isset($debut)) $debut = 0;
{
if ($ffg1) {
$sql = "SELECT * from $table order by datemodification desc Limit $debut,$nnp";
$resultat = mysql_db_query($base, $sql, $ffg1) or die ('Erreur SQL'.$sql.''.mysql_error());
$num = mysql_num_rows($resultat);
//etc............
//---------------------
$nnp = 3; // nombre de news à afficher par page |
//---------------------
if ($debut > 0) {
echo "<a href=?";
echo "debut=".($debut - $nnp)."><font face=verdana size=1><img src=".$navimageleft." border=\"0\" align=\"absmiddle\" alt=\"".translate("Next News")."\"></font></a> ";
}

if ($nombre > 1) {

for($i = 1; $i <= $nombre; $i++) {
echo "<a href=?";
echo "debut=".(($i-1)*$nnp)."> ".$i." </a>";
}

}

if ( ($debut + $nnp) < $nrows) {
echo "<a href=?";
echo "debut=".($debut + $nnp)."> <font face=verdana size=1><img src=".$navimageright." border=\"0\" align=\"absmiddle\" alt=\"".translate("Previous News")."\"></font></a>";
}
//-----------------------
?>


et voila , pouvez vous m'aider ?
il semble que lorque je clique sur page 2 ou 3 ou sur la flèche je retourne sur les pages précédentes, comme il n'y en a pas, je tombe sur l'index des dossiers, enfin je pense que c'est cela.
Merci pour votre aide

Tine

Note de zebden : Pensez au BB code merci
tine444
le 14/02/2005 à 11:29
date mysql
oui tu as raison , je l'ai fait .
cela dit, ca s'aggrave ...et oui décidemment !
en fait maintenant , il n'ajoute plus rien dans la base, cela vient encore de ma requête..
mare la , je craque
tine444
le 11/02/2005 à 11:35
date mysql
coucou
et bien j'avance !! si si ;-)
il semble que j'ai une erreur de requete, et je ne vois pas pourquoi, j'ai respecté l'ordre pourtant

j'ai
if (!isset($_POST['datecreation']))$_POST['datecrea
tion']='';
if (!isset($_POST['datemodification']))$_POST['date
modification']='';

$resultat = mysql_db_query($base,"insert into $table values('".$new_id_val."',\"".$_POST['datecreatio
n']."\",\"".$_POST['datemodification']."\")",$co
nnexion)or die ("Erreur de requète");

il m'affiche erreur de requete !

merci à vous
tine444
le 11/02/2005 à 10:50
date mysql
Allo ? ya qq ? :-( suis bloquée
LoadingChargement en cours