Affichage en plusieurs page PHP
                                    
                        mouna                    
                                    -
                                     
Alain_42 Messages postés 5413 Statut Membre -
        Alain_42 Messages postés 5413 Statut Membre -
        Bonjour, 
je veux bien afficher le contenu de ma bdd dans une table sur plusieurs page, pour cela j'ai essayer de traiter ce code la, le résultat que j'ai trouvé c'est qu'il fonctionne mais avec des erreurs.
Voilà le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<?php
include ("connexion.php");
$req_limit="select codeClt from client";
$resultat= mysql_num_rows ($req_limit);
$limit_page= '2';
$nombre_page=$resultat/$limit_page;
$nombre_tot=ceil($nombre_page);
$nombre=$nombre_tot - 1;
if(isset($_GET['numero_page']) || $_GET['numero_page'] != '0' )
{
$limite_mysql = $limit_page * $_GET['numero_page'];
}
else
{
$limite_mysql = '0';
}
if( $nombre != '0' && empty($_GET['numero_page']))
{
print '<a href="affichage.php?numero_page=1">Page suivante</a>';
}
elseif($nombre !='0' && isset($_GET['numero_page']) && $_GET['numero_page'] < $nombre)
{
$suivant = $_GET['numero_page'] + 1;
print '<a href="affichage.php?numero_page='.$suivant.'">Page suivante</a>';
print ' <a href="javascript: history.back();">Page précédente</a>';
}
elseif( $nombre !='0' && isset($_GET['numero_page']) && $_GET['numero_page'] >= $nombre )
{
print '<a href="javascript: history.back();">Page précédente</a>';
}
$req=mysql_query("select * from client order by codeClt desc limit $limite_mysql,$limit_page") or die ("erreur requete");
echo "<table border=\"1\"><tbody>";
echo "<tr><td> Code Client </td> <td> Nom </td> <td> Prenom </td> <td> Adresse </td> <td> pays </td> <td> Ville </td> <td> email </td> <td> tel 1 </td> <td> Tel 2 </td> <td> Fax </td> </tr>";
while ($res=mysql_fetch_array ($req))
{
echo "<tr>";
foreach ($res as $valeur)
{ echo "<td> $valeur </td>";
}
echo "</tr>";
}
echo "</tbody></table>";
?>
</body>
</html>
Les lignes en gras sont les lignes dont il m'indique le message d'erreur
En exécutant ce code il m'affiche un tableau qui contient le contenu de ma table client et aussi il m'affiche le lien vers la page suivante et il fonctionne et aussi le lien vers la page précédente mais le tableau affiché n'est pas bien organisé il affiche chaque enregistrement 2 fois et il s'affiche ces messages d'erreur au dessus du tableau :
Warning: mysql_num_rows() expects parameter 1 to be resource, string given in D:\Program Files\EasyPHP-5.3.1\www\hbs\affichage.php on line 12
Notice: Undefined index: numero_page in D:\Program Files\EasyPHP-5.3.1\www\hbs\affichage.php on line 17
Notice: Undefined index: numero_page in D:\Program Files\EasyPHP-5.3.1\www\hbs\affichage.php on line 19
Merci de m'aider à résoudre ce problème.
            
            
                
            
                
    
    
    
        je veux bien afficher le contenu de ma bdd dans une table sur plusieurs page, pour cela j'ai essayer de traiter ce code la, le résultat que j'ai trouvé c'est qu'il fonctionne mais avec des erreurs.
