begin process at 2012 05 27 20:30:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > SYSTÈME DE PAGINATION AVEC BDD ET IMAGES (FICHIERS)

SYSTÈME DE PAGINATION AVEC BDD ET IMAGES (FICHIERS)


 Information sur la source

Note :
1,5 / 10 - par 2 personnes
1,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Classé sous :Pagination, PHP, BDD, Images, MySQL Niveau :Débutant Date de création :22/05/2011 Vu :3 852

Auteur : begueradj

Ecrire un message privé
Site perso
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Azul à tous,

Dans ce petit programme, j'ai implémenté un système de pagination sur des données que je lis à partir d'une table et dont des fichiers correspondants se trouvent dans un dossier (des images, dans mon cas)

Je poste ce script surtout pour avoir des suggestion à l'améliorer.
Il fonctionne parfaitement

Source

  • <?php
  • require_once('include/header.inc.php');
  • require_once('include/leftMenu.inc.php');
  • require_once('Cfg/config.inc.php');
  • ?>
  • <div class="rightContent">
  • <?php
  • $tal=$_GET['ta2'];
  • $tenq=$_GET['tenq'];
  • /*it is the page concerned by this show*/
  • $pagen="lister.php";
  • $start=$_GET['start'];
  • if(strlen($start)>0&&!is_numeric($start)){
  • echo'Erreur dans le param&egrave;tre pass&eacute;e';;
  • exit();/*i go out from this page*/
  • }
  • $eu = ($start - 0);
  • $limit = 2;
  • $this1 = $eu + $limit;
  • $back = $eu - $limit;
  • $next = $eu + $limit;
  • //i will fetch for the number of records in my table
  • $query2="SELECT*FROM $tenq";
  • // so as to help me to break the page
  • $result2=mysql_query($query2)or die('Impossible to perform the SELECTION query 1<br/>'.mysql_error());
  • $nume=mysql_num_rows($result2);
  • /* Thus we have just stored the number of rows that exist in our table */
  • /* now i will print the table headers in which i will save the elemens of my table*/
  • $bgcolor="#f1f1f1";
  • echo "<TABLE width=50% align=center cellpadding=0 cellspacing=0 class=mytableinlister>";
  • $query=" SELECT * FROM $tenq limit $eu, $limit ";
  • $result=mysql_query($query)or die('Impossible to perform the SELECTION query 2<br/>'.mysql_error());
  • /* now i will display my stupid data within this table i just started drawing */
  • while($broughtdata = mysql_fetch_array($result))
  • {
  • if($bgcolor=='#f1f1f1'){$bgcolor='#ffffff';}
  • else{$bgcolor='#f1f1f1';}
  • echo "<tr >";
  • echo "<td align=center bgcolor=$bgcolor id='title'>&nbsp;<font face='Verdana' size='2'>$broughtdata[ufn]</font></td>";
  • echo'</tr>';
  • echo'<tr>';
  • echo'<td align="center">';
  • $sfn=$broughtdata['sfn'];
  • $wherearemyimages="admin/Images";
  • $openmywami=opendir($wherearemyimages);
  • while($myfilelookedfor=readdir($openmywami)){
  • $thelinktomf=$wherearemyimages.'/'.$myfilelookedfor;
  • if(file_exists($thelinktomf)&&$broughtdata['sfn']==$myfilelookedfor){
  • echo"<a href=\"productsdetails.php?idImg=$idphoto#portsdetailslabel\"><img src=\"".$thelinktomf."\" width=\"150\" height=\"150\" border=\"0\"/></a></td>";
  • }
  • }
  • echo'</td>';
  • echo'</tr>';
  • }
  • echo "</table>";
  • /*i have just ended displaying my data in this table */
  • if($nume > $limit ){
  • /*i will display links under this table if sufficient records are there to page */
  • /* thus the links to show are the previous and next links with page numbers*/
  • echo "<table align = 'center' width='50%'><tr><td align='left' width='30%'>";
  • /*if the variable $back is equal to 0 or more then only we will display the link Previous so as
  • * to move back within my table */
  • if($back >=0) {
  • print "<a href='$page_name?start=$back&tenq=$tenq'><img src=\"images/previous.jpeg\" border=\"0\"></a>";
  • }
  • /* here again, i display my links at the center,
  • * but i must avoid displaying the current page as a link*/
  • echo "</td><td align=center width='30%'>";
  • $i=0;
  • $l=1;
  • for($i=0;$i < $nume;$i=$i+$limit){
  • if($i <> $eu){
  • echo " <a href='$page_name?start=$i&tenq=$tenq'><font face='Verdana' size='2'>$l</font></a> ";
  • }
  • else { echo "<font face='Verdana' size='4' color=red>$l</font>";} /// Current page is not displayed as link and given font color red
  • $l=$l+1;
  • }
  • echo "</td><td align='right' width='30%'>";
  • /*if this is nopt the last page then we can display the following link
  • * I verify this here */
  • if($this1 < $nume) {
  • print "<a href='$page_name?start=$next&tenq=$tenq'><img src=\"images/next.jpeg\" border=\"0\"></a>";}
  • echo "</td></tr></table>";
  • }// end of if verifying sufficient records are there to display bottom navigational link.
  • ?>
  • </div>
  • <?php
  • require_once('include/footer.inc.php');
  • ?>
