Bonjour,
Je transforme mon site écrit en PHP4 avec Mysql pour le passer en PHP5.5 avec PDO
Dans l'ensemble, je progresse mais je rencontre un problème avec mysql_num_rows et surtout mysql_fetch_row que je n'arrive pas à réécrire en PDO
Voici l'ancien code :
et voici le nouveau que j'ai réécrit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <? elseif ($nbsites>0){ $query="SELECT compteur, title, url, description, mail, DATE_FORMAT(date_ins, '%d-%m-%Y') FROM annuaire_sites WHERE category='$id' AND valid=1 ORDER BY title ASC"; $res_racine = @mysql_query($query,$db); if (mysql_num_rows($res_racine)!=0) { $nbracine=mysql_num_rows($res_racine); $nbpage=ceil($nbracine/10); if ($_GET['page']=="") {$page=1;} for ($i=0; $i<$nbracine; $i++) { $list_racine=mysql_fetch_row($res_racine); if ( ($i>=10*$page-10) and ($i<10*$page) ) { echo "<table class='siteframe' width='100%'>\n"; echo "<tr>\n"; echo "<td valign='top'><a href='".$list_racine[2]."' class='site_links' target='_blank'><b>".$list_racine[1]."</b></a> - <span class='greytext'>".$list_racine[5]."</span><br /><p>".$list_racine[3]."</p><a href='".$list_racine[2]."' class='lien12' target='_blank'>".$list_racine[2]."</a></td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<br />\n"; } } } }
Aucune anomalie mais un problème d'affichage des données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 elseif ($nbsites>0){ $res_racine = $bdd_base->prepare("SELECT COUNT(*) FROM annuaire_sites WHERE category='$id' AND valid=1 ORDER BY title ASC"); $res_racine->execute(); $nb_racine = $res_racine->fetchColumn(); $res_racine->closeCursor(); if ($nb_racine!=0) { $nbracine=$nb_racine; $nbpage=ceil($nbracine/10); if ($_GET['page']=="") {$page=1;} for ($i=0; $i<$nbracine; $i++) { $res_racine2 = $bdd_base->prepare("SELECT compteur, title, url, description, mail, DATE_FORMAT(date_ins, '%d-%m-%Y') FROM annuaire_sites WHERE category='$id' AND valid=1 ORDER BY title ASC"); $res_racine2->execute(); //while ($list_racine = $res_racine2->fetch(PDO::FETCH_NUM)) { $list_racine = $res_racine2->fetch(PDO::FETCH_NUM); if ( ($i>=10*$page-10) and ($i<10*$page) ) { echo "<table class='siteframe' width='100%'>\n"; echo "<tr>\n"; echo "<td valign='top'><a href='".$list_racine[2]."' class='site_links' target='_blank'><b>".$list_racine[1]."</b></a> - <span class='greytext'>".$list_racine[5]."</span><br /><p>".$list_racine[3]."</p><a href='".$list_racine[2]."' class='lien12' target='_blank'>".$list_racine[2]."</a></td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<br />\n"; } //} // pour la boucle while } } }
Sachant que la variable $nbracine vaut 6, cela m'affiche 6 fois la même ligne de données.
Si je rajoute la boucle while mise en commentaire, cela m'affiche 6 fois les 6 lignes de données contenues dans la base
Si quelqu'un peut me guider, je le(la) remercie
Bonne journée
Partager