Voilà le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<?php
include ("connexion.php");
$req_limit="select codeClt from client";
$resultat= mysql_num_rows ($req_limit);
$limit_page= '2';
$nombre_page=$resultat/$limit_page;
$nombre_tot=ceil($nombre_page);
$nombre=$nombre_tot - 1;
if(isset($_GET['numero_page']) || $_GET['numero_page'] != '0' )
{
$limite_mysql = $limit_page * $_GET['numero_page'];
}
else
{
$limite_mysql = '0';
}
if( $nombre != '0' && empty($_GET['numero_page']))
{
print '<a href="affichage.php?numero_page=1">Page suivante</a>';
}
elseif($nombre !='0' && isset($_GET['numero_page']) && $_GET['numero_page'] < $nombre)
{
$suivant = $_GET['numero_page'] + 1;
print '<a href="affichage.php?numero_page='.$suivant.'">Page suivante</a>';
print ' <a href="javascript: history.back();">Page précédente</a>';
}
elseif( $nombre !='0' && isset($_GET['numero_page']) && $_GET['numero_page'] >= $nombre )
{
print '<a href="javascript: history.back();">Page précédente</a>';
}
$req=mysql_query("select * from client order by codeClt desc limit $limite_mysql,$limit_page") or die ("erreur requete");
echo "<table border=\"1\"><tbody>";
echo "<tr><td> Code Client </td> <td> Nom </td> <td> Prenom </td> <td> Adresse </td> <td> pays </td> <td> Ville </td> <td> email </td> <td> tel 1 </td> <td> Tel 2 </td> <td> Fax </td> </tr>";
while ($res=mysql_fetch_array ($req))
{
echo "<tr>";
foreach ($res as $valeur)
{ echo "<td> $valeur </td>";
}
echo "</tr>";
}
echo "</tbody></table>";
?>
</body>
</html>
Les lignes en gras sont les lignes dont il m'indique le message d'erreur
En exécutant ce code il m'affiche un tableau qui contient le contenu de ma table client et aussi il m'affiche le lien vers la page suivante et il fonctionne et aussi le lien vers la page précédente mais le tableau affiché n'est pas bien organisé il affiche chaque enregistrement 2 fois et il s'affiche ces messages d'erreur au dessus du tableau :
Warning: mysql_num_rows() expects parameter 1 to be resource, string given in D:\Program Files\EasyPHP-5.3.1\www\hbs\affichage.php on line 12
Notice: Undefined index: numero_page in D:\Program Files\EasyPHP-5.3.1\www\hbs\affichage.php on line 17
Notice: Undefined index: numero_page in D:\Program Files\EasyPHP-5.3.1\www\hbs\affichage.php on line 19
Merci de m'aider à résoudre ce problème.
        A voir également:         
- Affichage en plusieurs page PHP
 - Supprimer page word - Guide
 - Mettre google en page d'accueil - Guide
 - Affichage double ecran - Guide
 - Traduire une page en français - Guide
 - Imprimer tableau excel sur une page - Guide
 
3 réponses
                        
                            
                    il faut executer la requett etoi tu l'a seulement définie:
<?php
include ("connexion.php");
$req_limit="select codeClt from client";
$resultat= mysql_num_rows ($req_limit);
et
if(isset($_GET['numero_page']) || $_GET['numero_page'] != '0' )
c'est plutôt un ET
    
                <?php
include ("connexion.php");
$req_limit="select codeClt from client";
$resultat= mysql_num_rows ($req_limit);
<?php
include ("connexion.php");
$req_limit="select codeClt from client";
$reultat_req=mysql_query($req_limit); //execution de l arequette
$resultat= mysql_num_rows ($reultat_req); 
et
if(isset($_GET['numero_page']) || $_GET['numero_page'] != '0' )
c'est plutôt un ET
if(isset($_GET['numero_page']) && $_GET['numero_page'] != '0' )
                        
                    Merci, le message d'erreur a été éliminé suite à votre correction mais il reste seulement l'affichage du tableau, il m'affiche chaque enregistrement 2 fois. 
par exemple pour la table client j'ai code,nom, prenom, adresse
supposons on a le 1ere enregistrement
code: 1 nom: ABCD prenom: Mona Adresse Tunisie
il m'affiche
1 1 ABCD ABCD Mona Mona Tunisie Tunisie
j'arrive pas à comprendre pourquoi !!!!
    
                par exemple pour la table client j'ai code,nom, prenom, adresse
supposons on a le 1ere enregistrement
code: 1 nom: ABCD prenom: Mona Adresse Tunisie
il m'affiche
1 1 ABCD ABCD Mona Mona Tunisie Tunisie
j'arrive pas à comprendre pourquoi !!!!
                        
                    Il faut mettre
car mysql_fetch_array te sort en fait un array avec des index numériques de 0 à .... et avec des index alpha (les noms des champs de la table)
donc chaque valeur se retrouve deux fois une fois ex:
le code client dans $res[0] et dans $res['codeClt']
hors comme tu fais l'affichage par une boucle foreach sur tous les index du tableau tu les as deux fois
    
                while ($res=mysql_fetch_assoc ($req))
car mysql_fetch_array te sort en fait un array avec des index numériques de 0 à .... et avec des index alpha (les noms des champs de la table)
donc chaque valeur se retrouve deux fois une fois ex:
le code client dans $res[0] et dans $res['codeClt']
hors comme tu fais l'affichage par une boucle foreach sur tous les index du tableau tu les as deux fois