Probleme d'id ...

LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 7 févr. 2006 à 13:36
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 - 8 févr. 2006 à 14:17
Salut,

j'ai un probleme que je pense avoir identifié,je vs explique:

je fais une requete SQL que j'affiche ds un tableau

mes resultats étant nombreux je fais une requete avec LIMIT

et affiche des liens vers d'autres pages ....



suite a cela j'ai voulu rajouter de l'ajax pr mettre a jour a intervalle regulier mon tableau

et ca marche sur la premiere page

mais si je clique sur un lien d'une autre page au bout du temps imparti l'ajax va mettre a jour mon tableau avec les id

de ma premiere page....

ca doit pas etre tres clair alors je vais mettre du code:

$requete = sprintf("SELECT * FROM shalmlis ORDER BY TIM DESC LIMIT $limit, $enreg_par_pg ");

$reponse = mysql_query($requete, $dbconnect) or die(mysql_error());



$i=0;

$j=1;

$ind=0;

while ($retour = mysql_fetch_array($reponse) )//recupere les lignes de la réponse sql dans un tableau

{

$tablo0[$i]=$retour[0];

$tablo1[$i]=$retour[1];

$tablo2[$i]=$retour[2];

$tablo3[$i]=$retour[3];

$tablo4[$i]=$retour[4];

echo '<tr >

<TD id="id'.$j.'"> ',$tablo0[$i],'</TD>';

$j++;

echo ' <TD id="id'.$j.'"> ',$tablo1[$i],' </TD>';

$j++;

echo ' <TD id="id'.$j.'" style="text-align: left"> ',$tablo2[$i],' </TD>';

$j++;

echo ' <TD id="id'.$j.'"> ',$tablo3[$i],' </TD>';

$j++;

echo ' <TD id="id'.$j.'"> ',$tablo4[$i],' </TD>';

$j++;

echo ' </TR>';

$i=$i+1;



}
pr ma premiere page mes identifiants seront bien de 1 a 106 ds mon cas car 22 resultats par page affiché

et si je clique sur mon lien numéro deux je voudrais que mon 1er <td> ai pr id 107

mais il recommence a 1 jusqu'a 106 du coup qd je fais mon ajax:

for (var i = 1; i<tmp[0]; i++) //tant que il y a des reponses :tmp[0]contient le nbr total de reponse de SQL

{

document.getElementById('id'+i).innerHTML = tmp[i];

}

il ecrase les valeurs par les 106 premieres au lieu de mettre les 107 a 213.....

j'ai essayer de mettre id="id'.$j+$index.'"

mais ca ne marche pas avec index=0

puis a la fin index=index+106;



comment faire ?SVP!

16 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2006 à 13:46
Hello,

y a pas un id dans ta table shalmlis? Parce que si il y a en a un, tu dois utiliser cet id pour les id de tes cellules, et pas un compteur.
Sinon, tu concatènes le numéro de page à tes id de cellules...enfin, y aurait plein de façons de faire.
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
7 févr. 2006 à 13:54
Salut malalam,

non sur cette table il n'y a pas d'id

j'ai essayer de créer une variable $ind et de l'aditionner a $j

mais syntaxiquement c'était pas bon

comment tu ferais toi ?ta concaténation?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2006 à 13:56
id = "id'.$ind.'_'.$j.'"
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
7 févr. 2006 à 14:00
ouais mais ca va pas marcher ca

car mon ajax il

cherche les id de 1 a 1500 ...

ta concaténation c'est pas une addition?
0

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

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2006 à 14:15
Non, c'est une concaténation. Ton Ajax ne devrait pas se baser sur un nombre d'entrées théorique de ta table.
J'ai du mal à piger comment tu fais un update de ta table, au passage, si tu n'as pas d'id...?
A ta place, j'en mettrai un, une clef primaire.
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
7 févr. 2006 à 14:25
la table elle n'est pas fixe et est mise a jour par un autre programme

du coup je ne sais pas combien j'ai de resultats donc de page

alors coté ajax je fais un echo du nombre de resultat ds tmp[0]

