page par page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : page par page

par patricedup » 10 avr. 2006, 12:07

:D ça marche avec ton tuto cyrano, mais maintenant j'ai besoin de rajouter 2 choses:

1/ une clause where dans le comptage des resultats
$sql_nb = "SELECT COUNT(id_article) FROM $table"; 
j'ai testé:
$sql_nb = "SELECT COUNT(id_article) FROM $table WHERE marque=marque1 AND util=util2"; 
mais bon ça doit pas être la bonne syntax ?

2/ mon resulat se trouve dans une balise form avec des case à cocher qui me renvois vers une page de résultat qui compte le nombre de case cochée j'en suis pas encore là mais je pense qu'on pert les coches de page en page ?
:roll:

par Cyrano » 09 avr. 2006, 20:56

Relis donc le tuto que j'ai mentionné plus haut : m'est avis que tu l'as juste survolé en vitesse sans voir certains détails importants et donc sans le comprendre du tout. Ce n'est pas un script à adapter que j'ai mis dans ce tuto mais une méthodologie et une logique de fonctionnement et ça, tu pourrais t'en inspirer pour adapter ton propre code.

par Invité » 09 avr. 2006, 19:44

les paramettre passe par url ex:
http://www.monsite.com/fiche.php?page=c ... tiondivers
je les met dans ma session:
<?php
session_start();
$_SESSION['id_machine'] = $_POST['id_machine'];
if (isset($_GET['marque']) && isset($_GET['util'])) {
$_SESSION['marque'] = $_GET['marque'] ;
$_SESSION['util'] = $_GET['util'] ;
?>
....
....
<?php
$nombre = 8;  

if (!$limite) $limite = 0; 
   
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page2 = $path_parts["basename"];
$page = $page2.'?page=comp' ;
echo $page ;
...
...
$select = 'SELECT count(id_article) FROM '.$table ;
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
    

$verifLimite= verifLimite($limite,$total,$nombre);

if(!$verifLimite)  {
    $limite = 0;
}

$select = 'select * FROM '.$table. ' LIMIT '.$limite.','.$nombre ;
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
?>
dans mon exemple j'ai même enlever de ma requete le WHERE je prend donc tous ce qu'il y a dans ma table.
<form id="form1" name="form1" method="post" action="fiche.php?page=resultat">
<?php
      while($row = mysql_fetch_array($result)) {
	
	$tabTitre = array('Marque','Model');
?>
//la suite du code:
<div>
<ul>
<li class="title"><a href="<? echo '../images/big/'.$row['photo']; ?> " class="tn" title="titre"><img src="<? echo '../images/'.$row['photo']; ?> " alt="" /></a></li>
<li class="title"><?php echo $tabTitre[0].': <span>'; echo($row['marque']); ?></span></li>
<li class="title"><?php echo $tabTitre[1].': <span>'; echo($row['model']); ?></span></li>
<li class="title"><span><a href="<?php echo 'fiche.php?page='.$row['fiche']; ?> ">Voir Fiche</a></span></li>
<li class="title">Selection: <label><input type="checkbox" name="id_article[]" value="<?php echo($row['id_article']); ?>" /></label></li>
</ul>
</div>

par Cyrano » 09 avr. 2006, 19:26

Comment transmets-tu les paramètres de point de départ de la requête pour la page suivante ou précédente ?

par Invité » 09 avr. 2006, 18:46

cette partie là ?
<?php
function displayNextPreviousButtons($limite,$total,$nb,$page) {
$limiteSuivante = $limite + $nb;
$limitePrecedente = $limite - $nb;
echo  '<table><tr>'."\n";
if($limite != 0) {
        echo  '<td valign="top">'."\n";
        echo  '<form action="'.$page.'" method="post">'."\n";
        echo  '<input type="submit" value="précédents">'."\n";
        echo  '<input type="hidden" value="'.$limitePrecedente.'" name="limite">'."\n";
        echo  '</form>'."\n";
        echo  '</td>'."\n";
}
if($limiteSuivante < $total) {
        echo  '<td valign="top">'."\n";
        echo  '<form action="'.$page.'" method="post">'."\n";
        echo  '<input type="submit" value="suivants">'."\n";
        echo  '<input type="hidden" value="'.$limiteSuivante.'" name="limite">'."\n";
        echo  '</form>'."\n";
        echo  '</td>'."\n";
            
}
echo  '</tr></table>'."\n";
}
?>
j'ai fait un echo dans ma page de $page et il correspond bien a mon url.

par patricedup » 09 avr. 2006, 18:41

mon pb viens peut être de ma page principal avec les includes :
<div id="contenu">
	 <?php 
if (!isset($_GET['page'])) $page= 'default'; else $page= $_GET['page']; 
 switch($page)
{
case 'resultat': include ('resultat.php');break;
case 'comp': include ('comp.php');break;
default:   include ('default.php'); 
} 
?>
</div>

par Cyrano » 09 avr. 2006, 18:39

Attentioun avec l'utilisation de PHP_SELF : les paramètres de l'url ne sont pas inclus. Pour ça, il faut faire une reconstruction dynamique de l'url en récupérant dans $_GET les paramètres et leurs valeurs respectives.

Comme je ne vois pas tout le code, j'ignore à quel endroit ça bafouille, mais cherche de ce coté là.

par p » 09 avr. 2006, 18:35

oui je l'ai vu :P , mais j'avais le même problème quant je l'ai testé.

par Cyrano » 09 avr. 2006, 18:33

Un tuto peut-être ?

page par page

par patricedup » 09 avr. 2006, 18:30

bonjour, voilà mon problème, un affichage page par page sur mon site mais voilà la 1ere page s'affiche bien, mais ensuite j'ai un problème d'url pour afficher les autres pages, je pert des parties de mon url qui est du type: http://www.monsite.com/fiche.php?page=c ... tiondivers
(les 2 variables marque et util sont stockés dans une session par la suite)
les liens que je généres sont du type:
http://www.monsite.com/fiche.php?page=comp&limit=8 par exemple
cette url me renvois sur la page par default de mon site.
cette page par default est la page default de mes pages include :roll:
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page2 = $path_parts["basename"];
$page = $page2.'?page=comp' ;
je cherche depuis cette semaine mais mes compétances en php sont quant même limité ! quelqu'un pourrait il me mettre sur la vois, merci.

:shock: