Afficher 30 résultats par pages

Mammouth du PHP | 687 Messages

05 oct. 2010, 22:42

Bonjour,

J'ai ce tableau qui affiche des données contenu dans plusieurs tables de ma base de données sql...

<?php


//--------les includes des fonctions permettent le bon fonctionnement du site--------------------
include "include_fns.php";
//-----------------------------------------------------------------------------------------------

$query = "SELECT COUNT(*) FROM pefac_entreprises_coordonnees";

$result = mysql_query($query) or die (mysql_error());

$compteur = mysql_fetch_row($result);
//-----------------------------------------------------------------------------------------------
//permet de savoir si le groupe a le droit d'acces a ce fichier
$fichier = "Entreprises";
$module_autoriser = rech_enreg_modules($groupe, $fichier);

 if ($module_autoriser)
{
//------------------------------------------------------------------------------------------------

//--------------------- si la session n'enregistre pas l'administreur ----------------------------
 if (!$_SESSION["administrateur"] && !$_SESSION["groupe"]) {
   	echo "<div id=\"message\">".ACCES_PAGE_INTERDITE." !<br />";
       	echo "<a href=\"index.php\">".RETOUR."</a></div><br />";
//-----------------------------------------------------------------------------------------

//--------------------- affichage du bas de page et quitte le programme -------------------
  	include "bas.php";
  	exit();
 }
//-----------------------------------------------------------------------------------------
 else {
//-----------------------------------------------------------------------------------------
   if (isset($_GET['nom_entreprise'])) {
	$nom_entreprise = $_GET['nom_entreprise'];
	$entreprise = rech_enreg_entreprise($nom_entreprise);
	
	//supprimer la plaquette et le logo lors de la suppression de l'entreprise
	$conn = db_connect();
  	$sql = "SELECT * FROM ".ENTREPRISES_DOSSIERS." where num_client = '$entreprise[num_client]'";
  	$result = mysql_query($sql, $conn);
  	$dossier = mysql_fetch_array($result);
  	
  	//supprimer la plaquette et le logo
	@unlink($dossier[logo]);
	@unlink($dossier[plaquette_pdf]);

	//suppression des coordonnees du dossier et des contacts de l'entreprise
	$conn = db_connect();
	$sql_coord = "delete from ".ENTREPRISES_COORDONNEES." where num_client = '$entreprise[num_client]'";
	$result_coord = mysql_query($sql_coord, $conn);

	$sql_doss = "delete from ".ENTREPRISES_DOSSIERS." where num_client = '$entreprise[num_client]'";
	$result_doss = mysql_query($sql_doss, $conn);

	$sql_cont = "delete from ".ENTREPRISES_CONTACTS." where num_client = '$entreprise[num_client]'";
	$result_cont = mysql_query($sql_cont, $conn);
   }
//-----------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------
   if (isset($_GET['tri'])) {
	$tri = $_GET['tri'];
   }
   else {
	$tri = "num_saisie";
   }
//-----------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------
 if ($groupe == "1" || $groupe == "2") {
  $conn = db_connect();
  $sql = "SELECT nom_entreprise, telephone, code_postal, num_dossier, date_limite, num_saisie FROM ".ENTREPRISES_COORDONNEES.", ".ENTREPRISES_DOSSIERS." WHERE ".ENTREPRISES_COORDONNEES.".num_client = ".ENTREPRISES_DOSSIERS.".num_client order by $tri asc"; 
  $result = mysql_query($sql, $conn);
  //$num_results = mysql_num_rows($result);

 }  
 else {
//------------------ l'administrateur ne peut voir que ce qu'il a cree --------------------
  $conn = db_connect();
  $sql = "SELECT nom_entreprise, telephone, code_postal, num_dossier, date_limite, num_saisie FROM ".ENTREPRISES_COORDONNEES.", ".ENTREPRISES_DOSSIERS." WHERE ".ENTREPRISES_COORDONNEES.".num_client = ".ENTREPRISES_DOSSIERS.".num_client AND username = '$administrateur' order by $tri asc"; 
  $result = mysql_query($sql, $conn);
  //$num_results = mysql_num_rows($result);
}
//-----------------------------------------------------------------------------------------
//----------------------------- formulaire de la liste des entreprises --------------------

   	echo "<div><h1>Liste des entreprises</h1></div>";
   	echo "<div class='cadre_admin_page'>";
   	echo "<div>[   <a href='ajouter_entreprise.php'>Ajouter une nouvelle entreprise</a>   ]</div>";
	
//-----------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------
   	echo "</div>";
   	echo "<div class='cadre_admin_page'>";
   	echo "<table border='0' align='center' cellspacing='1' cellpadding='1' width='100%' class='bordure'>";
   	echo "<tr>";
	echo '<center><b>Il y a '.$compteur[0].' sociétés référencées sur le site<b></center>'.'<br>';
	
   	echo "<th class='fond' width='30%'><b>Nom de l'&eacute;tablissement</b>&nbsp;&nbsp;<a href=\"?tri=nom_entreprise\"><img src=\"$dir_image/desc.gif\" alt=\"\" title=\"trier\" border=\"0\"></a></th>
		<th class='fond' width='8%'><b>T&eacute;l&eacute;phone</b></th>
		<th class='fond' width='11%'><b>Code postal</b>&nbsp;&nbsp;<a href=\"?tri=code_postal\"><img src=\"$dir_image/desc.gif\" alt=\"\" title=\"trier\" border=\"0\"></a></th>
		<th class='fond' width='8%'><b>R&eacute;f dossier</b></th>
		<th class='fond' width='7%'><b>&Eacute;ch&eacute;ance</b></th>
		<th class='fond' width='9%'><b>N&deg; de saisie</b></th>
		
		<th class='fond' width='10%' colspan='2'>&nbsp;</th>";
   	echo "</tr>";
 
 while ($rech_ent = @mysql_fetch_array($result)) {
	echo "<tr><td class='fond'><a href =\"ajouter_entreprise.php?nom_entreprise=".addSlashes(htmlentities($rech_ent[nom_entreprise]))."\">".stripSlashes(htmlentities($rech_ent[nom_entreprise]))."</a></td>";
	echo "<td class='fond'>".stripSlashes(htmlentities($rech_ent[telephone]))."</td>";
	echo "<td class='fond'>".stripSlashes(htmlentities($rech_ent[code_postal]))."</td>";
	echo "<td class='fond'><a href =\"dossier_entreprise.php?num_dossier=$rech_ent[num_dossier]&nom_entreprise=$rech_ent[nom_entreprise]\">".stripSlashes(htmlentities($rech_ent[num_dossier]))."</a></td>";
	echo "<td class='fond'>".stripSlashes(htmlentities(date("d/m/Y", $rech_ent[date_limite])))."</td>";
	echo "<td class='fond'>".stripSlashes(htmlentities($rech_ent[num_saisie]))."</td>";
	echo "<td class='fond'><a href =\"contact_entreprise.php?nom_entreprise=".addSlashes(htmlentities($rech_ent[nom_entreprise]))."\">CONTACTER</a></td>";
	echo "<td class='fond'><a href =\"".$_SERVER['PHP_SELF']."?nom_entreprise=".addSlashes(htmlentities($rech_ent[nom_entreprise]))."\" onclick=\"return confirm('Attention, vous allez supprimer ".addSlashes(htmlentities($rech_ent[nom_entreprise]))." voulez vous continuer ?')\">SUPPRIMER</a></td></tr>";
 }
	echo "</table>";
//---------------------------------------------------------------------------------------------
	echo "</div>" ;
//--------------------- affichage du bas de page et quitte le programme -----------------------
	echo "<div class='cadre_admin_page'>";
    	echo "<center><a href='menu_admin.php'>".RETOUR."</a></center>";
	echo "</div>";
	echo "<br />";
    include "bas.php";
  }
}
//--------------------------------------------------------------------------------------------
 else
{
	echo "<div id=\"message\">".ACCES_PAGE_INTERDITE." !<br />";
       	echo "<a href=\"index.php\">".RETOUR."</a></div><br />";
//-----------------------------------------------------------------------------------------------

//---------------- affichage du bas de page et quitte le programme ------------------------------
 include "bas.php";
 exit();
}

