j'utilise une limite sur mes requetes mysql pour ne sortir que les lignes m'interressant.
Ca marche pour la premiere page, mais toutes les autres pages affiche tout mon tableau. Seul la premiere et la derniere prennent en compte la limite de ma requete.
Pourtant, si je teste ma requete sur les pages centrales, celle est bonne:
Requete=SELECT * FROM Auteurs Limit 10,20...SELECT * FROM Auteurs Limit 20,30...SELECT * FROM Auteurs Limit 30,40.......
Je ne comprend pas trop pourquoi.
Mes pages:
-- Formulaire:choix de la table avec un champ caché Submit pour initialiser ma variable $position.
-- on tombe sur DecoupResult.php que voici:
<?php
require_once ("Connect.php"); contient mes parametres de connexion
require_once ("Connexion.php");fonction de connexion a ma base
require_once ("ExecRequete.php");fonction de recherche dans ma base
require_once ("AfficheResultat.php");affichage des resultats dans un tableau entierement dynamique
define ("TAILLE_GROUPE", 10);
$connexion=connexion(NOM,PASSE,BASE,SERVEUR);
if (isSet ($_POST['submit']))
{
$position=0;
$fin=$position+TAILLE_GROUPE;
determine la Table selon bouton choisi je n'en ais mis qu'une pour simplifier
if (isSet ($_POST['Auteur']))
{
$Table="Auteurs";
}
else
{
$position = $_GET['position'];
$Table = $_GET['Table'];
$fin = $position+TAILLE_GROUPE;
}
Compte Total de Ligne
$qte=ExecRequete("SELECT * FROM $Table", $connexion);
$TotalLigne= mysql_num_rows ($qte);
Determination et Execution de la requete$Requete="SELECT * FROM $Table Limit $position,$fin";
$resultat=ExecRequete($Requete, $connexion);
Titre et lien ajouter dans la base
echo "<p><H3 ALIGN='Center'>Table Auteur<BR><BR>";
echo "<A HREF = > Ajouter un auteur </a><BR>";
Lien page precedente
if ($position >= TAILLE_GROUPE)
{
$avant=$position - TAILLE_GROUPE;
$fin=$position+TAILLE_GROUPE;
$NomTable=$Table;
$Requete="SELECT * FROM $Table LIMIT $position,$fin";
$RequeteCode= urlencode($Requete);
echo "<A HREF ='DecoupResult.php?fin=$fin&position=$avant&Table=$NomTable'>".
"voir les ". TAILLE_GROUPE. " lignes precedentes</A><BR>\n";
}
Lien page suivante
if ($position + TAILLE_GROUPE < $TotalLigne)
{
$apres=$position + TAILLE_GROUPE;
$NomTable=$Table;
echo "<A HREF ='DecoupResult.php?position=$apres&Table=$NomTable'>".
"voir les ". TAILLE_GROUPE. " lignes suivantes</A><BR>\n";
}
affichage des resultats
AfficheResultat ($resultat, $position, TAILLE_GROUPE);
?>
Voici le code d'affichage (j'en suis assez fier):<?php
require_once("ExecRequete.php");
Function AfficheResultat ($resultat, $position, $nbrLignes)
Cette fonction fais un tableau, y insere une entete avec les attributs et les valeurs pour ces resultats
{
entete tableau
echo "<TABLE ALIGN='center' BORDER='1'>\n";
$nbAttr = mysql_num_fields ($resultat);
echo "<TR>\n";
placement Nom Attributs
for ($i=0; $i<$nbAttr; $i++)
echo "<TH>". mysql_field_name ($resultat, $i)."</TH>\n";
echo "<TH>Modifier</TH>\n<TH>Supprimer</TH>\n</TR>\n";
Remplissage
while ($tabAttr = mysql_fetch_row ($resultat))
Je me demande si ce n'est pas cette boucle qui me pose probleme, mais j'ais beau bidouiller rien ne marche
{
echo "<TR>";
for ($i=0; $i<$nbAttr; $i++)
{
echo "<TD>".$tabAttr[$i]."</TD>";
}
echo "</TR>\n";
}
}
?>