Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2011, 23h41   #1
 
Homme khmaies guesmi
Étudiant
Inscription : avril 2011
Messages : 63
Détails du profil
Informations personnelles :
Nom : Homme khmaies guesmi
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : avril 2011
Messages : 63
Points : -3
Points : -3
Par défaut affichage des données par page

bonjours;

SVP, je suis débutant en php, j'ai un script php ,dont lequel je veux afficher les données d'un tableau par bloc et avoir un bouton "suivant" et bouton "précédent"
mais le script ne marche pas , je ne sais pas ou se trouve l'erreur
voici le code et merci d'avance.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<html>
<body>
<?php
session_start();
include("connexion.php");
connect($host,$user,$mot_passe,$db_name);
if ( !session_is_registered("authen_user")){
#echo '<META HTTP-EQUIV="refresh" CONTENT="0;URL=index.php?erreur=404">';
#redirection instantanée
header("location:index.php?erreur=404");
 
$select = SELECT id FROM pc ORDER BY  id ASC  LIMIT 50;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
    echo '<table bgcolor="#FFFFFF">'."\n";
 
        echo '<td bgcolor="#669999"><b><u>id</u></b></td>';
        echo '</tr>'."\n";
 
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td bgcolor="#CCCCCC">'.$row['id'].'</td>';
        echo '</tr>'."\n";
    }
    echo '</table>'."\n";
 
}
else echo 'Pas d\'enregistrements dans cette table...';
 
$nombre = 50;  // on va afficher 50 résultats par page.
if (!isset($limite)) $limite = 0; .
 
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['id'];
 
// initialisation des variable suivant et précédent
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
// button "précedent"
if($limite != 0) {
    echo '<form action="'.$page.'" method="post">';
    echo '<input type="submit" value="précédents">';
    echo '<input type="hidden" value="'.$limiteprecedente.'" name="limite">';
    echo '</form>';
}
//button" suivant"
if($limitesuivante < $total) {
    echo '<form action="'.$page.'" method="post">';
    echo '<input type="submit" value="suivants">';
    echo '<input type="hidden" value="'.$limitesuivante.'" name="limite">';
    echo '</form>';                
}
 
}
 
?>
</body>
</html>
pfakhmaies est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 00h15   #2
Futur Membre du Club
 
Femme
futur développeur
Inscription : janvier 2010
Messages : 135
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : Maroc

Informations professionnelles :
Activité : futur développeur

Informations forums :
Inscription : janvier 2010
Messages : 135
Points : 15
Points : 15
essayez de mettre la requête SELECT entre les guillemets
c'est ce que j'ai remarqué au 1er coup

bon courage
wikiele est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/06/2011, 11h19   #3
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

si je peux me permettre quelques petites remarques, il vaudrait mieux que tu mettes les lignes html en dehors du php, je m'explique:

Ce que tu as fait :
Code :
1
2
3
4
5
6
7
 
if($limite != 0) {
echo '<form action="'.$page.'" method="post">';
echo '<input type="submit" value="précédents">';
echo '<input type="hidden" value="'.$limiteprecedente.'" name="limite">';
echo '</form>';
}
Ce qu'il vaudrait mieux faire:
Code :
1
2
3
4
5
6
7
8
9
 
if($limite != 0) {
?>
<form action="'.$page.'" method="post">
   <input type="submit" value="précédents">
   <input type="hidden" value="'.$limiteprecedente.'" name="limite">
</form>
<?php
}
Ensuite je ne sais pas si ton session_start() va marcher car il ne se situe pas au départ de ton code, il est souvent recommandé de le placer au départ de ton code:

Code :
1
2
3
4
5
6
7
 
<?php
session_start();
?>
<html>
.
.
d'ailleur je ne vois pas pourquoi tu utilises un session_start??

Et ensuite il me semble que tu as un erreur au niveau de ta requete, ta limit ne change pas du coup je ne vois pas comment tu vas modifier l'affichage?
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2011, 22h08   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Correction :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?php 
if($limite != 0) {
?>
<form action="<?php echo $page; ?>" method="post">
   <input type="submit" name="(????)" value="précédents" />
   <input type="hidden" name="limite" value="<?php echo $limiteprecedente; ?>" />
</form>
<?php
}
?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h40.


 
 
 
 
Partenaires

Hébergement Web