//-----------------------------------------------------------------------------------------------
?>
Est-ce que quelqu'un sait comment je peux afficher ce tableau 50 résultats par 50 résultats...?
Exemples:

Ma base comporte 250 noms pour le moments (mais elle grandit chaque jour),
donc le tableau sera affiché sur 5 pages de résultats...

Merci par avance.

ViPHP
ViPHP | 5462 Messages

05 oct. 2010, 22:48

c'est la base du sql ca, regarde du coté de LIMIT :wink:

Mammouth du PHP | 687 Messages

05 oct. 2010, 22:59

Ok Merci.

Mais je ne comprends pas comment en mettant juste une LIMIT 50 on onbtiendra 5 pages de 50 noms...
Merci par avance.

ViPHP
ViPHP | 5462 Messages

05 oct. 2010, 23:08

Ok Merci.

Mais je ne comprends pas comment en mettant juste une LIMIT 50 on onbtiendra 5 pages de 50 noms...
Merci par avance.
c'est a toi de faire la pagination après, y'a pas mal de topic la dessus :wink:

Mammouth du PHP | 687 Messages

05 oct. 2010, 23:10

c'est bien ce qui me semblait... c'est la ou je coince....
Sais-tu ou je peux trouver ça par hasard?

Merci

ViPHP
ViPHP | 5462 Messages

05 oct. 2010, 23:13

c'est bien ce qui me semblait... c'est la ou je coince....
Sais-tu ou je peux trouver ça par hasard?

Merci
ici par exemple : vos-contributions/tutoriel-php-mysql-cr ... 55368.html
même si c'est pas tip top tu peux t'en inspirer)

Mammouth du PHP | 687 Messages

05 oct. 2010, 23:20

ok je vais regarder tout ça.
Merci et bonne soirée.

ViPHP
ViPHP | 3607 Messages

06 oct. 2010, 08:52


Mammouth du PHP | 687 Messages

06 oct. 2010, 11:35

Merciiii!!!
En effet il est plus complet et beaucoup plus simple à comprendre! Merveilleux!

Merci!

Mammouth du PHP | 687 Messages

06 oct. 2010, 13:13

Par contre il doit y avoir une erreur car lorsque je lance la page une erreur intervient :Parse error: syntax error, unexpected '&', expecting ',' or ')' in /homez.333/./www/./news.php on line 109

Soit cette ligne

$page_en_cours    = isset($_GET&#91;'page'&#93;) ? $_GET&#91;'page'&#93; : 0;
peux-tu me dire d'ou cela peut provenir stp?
merci par avance.

ViPHP
ViPHP | 3607 Messages

06 oct. 2010, 13:22

Effectivement il y a du avoir un soucis sur le forum...
Il ne faut pas copier/coller sans chercher à comprendre ;)
la ligne
$page_en_cours    = isset($_GET&#91;'page'&#93;) ? $_GET&#91;'page'&#93; : 0;
deviens:
$page_en_cours    = isset($_GET['page']) ? $_GET['page'] : 0;
Il se peut qu'il reste d'autres erreurs de ce type, donc relis bien ton code et profites-en pour essayer de tout comprendre ;)

Mammouth du PHP | 687 Messages

06 oct. 2010, 13:37

C'est parfait! merci

effectivement il y avait 3 autres erreur mais grace à ton aide j'ai pu comprendre et corriger!

Merci!

Mammouth du PHP | 687 Messages

06 oct. 2010, 15:23

Bon j'ai essayé d'intégrer ce code à ma page PHP mais en vain...

Peux-tu essayer de me dire ce qui cloche stp? MERCI!
<?php


//--------les includes des fonctions permettent le bon fonctionnement du site--------------------
include "include_fns.php";
//-----------------------------------------------------------------------------------------------
$query = "SELECT COUNT(*) FROM pefac_entreprises_coordonnees";

$result = mysql_query($query) or die (mysql_error());

$compteur = mysql_fetch_row($result);
//-----------------------------------------------------------------------------------------------
//permet de savoir si le groupe a le droit d'acces a ce fichier
$fichier = "Entreprises";
$module_autoriser = rech_enreg_modules($groupe, $fichier);

 if ($module_autoriser)
{
//------------------------------------------------------------------------------------------------

//--------------------- si la session n'enregistre pas l'administreur ----------------------------
 if (!$_SESSION["administrateur"] && !$_SESSION["groupe"]) {
   	echo "<div id=\"message\">".ACCES_PAGE_INTERDITE." !<br />";
       	echo "<a href=\"index.php\">".RETOUR."</a></div><br />";
//-----------------------------------------------------------------------------------------

//--------------------- affichage du bas de page et quitte le programme -------------------
  	include "bas.php";
  	exit();
 }
//-----------------------------------------------------------------------------------------
 else {
//-----------------------------------------------------------------------------------------
   if (isset($_GET['nom_entreprise'])) {
	$nom_entreprise = $_GET['nom_entreprise'];
	$entreprise = rech_enreg_entreprise($nom_entreprise);
	
	//supprimer la plaquette et le logo lors de la suppression de l'entreprise
	$conn = db_connect();
  	$sql = "SELECT * FROM ".ENTREPRISES_DOSSIERS." where num_client = '$entreprise[num_client]'";
  	$result = mysql_query($sql, $conn);
  	$dossier = mysql_fetch_array($result);
  	
  	//supprimer la plaquette et le logo
	@unlink($dossier[logo]);
	@unlink($dossier[plaquette_pdf]);

	//suppression des coordonnees du dossier et des contacts de l'entreprise
	$conn = db_connect();
	$sql_coord = "delete from ".ENTREPRISES_COORDONNEES." where num_client = '$entreprise[num_client]'";
	$result_coord = mysql_query($sql_coord, $conn);

	$sql_doss = "delete from ".ENTREPRISES_DOSSIERS." where num_client = '$entreprise[num_client]'";
	$result_doss = mysql_query($sql_doss, $conn);

	$sql_cont = "delete from ".ENTREPRISES_CONTACTS." where num_client = '$entreprise[num_client]'";
	$result_cont = mysql_query($sql_cont, $conn);
   }
//-----------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------
   if (isset($_GET['tri'])) {
	$tri = $_GET['tri'];
   }
   else {
	$tri = "num_saisie";
   }
//-----------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------
 if ($groupe == "1" || $groupe == "2") {
  $conn = db_connect();
  $sql = "SELECT nom_entreprise, telephone, code_postal, num_dossier, date_limite, num_saisie FROM ".ENTREPRISES_COORDONNEES.", ".ENTREPRISES_DOSSIERS." WHERE ".ENTREPRISES_COORDONNEES.".num_client = ".ENTREPRISES_DOSSIERS.".num_client order by $tri asc"; 
  $result = mysql_query($sql, $conn);
  //$num_results = mysql_num_rows($result);

 }  
 else {
//-----------------------------------------------------------------------------------------	 
	 /* Paramètres de pagination */

$nb_nouv_par_page = 10;             /* Nombre de nouvelles qui seront affichées sur chaque page */

$url = "./gestion_liste_entreprise.php?page=";



/* On détermine quelle est la page qui est actuellement affichée */

$page_en_cours    = isset($_GET['page']) ? $_GET['page'] : 0;

$page_affichee    = ($page_en_cours + 1);


//------------------ l'administrateur ne peut voir que ce qu'il a cree --------------------
  $conn = db_connect();
  $sql = "SELECT nom_entreprise, telephone, code_postal, num_dossier, date_limite, num_saisie FROM ".ENTREPRISES_COORDONNEES.", ".ENTREPRISES_DOSSIERS." WHERE ".ENTREPRISES_COORDONNEES.".num_client = ".ENTREPRISES_DOSSIERS.".num_client AND username = '$administrateur' order by $tri asc"; 
  $result = mysql_query($sql, $conn);
  //$num_results = mysql_num_rows($result);
}
//-----------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------

/* Exécution de la requête et récupération du résultat */

$resultat_1 = mysql_query($sql_nb);

$nb_nouvelles = mysql_result($resultat_1, 0);



/* Calcul du nombre total de pages : on arrondit à l'entier supérieur (ceil() ) */

$nb_pages = ceil($nb_nouvelles / $nb_nouv_par_page);



/**

Nous disposons maintenant de suffisament d'éléments pour créer notre barre de navigation.

Première chose à vérifier : avons-nous plusieurs pages, et au moins une ?

 */

if($nb_pages > 0)

{

    /* On définit une variable qui contiendra les données de navigation */

    $barre_nav = "";

    /* Nous avons au moins une page : avons nous besoin d'une barre de navigation ? */

    if($nb_pages > 1)

    {

        /**

        Nous avons plusieurs pages: nous allons afficher successivement les liens vers

        les pages précédentes s'il y en a, la page en cours et les liens vers les pages

        suivantes. Nous aurons une barre sous la forme : 1 | 2 | 3 etc.. en liens clicables

        sauf pour la page en cours dont nous mettrons le chiffre en gras

         */

        if($page_en_cours > 0)

        {

            for($i = 0; $i < $page_en_cours; $i++)

            {

                $p = $i + 1;

                $barre_nav .= "<a href=\"". $url . $i ."\" title=\"page ". $p ."\">". $p ."</a> | ";

            }

        }

        /**

        On affiche la page en cours : notez le (+ 1) : pour les calculs, nous partons d'une

        page 0 mais pour l'internaute, il est préférable de commencer à la page 1, donc on incrémente

         */

        $barre_nav .= "<strong>". $page_affichee ."</strong>";

        /* Enfin on affiche (s'il y a lieu) les liens vers les pages suivantes */

        if(($page_affichee) < $nb_pages)

        {

            /* Il reste encore d'autres pages à afficher */

            $nb_suivantes = $nb_pages - ($page_affichee);

            for($j = ($page_affichee); $j < $nb_pages; $j++)

            {

                $p = $j + 1;

                $barre_nav .= " | <a href=\"". $url . $j ."\" title=\"page ". $p ."\">". $p ."</a>";

            }

        }

       

        /* On peut définir en plus la situation dans une autre variable à afficher ailleurs */

        $page_affichee = "Page ". $page_affichee ." sur un total de ". $nb_pages ." pages.";

    }

    else

    {

        /* Nous n'avons qu'une seule page, on peut se contenter d'afficher juste page 1/1 */

        $barre_nav .= "page 1/1";

    }

    /**

    On peut maintenant afficher notre page. On va commencer par récupérer les informations

    On doit définir à partir de quelle nouvelle on doit récupérer les données dans la clause LIMIT.

     */

    $debut = $page_en_cours * $nb_nouv_par_page;

    $sql_n = "SELECT nouv_titre, nouv_texte, nouv_date FROM nouvelles LIMIT ". $debut .", ". $nb_nouv_par_page .";";

    $nouvelles = mysql_query($sql_n);

?>

<p class="situation"><?php echo($page_affichee); ?></p>

<?php

    while($nouv = mysql_fetch_assoc($nouvelles))

    {

?>

<?php
//-----------------------------------------------------------------------------------------


//----------------------------- formulaire de la liste des entreprises --------------------

   	echo "<div><h1>Liste des entreprises</h1></div>";
   	echo "<div class='cadre_admin_page'>";
   	echo "<div>[   <a href='ajouter_entreprise.php'>Ajouter une nouvelle entreprise</a>   ]</div>";
	
//-----------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------
   	echo "</div>";
   	echo "<div class='cadre_admin_page'>";
   	echo "<table border='0' align='center' cellspacing='1' cellpadding='1' width='100%' class='bordure'>";
   	echo "<tr>";
	echo '<center><b>Il y a '.$compteur[0].' sociétés référencées sur le site<b></center>'.'<br>';
	
   	echo "<th class='fond' width='30%'><b>Nom de l'&eacute;tablissement</b>&nbsp;&nbsp;<a href=\"?tri=nom_entreprise\"><img src=\"$dir_image/desc.gif\" alt=\"\" title=\"trier\" border=\"0\"></a></th>
		<th class='fond' width='8%'><b>T&eacute;l&eacute;phone</b></th>
		<th class='fond' width='11%'><b>Code postal</b>&nbsp;&nbsp;<a href=\"?tri=code_postal\"><img src=\"$dir_image/desc.gif\" alt=\"\" title=\"trier\" border=\"0\"></a></th>
		<th class='fond' width='8%'><b>R&eacute;f dossier</b></th>
		<th class='fond' width='7%'><b>&Eacute;ch&eacute;ance</b></th>
		<th class='fond' width='9%'><b>N&deg; de saisie</b></th>
		
		<th class='fond' width='10%' colspan='2'>&nbsp;</th>";
   	echo "</tr>";
 
 while ($rech_ent = @mysql_fetch_array($result)) {
	echo "<tr><td class='fond'><a href =\"ajouter_entreprise.php?nom_entreprise=".addSlashes(htmlentities($rech_ent[nom_entreprise]))."\">".stripSlashes(htmlentities($rech_ent[nom_entreprise]))."</a></td>";
	echo "<td class='fond'>".stripSlashes(htmlentities($rech_ent[telephone]))."</td>";
	echo "<td class='fond'>".stripSlashes(htmlentities($rech_ent[code_postal]))."</td>";
	echo "<td class='fond'><a href =\"dossier_entreprise.php?num_dossier=$rech_ent[num_dossier]&nom_entreprise=$rech_ent[nom_entreprise]\">".stripSlashes(htmlentities($rech_ent[num_dossier]))."</a></td>";
	echo "<td class='fond'>".stripSlashes(htmlentities(date("d/m/Y", $rech_ent[date_limite])))."</td>";
	echo "<td class='fond'>".stripSlashes(htmlentities($rech_ent[num_saisie]))."</td>";
	echo "<td class='fond'><a href =\"contact_entreprise.php?nom_entreprise=".addSlashes(htmlentities($rech_ent[nom_entreprise]))."\">CONTACTER</a></td>";
	echo "<td class='fond'><a href =\"".$_SERVER['PHP_SELF']."?nom_entreprise=".addSlashes(htmlentities($rech_ent[nom_entreprise]))."\" onclick=\"return confirm('Attention, vous allez supprimer ".addSlashes(htmlentities($rech_ent[nom_entreprise]))." voulez vous continuer ?')\">SUPPRIMER</a></td></tr>";
 }
	echo "</table>";
//---------------------------------------------------------------------------------------------
	echo "</div>" ;
//--------------------- affichage du bas de page et quitte le programme -----------------------
	echo "<div class='cadre_admin_page'>";
    	echo "<center><a href='menu_admin.php'>".RETOUR."</a></center>";
	echo "</div>";
	echo "<br />";
    include "bas.php";
  }
}
//--------------------------------------------------------------------------------------------
 else
{
	echo "<div id=\"message\">".ACCES_PAGE_INTERDITE." !<br />";
       	echo "<a href=\"index.php\">".RETOUR."</a></div><br />";
//-----------------------------------------------------------------------------------------------

//---------------- affichage du bas de page et quitte le programme ------------------------------
 include "bas.php";
 exit();
}

//-----------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------
/* on libère la mémoire */

    mysql_free_result($resultat_1);

    mysql_free_result($nouvelles);

    /* On peut fermer la connexion à MySQL */

    mysql_close($connexion);

    /* On affiche maintenant la barre de navigation */

?>

<p class="navigation"><?php echo($barre_nav); ?></p>

<?php

}

else

{

    /**

    Nous n'avons aucune page, on peut alors afficher un message autre

    sans devoir nous préoccuper de la navigation

     */

?>
<?php

}

?>


De plus lorsque je charge la plage le navigateur indique cette erreur :
Parse error: syntax error, unexpected T_ELSE in /homez.333/./www/./gestion_liste_entreprise.php on line 328

Merci par avance!

ViPHP
ViPHP | 5462 Messages

06 oct. 2010, 15:28

cherche le if correspondant :wink:

ViPHP
ViPHP | 3607 Messages

06 oct. 2010, 15:32

Encore une fois, tu as bêtement (excuse le terme) copié/collé l'exemple :/
par exemple cette variable: $sql_nb
tu l'utilises, mais elle n'est instanciée nul part!
Donc commence par comprendre l'exemple, ensuite essaye d'adapter à ta page...