Bonjour, je débute en php et j'ai un problème que j'arrive pas a régler.
j'ai une bases de données avec 2 tables qui sont reliée
la 1ére contient tout mes produits et la seconde contient les type de produits.
j'ai voulu afficher mes produits dans un tableau avec 4 colonnes et 2 lignes et une barre de navigation pour l'affichage page par page, sa fonctionne parfaitement comme je veux voila le screen
[URL=http://img267.imageshack.us/i/aperuresult.jpg/]

[/URL]
mon probléme c'est que lorsque je souhaite afficher mes produits par types sa fonctionne mais j'ai des erreurs du genr
" Warning: mysql_result() [function.mysql-result]: Unable to jump to row 3 on MySQL result index 6 in "....
pour être encore plus claire voila le screen
[URL=http://img842.imageshack.us/i/resultaffichagetype.jpg/]

[/URL]
et voila mon code
[code]
<?php
require_once("connexionMysql.inc.php");
/* Paramètres modifiables */
$stringQueryCount = "SELECT COUNT(*) FROM produits;"; // A adapter à votre table (on peut ajouter une close WHERE)
if(isset($_GET['type_produit']))
$stringQueryToShow="SELECT p.photo, p.nom_produit, p.description, p.prix, p.date, t.type FROM produits as p, type_produit as t WHERE p.type_produit=t.id and type_produit=".$_GET['type_produit'] ;
else
$stringQueryToShow="SELECT p.photo, p.nom_produit, p.description, p.prix, p.date, t.type FROM produits as p, type_produit as t WHERE p.type_produit=t.id";
$nbLines = 2; // Nombre de ligne par page
$nbColumns = 4; // Nombre de colone par page
/* Récupération du nombre de rows */
$query_getCountMembers = mysql_query($stringQueryCount);
$query_getCountMembers = mysql_fetch_array($query_getCountMembers);
$query_getCountMembers = $query_getCountMembers['COUNT(*)'];
/* Récupération des rows dans la table */
$query_getMembers = mysql_query($stringQueryToShow);
/* Calcul du nombre de page à afficher*/
$nbItemByPage = $nbLines*$nbColumns;
// On calcul le reste de la division par le nombre d'entrée dans la table et le nombre d'élément qu'on veut afficher par page
$numberOfPages = $query_getCountMembers % $nbItemByPage;
if($numberOfPages>0)
// Si notre reste est supérieur à 0
{
// On calcul le nombre à ajouter pour avoir un multiple du nombre d'élément par page
$numberOfPages = $nbItemByPage - $numberOfPages;
}
// On termine :(le nombre d'entré + le nombre à ajouter pour avoir notre multiple) / le nombre d'élement par page
$numberOfPages = ($query_getCountMembers + $numberOfPages)/$nbItemByPage;
//---requete du menu de selection type produits---//
$requete2="SELECT id,type FROM type_produit ";
$resultat2=mysql_query($requete2);
?>
<?php
/* Creation des tableaux */
$partNumber = 1; // On initialise cette variable pour nommer les div : Part1, Part2, etc.
for($min = 0; $min < $query_getCountMembers; $min = $min+$nbItemByPage)
{
// On commence par créer une div contenant un tableau. Chaque fois qu'on reviendra dans la boucle
// une nouvelle div et un nouveau tableau seront créés. Notre fonction javascript modifiera la propriété
// CSS Display pour afficher ou non le tableau choisi
// Vous pouvez modifier la WIDTH dans <table width="100%"> par une autre valeur de votre choix
echo '
<div id="Part'. $partNumber .'" style="display:none;">
<table width="100%">
';
// On incrémente la variable $partNumber pour afficher un nouveau numéro lorsqu'on repasse dans la première boucle for
$partNumber++;
for($a=$min; $a<($min+$nbItemByPage); $a++)
// La seconde boucle for permet de gérer la création de nos lignes en fonction du paramètre $nbLines
{
echo '<tr>';
for($b=1; $b<=$nbColumns; $b++)
// La troisième boucle for permet de gérer la création de nos colones en fonction du paramètre $nbColumns
{
if($a >= $query_getCountMembers)
// Si on a dépassé le nombre d'élément contenu dans la table ouvre et ferme nos balises <td> pour uniformiser le tableau
// Ce qui arrivera si $query_getCountMembers n'est pas un multiple de $nbItemByPage
// N.B. : Des lignes entières vides ne prennent pas d'espace sur la page web.
{
echo '<td></td>';
}
else
{
echo '
<td>';
/* Affichage personnalisé de vos données récupérées*/
// Dans cette partie vous choisissez comment va être affiché les éléments dans le tableau.
// La condition principale pour afficher correctement vos éléments est d'utiliser la syntaxe suivante :
// --> mysql_result($query_getMembers, $a, 'nom_de_votre_colone')
// !!! NE MODIFIEZ RIEN D'AUTRE QUE LE PARAMETRE 'nom_de_votre_colone' !!!
///Exemple :
echo '<p>';
echo mysql_result($query_getMembers, $a, 'nom_produit');
echo '</p>';
echo '<img src="images/';
echo mysql_result($query_getMembers, $a, 'photo');
echo '" alt="" width="120" height="90" align="center" id="2" />';
echo '<p>';
echo mysql_result($query_getMembers, $a, 'description');
echo '</p>';
echo '<p>';
echo mysql_result($query_getMembers, $a, 'prix');
echo '</p>';
echo'
</td>
';
if($b < $nbColumns)
// On incrémente manuellement $a car si $b est inférieur aux nombre de colone à afficher dans le tableau
// $a ne repasse pas la seconde boucle for
{
$a++;
}
}
} // On ferme la troisième boucle for
echo '</tr>'; // On ferme la balise <tr> pour revenir à la ligne
} // On ferme la seconde boucle for
// On ferme notre tableau ainsi que la div associé
echo '
</table>
</div>';
}// On ferme la première boucle for
if($numberOfPages>1)
{
echo 'Pages'; // Affiche le mot page
for($a=1 ; $a<=$numberOfPages; $a++)
/* On affiche tout les liens et on applelle notre fonction javascript sur chaque lien */
{
echo '
<a id="anchor'.$a.'" href="#'.$a.'" onClick="onPartChanged('.$a.','.$numberOfPages.')"/>'.$a.'</a>
';
if ($a<$numberOfPages) echo ' - ';
}
echo '<br />'; // L'indispensable saut de ligne
}
?>
</body>
</html>
[/code]
voila j'espère que quelqu'un aurais la gentillesse de m'aider résoudre ce probléme