par
c3dr1c94 » 12 mai 2009, 09:32
Bonjour,
Débutant en php j'ai faut un script pour ajouté des données via un formulaire php, avec lui j'ai fait un autre script pour affiché mes données dans un tableau, et maintenant j'en essaye un troisième qui affiche et permet de modifié les valeurs via un formulaire.
Dans le 1er script qui affiche mes infos dans un tableau, mes données sont affiché proprement pages par pages.
Dans le second qui affiche une colonne modifi, l'option modifié fonctionne très bien mais j'ai un problème de mise en page, celui ci m'affiche un tableau par données affichés
Comme cela :
Nom du Client | Ville |Date | Interv. | Modifie
Nom1 | Ville1 | Date 1 | Interv1 | Modifier
Nom du Client | Ville |Date | Interv. | Modifie
Nom2 | Ville2 | Date2 | Interv3 | Modifier
Nom du Client | Ville |Date | Interv. | Modifie
Nom3 | Ville3 | Date3 | Interv3 | Modifier
Apres pas mal de recherche et de bidouille je ne sais plus trop quoi faire donc je demande votre aide.
Merci a vous :
Voila le code qui me fait un tableau par ligne :
Code : Tout sélectionner
<?php
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.'"><<</A> ';
}
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.' - ';
}
}
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> - ";
}
}
}
$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 = ' <A HREF="'.$cible.'">>></A>';
}
else {
$lien='';
}
$barre .= $lien;
return $barre;
}
?>
<html>
<head>
<title>Liste des interventions de *****</title>
</head>
</body>
<strong>Liste des interventions de ****** :</strong><br />
<br />
<?php
// on se connecte à notre base
include 'conf.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 client';
// on exécute cette requête
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_array($resultat);
// on teste si ce nombre de vaut pas 0
if (($nb_total = $nb_total[0]) == 0) {
echo 'Aucune réponse trouvée';
}
else {
// 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 = 20;
// Préparation de la requête avec le LIMIT
$sql = 'SELECT * FROM client ORDER BY id ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "dp49" ) ;
//requête SQL:
$sql = "SELECT * FROM client ORDER BY id" ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
while( $result = mysql_fetch_object( $requete ) )
{
echo("<table bgcolor=\"#FFFFFF\">") ;
echo("<tr>") ;
echo("<td bgcolor=\"#E0D59F\"><b><u>Nom du Client</u></b></td>") ;
echo("<td bgcolor=\"#E0D59F\"><b><u>Ville</u></b></td>") ;
echo("<td bgcolor=\"#E0D59F\"><b><u>Date Interv.</u></b></td>") ;
echo("<td bgcolor=\"#E0D59F\"><b><u>Modifier</u></b></td>") ;
echo("</tr>") ;
echo("<tr>") ;
echo("<div align=\"center\"><td>".$result->nom." ".$result->prenom."</td>") ;
echo("<div align=\"center\"><td>".$result->ville."</td>") ;
echo("<div align=\"center\"><td>".$result->date."</td>") ;
echo("<div align=\"center\"><td><a href=\"pages/modification2.php?id=".$result->id."\">modifier</a></td>") ;
echo("</tr>") ;
echo("</table>") ;
}
// 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 ($resultat);
// on ferme la connexion à la base de données.
mysql_close ();
echo '</table><br />';
?>
</body>
</html>
Si vous avez des suggestion concernant le nettoyage de mon code allez y aussi je suis a votre ecoute

, j'ai modifié pas mal de tuto et donc il y a des truc etrange que je n'arrive pas a modifié comme la conexion un coup par le fichier config et l'autre en direct vie le fichier visu.php.
Encore merci
Bonjour,
Débutant en php j'ai faut un script pour ajouté des données via un formulaire php, avec lui j'ai fait un autre script pour affiché mes données dans un tableau, et maintenant j'en essaye un troisième qui affiche et permet de modifié les valeurs via un formulaire.
Dans le 1er script qui affiche mes infos dans un tableau, mes données sont affiché proprement pages par pages.
Dans le second qui affiche une colonne modifi, l'option modifié fonctionne très bien mais j'ai un problème de mise en page, celui ci m'affiche un tableau par données affichés
Comme cela :
[quote]
Nom du Client | Ville |Date | Interv. | Modifie
Nom1 | Ville1 | Date 1 | Interv1 | Modifier
Nom du Client | Ville |Date | Interv. | Modifie
Nom2 | Ville2 | Date2 | Interv3 | Modifier
Nom du Client | Ville |Date | Interv. | Modifie
Nom3 | Ville3 | Date3 | Interv3 | Modifier
[/quote]
Apres pas mal de recherche et de bidouille je ne sais plus trop quoi faire donc je demande votre aide.
Merci a vous :
Voila le code qui me fait un tableau par ligne :
[code]
<?php
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.'"><<</A> ';
}
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.' - ';
}
}
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> - ";
}
}
}
$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 = ' <A HREF="'.$cible.'">>></A>';
}
else {
$lien='';
}
$barre .= $lien;
return $barre;
}
?>
<html>
<head>
<title>Liste des interventions de *****</title>
</head>
</body>
<strong>Liste des interventions de ****** :</strong><br />
<br />
<?php
// on se connecte à notre base
include 'conf.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 client';
// on exécute cette requête
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_array($resultat);
// on teste si ce nombre de vaut pas 0
if (($nb_total = $nb_total[0]) == 0) {
echo 'Aucune réponse trouvée';
}
else {
// 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 = 20;
// Préparation de la requête avec le LIMIT
$sql = 'SELECT * FROM client ORDER BY id ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;
// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "dp49" ) ;
//requête SQL:
$sql = "SELECT * FROM client ORDER BY id" ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
while( $result = mysql_fetch_object( $requete ) )
{
echo("<table bgcolor=\"#FFFFFF\">") ;
echo("<tr>") ;
echo("<td bgcolor=\"#E0D59F\"><b><u>Nom du Client</u></b></td>") ;
echo("<td bgcolor=\"#E0D59F\"><b><u>Ville</u></b></td>") ;
echo("<td bgcolor=\"#E0D59F\"><b><u>Date Interv.</u></b></td>") ;
echo("<td bgcolor=\"#E0D59F\"><b><u>Modifier</u></b></td>") ;
echo("</tr>") ;
echo("<tr>") ;
echo("<div align=\"center\"><td>".$result->nom." ".$result->prenom."</td>") ;
echo("<div align=\"center\"><td>".$result->ville."</td>") ;
echo("<div align=\"center\"><td>".$result->date."</td>") ;
echo("<div align=\"center\"><td><a href=\"pages/modification2.php?id=".$result->id."\">modifier</a></td>") ;
echo("</tr>") ;
echo("</table>") ;
}
// 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 ($resultat);
// on ferme la connexion à la base de données.
mysql_close ();
echo '</table><br />';
?>
</body>
</html>
[/code]
Si vous avez des suggestion concernant le nettoyage de mon code allez y aussi je suis a votre ecoute :), j'ai modifié pas mal de tuto et donc il y a des truc etrange que je n'arrive pas a modifié comme la conexion un coup par le fichier config et l'autre en direct vie le fichier visu.php.
Encore merci