par
sadeq » 10 nov. 2005, 17:16
Et va pour celle de pitt,
Je viens de la développer si ça vous dit, elle marche bien.
Une requête + un stckage des n° dans la session + navigation séquentielle + affichage d'une fiche par n°
<?php
session_start();
//Remplir la liste des n° clients si ce n'est pas encore fait
if (!$_SESSION["clients"] || count($_SESSION["clients"])<=0){
//$requete = @mysql_db_query("test","SELECT * FROM clients ORDER BY nom", mysql_connect("localhost","root","root"));
//if ($requete){
//$clients = array();
//while($un_client = mysql_fetch_array($requete)) {
//$clients[]["n°"] = $un_client["num_client"];
//$clients[]["actuel"] = false;
//}
//if ($clients[count($clients)-1]) $clients[$clients)-1]["actuel"] = true; //par défaut
//$_SESSION["clients"] = $clients;
//Pour le test : une base de données tableau
$_SESSION["clients"] = array (
array ("n°" => "1", "actuel" => false),
array ("n°" => "2", "actuel" => false),
array ("n°" => "3", "actuel" => true)
);
//}
}
if ($_SESSION["clients"] && count($_SESSION["clients"])>0){
//La liste des clients existe dans la session
//Afficher le suivant
$sens = isset($_GET["sens"])?$_GET["sens"]:"suivant"; //par défaut: le suivant
$num_client_à_afficher = null;
switch (strtoupper($sens)) {
case "PRECEDENT": //Afficher le precedent (avec roulement vers le dernier si dépassement du début)
foreach($_SESSION["clients"] as $index => $client){
if ($client["actuel"]==true){
//L'actuel est trouvé => Trouver le précédent
$index_precedent = ($index-1 < 0)?count($_SESSION["clients"])-1:$index-1;
$num_client_à_afficher = $_SESSION["clients"][$index_precedent]["n°"];
//Mettre à jour la session
$_SESSION["clients"][$index]["actuel"] = false;
$_SESSION["clients"][$index_precedent]["actuel"]= true;
break;
}
}
break;
default: //Afficher le suivant (avec roulement vers le premier si dépassement de la fin)
foreach($_SESSION["clients"] as $index => $client){
if ($client["actuel"]==true){
//L'actuel est trouvé => Trouver le suivant
$index_suivant = ($index+1 >= count($_SESSION["clients"]))?0:$index+1;
$num_client_à_afficher = $_SESSION["clients"][$index_suivant]["n°"];
//Mettre à jour la session
$_SESSION["clients"][$index]["actuel"] = false;
$_SESSION["clients"][$index_suivant]["actuel"]=true;
break;
}
}
}
//Afficher une fiche client
//$requete = @mysql_db_query("test","SELECT * FROM clients WHERE num_client=$num_client_à_afficher", mysql_connect("localhost","root","root"));
//if ($requete && mysql_num_rows($requete)>0){
//$un_client = mysql_fetch_array($requete) ;
//echo "N°: ".$un_client["num_client"];
//echo "Nom: ".$un_client["nom_client"];
//...
//}
//Pour le test sans base de données
echo "
Affichage du client n°$num_client_à_afficher
<form>
<input type=submit name=sens value=\"precedent\">
<input type=submit name=sens value=\"suivant\">
</form>
";
}
else echo "Aucun client!";
?>
Et va pour celle de pitt,
Je viens de la développer si ça vous dit, elle marche bien.
Une requête + un stckage des n° dans la session + navigation séquentielle + affichage d'une fiche par n°
[php]
<?php
session_start();
//Remplir la liste des n° clients si ce n'est pas encore fait
if (!$_SESSION["clients"] || count($_SESSION["clients"])<=0){
//$requete = @mysql_db_query("test","SELECT * FROM clients ORDER BY nom", mysql_connect("localhost","root","root"));
//if ($requete){
//$clients = array();
//while($un_client = mysql_fetch_array($requete)) {
//$clients[]["n°"] = $un_client["num_client"];
//$clients[]["actuel"] = false;
//}
//if ($clients[count($clients)-1]) $clients[$clients)-1]["actuel"] = true; //par défaut
//$_SESSION["clients"] = $clients;
//Pour le test : une base de données tableau
$_SESSION["clients"] = array (
array ("n°" => "1", "actuel" => false),
array ("n°" => "2", "actuel" => false),
array ("n°" => "3", "actuel" => true)
);
//}
}
if ($_SESSION["clients"] && count($_SESSION["clients"])>0){
//La liste des clients existe dans la session
//Afficher le suivant
$sens = isset($_GET["sens"])?$_GET["sens"]:"suivant"; //par défaut: le suivant
$num_client_à_afficher = null;
switch (strtoupper($sens)) {
case "PRECEDENT": //Afficher le precedent (avec roulement vers le dernier si dépassement du début)
foreach($_SESSION["clients"] as $index => $client){
if ($client["actuel"]==true){
//L'actuel est trouvé => Trouver le précédent
$index_precedent = ($index-1 < 0)?count($_SESSION["clients"])-1:$index-1;
$num_client_à_afficher = $_SESSION["clients"][$index_precedent]["n°"];
//Mettre à jour la session
$_SESSION["clients"][$index]["actuel"] = false;
$_SESSION["clients"][$index_precedent]["actuel"]= true;
break;
}
}
break;
default: //Afficher le suivant (avec roulement vers le premier si dépassement de la fin)
foreach($_SESSION["clients"] as $index => $client){
if ($client["actuel"]==true){
//L'actuel est trouvé => Trouver le suivant
$index_suivant = ($index+1 >= count($_SESSION["clients"]))?0:$index+1;
$num_client_à_afficher = $_SESSION["clients"][$index_suivant]["n°"];
//Mettre à jour la session
$_SESSION["clients"][$index]["actuel"] = false;
$_SESSION["clients"][$index_suivant]["actuel"]=true;
break;
}
}
}
//Afficher une fiche client
//$requete = @mysql_db_query("test","SELECT * FROM clients WHERE num_client=$num_client_à_afficher", mysql_connect("localhost","root","root"));
//if ($requete && mysql_num_rows($requete)>0){
//$un_client = mysql_fetch_array($requete) ;
//echo "N°: ".$un_client["num_client"];
//echo "Nom: ".$un_client["nom_client"];
//...
//}
//Pour le test sans base de données
echo "
Affichage du client n°$num_client_à_afficher
<form>
<input type=submit name=sens value=\"precedent\">
<input type=submit name=sens value=\"suivant\">
</form>
";
}
else echo "Aucun client!";
?>
[/php]