et du coup je fais ca
for (var i = 1; i<tmp[0]; i++) //tant que il y a des reponses :tmp[0]contient le nbr total de reponse de SQL

{

document.getElementById('id'+i).innerHTML = tmp[i];

}

et il peut donc y avoir bcp de id

moi je cherche une solution pr que mon id commence a 1+ind

et a chaque fois faire index=index+nbr-resultats par page
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2006 à 14:29
Bon ben id="id'.$ind+$j.'" ?
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
7 févr. 2006 à 14:51
$i=0;

$j=1;

$ind=0;

while ($retour = mysql_fetch_array($reponse) )//recupere les lignes de la réponse sql dans un tableau

{

$tablo0[$i]=$retour[0];

$tablo1[$i]=$retour[1];//on recupere chaque colonnes dans des tableaux

$tablo2[$i]=$retour[2];

$tablo3[$i]=$retour[3];

$tablo4[$i]=$retour[4];

if($i%2==0){

$couleur="#E6E6E6";

$couleur2="#A9FF8F";}

else {

$couleur="#C0C0C0";

$couleur2="#A9FF8F";}

//on affiche chaque colonne dans la table avec une couleur differente pour chaque ligne

echo '<tr bgcolor="',$couleur,'"
onclick="changecolor(this);" onmouseover="if (!clic)
this.style.backgroundColor=\'',

$couleur2,'\'" onmouseout="if
(!clic)
this.style.backgroundColor=\'',$couleur,'\'">

<TD id="id'.$j+$ind.'"> ',$tablo0[$i],'</TD>';

$j++;

echo ' <TD id="id'.$j+$ind.'"> ',$tablo1[$i],' </TD>';

$j++;

echo ' <TD id="id'.$j+$ind.'" style="text-align: left"> ',$tablo2[$i],' </TD>';

$j++;

echo ' <TD id="id'.$j+$ind.'"> ',$tablo3[$i],' </TD>';

$j++;

echo ' <TD id="id'.$j+$ind.'"> ',$tablo4[$i],' </TD>';

$j++;

echo ' </TR>';

$i=$i+1;

$ind=$ind+$enreg_par_pg*5;

}

// Libération des ressources prises par le fetch_array

mysql_free_result($reponse);



si je fais ca ca ne marche pas

il faudrait qu'il effectue $ind=$ind+$enreg_par_pg*5;

que lorsque l'on passe sur une page suivante cad ds mon cas qd $i=21 ou 43 ou 65 etc...
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
7 févr. 2006 à 14:58
en plus je crois qu'il arrive pas a bien interpreter ca:

id="id'.$j+$ind.'"



qd je regarde ds code source généré il me dit

<tr bgcolor="#E6E6E6" onclick="changecolor(this);" onmouseover="if (!clic) this.style.backgroundColor='#A9FF8F'" onmouseout="if (!clic) this.style.backgroundColor='#E6E6E60"> 2006-02-07 14:50:34</TD>0"> 3 </TD>0" style="text-align: left"> HOT___ : COM Problem Watch Dog for PLC Handling
il interprete pas du tout comme il faut
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
7 févr. 2006 à 15:56
malalam

t'abandonnes?

je ne peux pas interferer sur la table

fauit que j'agisse a l'affichage
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2006 à 16:24
Y a quoi dans cette table ? Rien d'unique ?
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
7 févr. 2006 à 16:30
non malheureusement...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2006 à 16:36
De ttes façons, $j+$ind ne va pas être unique non plus...faut trouver un identifiant unique, y a pas le choix, dans ce cas.
Même si j'ai tjrs pas compris comment otn bin's marchait...
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
7 févr. 2006 à 16:50
tu veux comprendre quoi demande moi....

si tu veux jte donne mon script entier mais c'est peut etre un peu lourd...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2006 à 16:58
envoie moi ça en mp...
0
LaTatadu91 Messages postés 968 Date d'inscription jeudi 20 mai 2004 Statut Membre Dernière intervention 26 avril 2013 1
8 févr. 2006 à 14:17
alors mala?

toujours pas d'idées pour mes id?
0
Rejoignez-nous