<?php
require_once('include/header.inc.php');
require_once('include/leftMenu.inc.php');
require_once('Cfg/config.inc.php');
?>
<div class="rightContent">
<?php
 $tal=$_GET['ta2'];
 $tenq=$_GET['tenq'];
 /*it is the page concerned by this show*/
 $pagen="lister.php";
 $start=$_GET['start'];
 if(strlen($start)>0&&!is_numeric($start)){
 	echo'Erreur dans le param&egrave;tre pass&eacute;e';;
 	exit();/*i go out from this page*/
 }
$eu = ($start - 0); 
$limit = 2;                                 
$this1 = $eu + $limit; 
$back = $eu - $limit; 
$next = $eu + $limit; 
//i will fetch for the number of records in my table
$query2="SELECT*FROM $tenq";
// so as to help me to break the page
$result2=mysql_query($query2)or die('Impossible to perform the SELECTION query 1<br/>'.mysql_error());
$nume=mysql_num_rows($result2);
/* Thus we have just stored the number of rows that exist in our table */
/* now i will print the table headers in which i will save the elemens of my table*/
$bgcolor="#f1f1f1";
echo "<TABLE width=50% align=center  cellpadding=0 cellspacing=0 class=mytableinlister>";
$query=" SELECT * FROM $tenq  limit $eu, $limit ";
$result=mysql_query($query)or die('Impossible to perform the SELECTION query 2<br/>'.mysql_error());
/* now i will display my stupid data within this table i just started drawing */
while($broughtdata = mysql_fetch_array($result))
{
if($bgcolor=='#f1f1f1'){$bgcolor='#ffffff';}
else{$bgcolor='#f1f1f1';}
echo "<tr >";
echo "<td align=center bgcolor=$bgcolor id='title'>&nbsp;<font face='Verdana' size='2'>$broughtdata[ufn]</font></td>";
echo'</tr>';
echo'<tr>';
echo'<td align="center">';
$sfn=$broughtdata['sfn'];
$wherearemyimages="admin/Images";
$openmywami=opendir($wherearemyimages);
while($myfilelookedfor=readdir($openmywami)){
	$thelinktomf=$wherearemyimages.'/'.$myfilelookedfor;
	if(file_exists($thelinktomf)&&$broughtdata['sfn']==$myfilelookedfor){
		echo"<a href=\"productsdetails.php?idImg=$idphoto#portsdetailslabel\"><img src=\"".$thelinktomf."\" width=\"150\" height=\"150\" border=\"0\"/></a></td>";
	}
}	
echo'</td>';
echo'</tr>';
}
echo "</table>";
/*i have just ended displaying my data in this table */
if($nume > $limit ){ 
/*i will display links under this table if sufficient records are there to page */
/* thus the links to show are the previous and next links with page numbers*/
echo "<table align = 'center' width='50%'><tr><td  align='left' width='30%'>";
/*if the variable $back is equal to 0 or more then only we will display the link Previous so as
 * to move back within my table  */
if($back >=0) { 
print "<a href='$page_name?start=$back&tenq=$tenq'><img src=\"images/previous.jpeg\" border=\"0\"></a>"; 
} 
/* here again,  i display my links at the center, 
 * but i must avoid displaying the current page as a link*/
echo "</td><td align=center width='30%'>";
$i=0;
$l=1;
for($i=0;$i < $nume;$i=$i+$limit){
if($i <> $eu){
echo " <a href='$page_name?start=$i&tenq=$tenq'><font face='Verdana' size='2'>$l</font></a> ";
}
else { echo "<font face='Verdana' size='4' color=red>$l</font>";}        /// Current page is not displayed as link and given font color red
$l=$l+1;
}
echo "</td><td  align='right' width='30%'>";
/*if this is nopt the last page then we can display the following link
 * I verify this here */
if($this1 < $nume) { 
print "<a href='$page_name?start=$next&tenq=$tenq'><img src=\"images/next.jpeg\" border=\"0\"></a>";}  
echo "</td></tr></table>";

}// end of if verifying sufficient records are there to display bottom navigational link. 
?>

</div>
<?php
require_once('include/footer.inc.php');
?>



 Sources de la même categorie

Source avec Zip ORM : DAO, ACTIVERECORD ET DBLIST par Reldan
Source avec une capture CET EXTRAIT PERMET D'AJOUTER DANS UN TABLEAU UNE AGRÉGATION ... par Denis007
EXPORT DE BASE AU FORMAT CSV par remib74
Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier

 Sources en rapport avec celle ci

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture EL COYOTOS LIVRE D'OR PHP 5 par elcoyotos
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip CLASS MYSQL 5/PHP5 AVEC GESTION DES EXCEPTION ET DES REQUÊTE... par devil_may_cry
Source avec Zip Source avec une capture PAGINATION JAVASCRIPT PHP MYSQL par cod57

Commentaires et avis

Commentaire de phpAnonyme le 23/05/2011 00:34:13 2/10

Dans le cadre d'un partage communautaire : c'est moche et quasi non personnalisable...

Conclusion : mets-toi au PHP >= 5 et propose quelque chose de plus portable.

P.S : il y a des sources ici sur le même sujet beaucoup plus intéressantes.
  

Commentaire de Burnside le 24/05/2011 13:46:24

Slt,

Alors déjà des nom de variable pas très explicites:
$tal=$_GET['ta2']; et $tenq=$_GET['tenq'];

des commentaires en Anglais...pas certain que cette source soi de toi...

bàt,
Burnside.

Commentaire de begueradj le 24/05/2011 17:53:58

bonjour
merci pour le conseil quoique pas précis, PhpAnonyme
J'aurais aimé recevoir une orientation sur comment modéliser ça en OOP

Burnside: la première remarque est ok, quoique ce scrit je l'ai fait pour moi mùême dans le cadre d'un site
pour l'anglais: je pense instinctivement en anglais, l'anglais est la langue de l'informatique, et non pas le wallonien
merci pour l'accusation: les algériens sont des voleurs pas les gens de la Wallonie

Commentaire de fguichard le 30/05/2011 10:24:52

