PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 15-06-2009 02:32:43

pierre-luc
Membre
Inscription : 17-05-2009
Messages : 17

affichage page par page, problème depuis que j'ai changer pour PDO

bonjour,

j'ai des problèmes avec l'affichage page par page, depuis que j'ai changer pour PDO. En fait les commentaires s'affiche, mais apres ca plante. Je peux pas vous donner de message d'erreur, car on dirait que mon hebergeur ne les affiches pas.

<?php


$nombre = 10;
if (!isset($limite)) $limite = 0;
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['basename'].'?nom='.$_GET['nom'];

$select = $db->prepare("SELECT count(id) FROM commentaire WHERE nom = ?");
$select->execute(array($_GET['nom']));
$row = $select->fetchall(PDO::FETCH_NUM);
$total = $row[0];

$verifLimite = verifLimite($limite,$total,$nombre);

if(!$verifLimite)  {
    $limite = 0;
}

$select = $db->prepare('select id,commentaires,proprete,acceuil,confort,etat_hotel,emplacement,usager,date,sujet,moyenne FROM commentaire WHERE nom = ? ORDER BY date ASC limit '.$limite.','.$nombre);
$select->execute(array($_GET['nom']));

$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;

if($total) {
while($row = $select->fetch()) {

echo '<table><tr><td width="300">';

echo $lang_description['ECRIT'].$row['usager'];
echo '</td></tr><tr><td><b>'.$row['sujet'].'</b><br/>  '.$row['date'];
echo '</td><td valign="top">'.$lang_description['NOTE'].': <font color="#CC9900">'.$row['moyenne'].'/5</font></td></tr>';
echo '<tr><td colspan="3" width="700"><br/>'.$row['commentaires'];
echo '</td></tr></table>';
echo '<center><hr width="300"/></center>';
}
}
else

echo $lang_description['AUCUN'];

if($limite != 0) {
    echo '<a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a>';
}
if($total > $nombre) {

   
    affichePages($nombre,$page,$total);
   
   
}
if($limitesuivante < $total) {
    echo '<a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a>';
}

?>

Hors ligne

#2 15-06-2009 07:37:34

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : affichage page par page, problème depuis que j'ai changer pour PDO

Saluton,
Pour des raisons que je n'ai pas le temps d'expliquer, essayes en ajoutant ce code en ligne 23 :

$select->closeCursor();
$select = null;

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 15-06-2009 23:53:31

pierre-luc
Membre
Inscription : 17-05-2009
Messages : 17

Re : affichage page par page, problème depuis que j'ai changer pour PDO

ca fonctionne pas, mais est-ce que ca pourrais venir de ce bout la

$select = $db->prepare('SELECT count(id) FROM commentaire WHERE nom = ?');
$select->execute(array($_GET['nom']));
$row = $select->fetchall(PDO::FETCH_NUM);   <---- Pas certain que ce soit bon
$total = $row[0];

Hors ligne

#4 16-06-2009 06:18:19

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : affichage page par page, problème depuis que j'ai changer pour PDO

Je ne crois pas que PHP soit case sensitive, mais la syntaxe de la méthode est fetchAll().
Le temps du développement, tu devrais sortir PDO de son mode silencieux par défaut avec ceci

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 17-06-2009 21:46:30

pierre-luc
Membre
Inscription : 17-05-2009
Messages : 17

Re : affichage page par page, problème depuis que j'ai changer pour PDO

j'ai installer un serveur en local, donc je php m'affiche les erreurs, ce que j'ai pas avec mon hebergeur.

l'erreur que j'ai c'est

Fatal error: Unsupported operand types in C:\wamp\www\include\fonction.inc.php on line 74


function affichePages($nombre,$page,$total) {
        $nbpages = ceil($total/$nombre);       <-------- Ligne 74
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table border = "0" ><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td ><a href = "'.$page.'&limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nombre;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr></table>'."\n";
}
 

c'est quoi qui cloche avec l'operateur de division?

Hors ligne

#6 17-06-2009 21:54:36

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : affichage page par page, problème depuis que j'ai changer pour PDO

fais comme cela[codephp]$nbpages = ceil(($total*1)/($nombre*1));[/code]Si nombre n'est jamais égal à zéro tu ne devrais plus avoir de Fatal error avec ça.
D'autre part je te rappelle l'existence de l'opérateur monoincrémenal ++[code=php]while($numeroPages <= $nbpages) {
        echo '<td ><a href = "'.$page.'&limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nombre;
        $numeroPages++;
        $compteurPages++;
        if($compteurPages == 10) {
                $compteurPages = 1;
                echo '<br>'."\n";
                }
        }[/code]


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 19-06-2009 21:47:34

pierre-luc
Membre
Inscription : 17-05-2009
Messages : 17

Re : affichage page par page, problème depuis que j'ai changer pour PDO

j'ai fait

var_dump($row);

et j'obtien

bool(false)

alors comment règler ce problème?

Hors ligne

#8 20-06-2009 06:58:47

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : affichage page par page, problème depuis que j'ai changer pour PDO

Saurais-tu, honnêtement, à notre place répondre à cette question ?

En remontant dans les posts de ce topic on peut en déduire qu'il s'agit du $row de cette instruction :

while($row = $select->fetch()) {

mais comme on ne sait rien des éventuelles modifications que tu as pu apporter depuis en amont de ce script, il serait présomptueux d'en tirer quelque conclusion que ce soit si, toi-même, censé savoir depuis quelle situation tu nous interpelles sur ton problème, tu t'en trouves désemparé.

Nous avons, tous et chacun, une vie en dehors de PHP Deb avec des préoccupations parfois très preignantes. D'un instant [15-06-2009 03:32:43] à un autre [19-06-2009 22:47:34] nous avons probablement pu évacuer la problématique dans laquelle tu baignes.

Alors, de grâce, pas d'autisme ni de nombrilisme, fais l'effort de poser clairement et complètement les données du problème.

Car, comme me l'a toujours dit mon maître à penser,

Bien poser le problème, c'est souvent le résoudre,
et toujours progresser vers sa résolution.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums