colonnes dynamiques

Eléphant du PHP | 440 Messages

03 juin 2009, 16:29

finalement, j'avais bien compris :lol:

mais dans le cas présent, on met d'abord limit 0,4 pour afficher les 4 premiers enregistrements.
Pour passer en page 2, on mettrait limit 5,8. Mais les pages d'après ??
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

03 juin 2009, 16:32

Du tout, la requête reste la même. C'est ton script d'affichage page par page qui s'occupe du reste.

Un conseil, lit bien les tutos sur l'affichage page par page avant de continuer sinon tu ne comprendras pas. Après lecture, je pense que tu auras une idée beaucoup plus claire et précise du fonctionnement, et là si tu as des soucis revient vers nous.

Eléphant du PHP | 440 Messages

03 juin 2009, 17:54

Quelque chose m'échappe. Dans le premier code, la ligne
$req = "SELECT * FROM baskets where validation=1 LIMIT 0,4"; 
signifie que l'on demande l'affichage des 4 premiers enregistrements.

Les suivants s'affichent où et quand ?
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

03 juin 2009, 18:31

As-tu lu le tuto http://www.phpdebutant.org/article84.php en détail...?

ViPHP
AB
ViPHP | 5818 Messages

03 juin 2009, 19:34

Quelque chose m'échappe. Dans le premier code, la ligne
$req = "SELECT * FROM baskets where validation=1 LIMIT 0,4"; 
signifie que l'on demande l'affichage des 4 premiers enregistrements.

Les suivants s'affichent où et quand ?
Hum... je t'ai donné le lien une première fois, et c'est la quatrième fois que charabia te le rappelle... :roll:

Eléphant du PHP | 440 Messages

03 juin 2009, 19:42

ok. Donc c'est le code du "page suivante" qui s'occupe du reste ! Je regarde ça en détail.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
AB
ViPHP | 5818 Messages

03 juin 2009, 20:21

...Je regarde ça en détail.
Ah ça c'est une idée qu'elle est bonne :wink:
Je précise qu'en détail ça veut dire aussi "en détail du début à la fin" :wink:

Eléphant du PHP | 440 Messages

04 juin 2009, 09:42

2e jour !
Après avoir tout lu et compris l'esprit général, j'ai repris mon code :
<?php
 $link = mysql_connect("host", "base", "pass");
 mysql_select_db("base") or die("Impossible de se connecter à la base de données");
?>
<?php
//=========================================
// initialisation des variables 
//=========================================
// on va afficher 4 résultats par page.
$nombre = 4;  
// si limite n'existe pas on l'initialise à zéro
if (!$limite) $limite = 0; 
// on cherche le nom de la page.    
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts["baskets"];

//=========================================    
// requête SQL qui compte le nombre total 
// d'enregistrements dans la table.
//=========================================
$select = 'SELECT count(id) FROM baskets';
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
    
//=========================================
// vérifier la validité de notre variable 
// $limite;
//=========================================
$verifLimite= verifLimite($limite,$total,$nombre);
// si la limite passée n'est pas valide on la remet à zéro
if(!$verifLimite)  {
    $limite = 0;
}
//=========================================
// requête SQL qui ne prend que le nombre 
// d'enregistrement necessaire à l'affichage.
//=========================================
$select = 'select * FROM baskets ORDER BY id ASC limit '.$limite.','.$nombre;
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
    
//=========================================    
// si on a récupéré un resultat on l'affiche.
//=========================================
if($total) {
    // début du tableau
    echo '<table>'."\n";
        echo '<tr>';
        echo '<td></td>';
        echo '<td></td>';
        echo '</tr>'."\n";
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td align="center"><span class="style1"><strong>'.$row['nom'].'</strong></span></td>';
        echo '<td align="center"><span class="style1">'.$row['presentation'].'</span></td>';
        echo '<td align="center"><span class="style1"><a href="http://'.$row['photo'].'><img src="http://'.$row['photo'].'" width="220" border="0"/></a></span></td>';
        echo '<td align="center"><span class="style1">'.$row['suite'].'</span></td>';
        echo '<td align="center"><span class="style1">'.$row['prix'].'</span></td>';
        echo '<td align="center"><span class="style1">'.$row['paypal'].'</span></td>';
        echo '</tr>'."\n";
    }
    echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);

//=========================================    
// si le nombre d'enregistrement à afficher 
// est plus grand que $nombre 
//=========================================
if($total > $nombre) {
    // affichage des liens vers les pages
    affichePages($nombre,$page,$total);
    // affichage des boutons
    displayNextPreviousButtons($limite,$total,$nombre,$page);
}
?>
Ca bloque au niveau de cette ligne :
$verifLimite= verifLimite($limite,$total,$nombre);
Pourquoi ? Je suis pas assez calé pour comprendre ça. Merci de continuer à me faire progresser. :wink:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Avatar du membre
ViPHP
ViPHP | 3008 Messages

04 juin 2009, 09:48

"ça bloque". Que se passe t-il exactement ? Bloquer est un peu trop généraliste. Tu as une erreur ? Autre chose ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

04 juin 2009, 10:15

// on cherche le nom de la page.    
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts["baskets"];
Juste comme ça, tu saurais me dire à quoi correspond ce petit bout de code ?

Eléphant du PHP | 440 Messages

04 juin 2009, 10:21

Voilà le message :
Fatal error: Call to undefined function: veriflimite() in /homez.22/boutiqueoy/www/test.php on line 49


Quant au bout de code, je suppose qu'il sert à nommer les éventuelles pages suivantes. C'est comme ça que je l'ai compris en tout cas.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Avatar du membre
ViPHP
ViPHP | 3008 Messages

04 juin 2009, 10:25

Le hic c'est que ce que tu "crois" comprendre n'est pas toujours forcément bon et tu dois creuser par toi-même plus que ça.

Je te renvoie sur la doc : http://fr.php.net/pathinfo

Quant à la fonction, "Call to undefined function" ne t'interpelle pas plus que ça ?

Eléphant du PHP | 440 Messages

04 juin 2009, 10:41

si je comprends bien, il fallait laisser "basename".

Quant à être interpellé .... quelle fonction n'est pas définie ??

Encore une fois, si je comprends l'esprit, je ne parle pas suffisamment la langue pour en comprendre toujours la syntaxe.
J'essaie mais il me manque des bases !!
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

04 juin 2009, 10:54

Quand tu vois une syntaxe que tu n'arrives pas à comprendre, va sur google et fait une recherche ou dans la documentation PHP. C'est très bien expliqué comme tu peux le voir. Surtout ne pas recopier sans comprendre.

Pour la fonction, quand tu vois qu'elle n'est pas définie c'est que...? C'est qu'elle n'existe pas tout simplement.

Eléphant du PHP | 440 Messages

04 juin 2009, 11:07

$verifLimite= verifLimite($limite,$total,$nombre);
d'abord, cela vient du tuto. Si on peut pas si fier ...
Ensuite les variables sont définies avant. Donc qu'est-ce qui n'existe pas ? Est-ce que "verifLimite" n'est pas une fonction qui existe ?
Débutant complet en php/mysql. Merci pour votre aide.