Probleme de lecture de table

Résolu
Utilisateur anonyme - 5 mars 2005 à 01:19
 Utilisateur anonyme - 6 mars 2005 à 01:20
Bonjour, j'ai un petit probleme, j'ai mis en place un systeme de
gestion de news, jusque la tout va bien. Le probleme survient lors de
l'affichage d'une seule news avec des liens pour passer à la news
suivante ou la news precedente. En fait je compte id de la news actuel
+ 1 pour afficher la suivante et id news actuel -1 pour la
precedente. Lorsque id news actuel -1 =0 alors pas d'affichage de news
suivante pareil pour id max pas de suivante.

ça me permet de recuperer le nom de la news suivante ou precedente pour l'afficher en tant que liens.

Pour voir l'exemple :

http://chatainsim.jexiste.fr/?page=inc/affich_one_news&id_news=18&border=inc/border



Cela fonctionne bien lorsque les id se suivent et qu'il n'y a pas de "trous" entre elle

si l'id passe de 19 à 21 suite a la suppression d'une news, alors l'affiche bug completement.

Comment faire pour que ça saute les "trous" dans la liste des id ?

Merci

6 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 mars 2005 à 12:50
En faisant une quantité de requêtes énorme (et donc en te faisant dégager du serveur), oui. Sinon, non

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
3
Utilisateur anonyme
5 mars 2005 à 01:20
Le bout de code qui me permet d'afficher les pages :

<hr style="width: 100%; height: 2px;">1er partie :

$nbr_news_page=1;


$result_pages=
mysql_query("SELECT * FROM news ORDER BY id DESC");



$nbr=mysql_num_rows($result_pages);



$nbr_page=$nbr/$nbr_news_page;




if
(!(isset($_GET['debut'])))

{



$_GET['debut']=0;

}



<hr style="width: 100%; height: 2px;">Deuxieme partie :
$id_news_precedent = $_GET['id_news']+1;

$id_news_suivant = $_GET['id_news']-1;

//on recupere le dernier id de la table

$req2="select id from news order by id desc limit 1";

$res2=mysql_query($req2);

$idmax2=mysql_result($res2,0);




/*if
($nbr_page>1)

{



if ($_GET['debut']>=$nbr_news_page)



{



$prec=$_GET['debut']-$nbr_news_page;*/





//$verif_photo = mysql_num_rows ($read);







if ("$_GET[id_news]" != "$idmax2")
{



$read_name = mysql_query("SELECT * FROM news WHERE
id=$id_news_precedent");



while ($Ligne_name = mysql_fetch_array ($read_name))
{



echo"<<
$Ligne_name[titre],

\"; }

}

else

{

echo\"<table align='center' width='75%'
cellpadding='0' cellspacing='0' border='0' bordercolor='#cccccc'
bgcolor='#CC3333'>----
,

\";

}

if (\"$id_news_suivant\" != '0') {

$read_name = mysql_query(\"SELECT * FROM news WHERE
id=$id_news_suivant\");

while ($Ligne_name = mysql_fetch_array ($read_name))
{

echo\"$Ligne_name[titre]
>>, </td>\"; }}

else

{

echo\", \";

}

echo"
";

//}
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 mars 2005 à 10:33
Salut,



comment savoir si ta base de données à un trou ?!



tu ne peux pas sans des requêtes, etc... Bref c'est trop gourmand.
Repenses la conception de ta base de données ou réinsère les
enregistrements :-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Utilisateur anonyme
5 mars 2005 à 12:11
Y aurait-il une solution qui prendrait simplement la ligne suivante,
peu importe si il y a un "trou" et recupererait le titre de la new ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
5 mars 2005 à 13:31
Ok merci bien ! je vais donc chercher une autre solution !
0
Utilisateur anonyme
6 mars 2005 à 01:20
Comment pourrais-je faire un systeme de page ?

Une News suivante qui ammene a la news suivante et news precedente qui ammene a la news precedente.

Mais je ne vois pas comment faire ...

Si quelqu'un a une idée !

Merci

0
Rejoignez-nous