En tant que informaticien-développeurs internet, nous nous devons d'être des modèles de respect et être stricte sur le respect de la netiquette. Ta dernière remarque n'est pas respectueuse, il serait bon que tu la supprime.
A propos de ton source: c'est dommage qu'il soit incomplet, il vaut mieux sur ce site poster des sources complets et ré-utilisables tels quels. Pour faire suite à burnside: il existe des notations pour les variables qui sont très efficaces et utiles ( voir http://fr.wikipedia.org/wiki/Notation_hongroise ). L'indentation n'est pas facultative.
Par contre, que le source soit rédigé en anglais n'est pas un mal.

Commentaire de begueradj le 30/05/2011 13:34:47

merci et pour les remarques et pour le lien, Fguichard .

P.S. c'est lui qui a commencé, pas moi.

Commentaire de spelissier le 31/05/2011 12:46:12

Bonjour à tous, je débute en programmation, et ce script m'interresse.
Comment faire pour le faire fonctionner ?
Merci d'avance

Commentaire de begueradj le 31/05/2011 17:44:21

Bonjour,

En fait, on ne peut pas utiliser directement ce script.
Je l'ai posté juste pour avoir des propositions afin de l'améliorer.

Toutefois, vous pouvez créer une table MySQL et la remplire par quelques enregistrements, et puis ce script pourra vous les afficher et ceci en éléminant la recherche des images dans le dossier indiqués, et modifier les champs de $broughtdata[ufn] par les nom de champs de votre table

Commentaire de stay le 11/06/2011 23:04:09 1/10

Bonjour à tous,

begueradj, tu as crée un code qui donne des opportunités de faire des injections direct dans ta base de donnée.

Imaginons, <a href='http://www.ton-domaine.com/$page_name?start=$next&tenq=$tenq AND DROP TABLE $tenq'><img src=\"images/next.jpeg\" border=\"0\"></a>

Travailler en PDOMySQL évite ce genre de problème.
Exemple : http://www.php.net/manual/fr/pdostatement.bindparam.php  

Commentaire de stay le 11/06/2011 23:21:02

Et ce lien : http://www.php.net/manual/fr/pdo.prepare.php

Appeler PDO::prepare() et PDOStatement::execute() pour les requêtes qui doivent être exécutées plusieurs fois avec différentes valeurs de paramètres optimisent les performances de votre application en autorisant le pilote à négocier coté client et/ou serveur avec le cache des requêtes et les metainformations, et aident à prévenir les attaques par injection SQL en éliminant le besoin de protéger les paramètres manuellement.

Commentaire de begueradj le 12/06/2011 11:35:49

Merci beaucoup pour vos remarques très instructives pour moi, Monsieur STAY.
Merci beaucoup(surtout pour la faille sécuritaire que vous m'avez signalée)

Commentaire de bout8 le 18/06/2011 02:22:46

merçi bien! voila je vous donne 10/10

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Php & MySql ??? [ par nova85 ] Je voudrai savoir si il est possible de realiser un site assez important juste avec une BDD mysql , si c'est capable de resister , et surtout savoir s image php Mysql [ par arnaldo21 ] bonjour pourriez-vous me donner un exemple concret d'affichage d'image a partir d'une bdd. J'utilise un upload qui stock le nom de l'image dans la bdd php/mysql et album photo sécurisé [ par pumbaa ] &nbsp;Salut!!&nbsp;&nbsp;&nbsp;J&#146;ai cr&#233;e un album d&#146;image avec php/MySQL. Les images ce trouvent Php - MySql + Images [ par 68_abis ] Bonjour &#224; tous,Peut-&#234;tre cette question &#224; e-t-elle &#233;t&#233; d&#233;j&#224; pos&#233;e, mais je n'en ai pas trouv&#233;e de traces, multiple upload a mysql avec php [ par Xavihb ] Salut,J'aurais besoin de savoir comment faire un multiple upload d'images &#224; une base de donn&#233;es mySQL &#224; l'aide de PHP. Les champs des i bdd+php avec easyphp [ par neosqual ] Bonjour a tous, J'aurai voulu savoir si il y a qq chose de sp&#233;cial &#224; faire pour acc&#233;der &#224; une bdd (cr&#233;&#233;e en mysql sous e Help !!! probleme de connection BDD et affichage dans une pasge php [ par chapata ] Bonjour a tous,J'ai installer EasyPHP en d&#233;but de semaine et je me suis mit depuis peu aux BDD&nbsp;(mysql et php), et j'ai une question pour vou formulaire Modifier BDD Mysql [ par ombrey20 ] j suis debutant en php,j'ai deja creer un formulaire ajout d'enregistrement dans une BDD Mysql via php.. et j veux faire un autre pour la modification récupérer une valeur [ID] extraite de la bdd pour obtenir les infos [ par dieusurterre ] Je n'arrive pas &#224; trouver comment faire pour que ma page ../fiche.php?ID=[valeur bdd] affiche les renseignement du rows de la bdd relatif &#224 clic sur un tableau d'images lues à partie de mysql/php [ par amewole ] Voici mon probl&#232;me : Je suis debutant php j'extrais des donn&#233;es images d' une table mysql et je mets ces donn&#233;es images dans un tableau


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales