Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1072 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  id a l'avance

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

id a l'avance

n°1811967
kaking
Posté le 14-11-2008 à 11:42:02  profilanswer
 

bonjour tous le monde....
 
voila, j'ai une bdd et une table 'clients'....je voudrais afficher le champs 'contact' et je voudrais savoir s'il etait possible d'afficher tous les contacts -a l'aide d'une boucle while- comme ceci
 
Martin-lien-
John-lien-
Jason-lien-
Bobby-lien-
 
 
et que si je clique sur -lien-, ca me retourne a la meme page AVEC l'id du prochain nom....du genre si je clique sur le lien Martin, j'obtiens l'id de John et ainsi de suite....
 
merci beaucoup!  :)

mood
Publicité
Posté le 14-11-2008 à 11:42:02  profilanswer
 

n°1811969
skeye
Posté le 14-11-2008 à 11:44:41  profilanswer
 

je ne vois pas le problème.


---------------
Can't buy what I want because it's free -
n°1811975
kaking
Posté le 14-11-2008 à 11:49:40  profilanswer
 

?
 
 
et bah comment faire pour recuperer l'id du prochain contact avec une boucle while?
 
moi je fais  
while($b=mysql_fetch_array($resultat_sql ))
{
 
$id=$b["id"];
 
$contact=$b["contact"];
 
echo $contact.'<br>';
}
ce qui affiche une liste de contact... et je voudrais qu'a chaque contact, je puisse recuperer l'id du PROCHAIN contact qui suit le contact actuel....
d'ou probleme!
 
donc si j'ai cette liste de contact qui s'affiche,  
Martin-lien-  
John-lien-  
Jason-lien-  
Bobby-lien-  
 
je veux que le lien a cote de martin porte l'id de john, le lien a cote de john porte l'id de jason, le lien a cote de jason porte l'id de bobby etc...


Message édité par kaking le 14-11-2008 à 11:52:02
n°1811978
omega2
Posté le 14-11-2008 à 11:54:17  profilanswer
 

kaking > Quelque soit ton niveau, tu es surement capable de trouver la solution par toi même en décomposant le problème :
1) Dans la boucle, comment est ce que je repère le contact actuel
2) une fois trouvé le contact actuel, comment puis je faire pour indiquer à la boucle que le prochain est celui recherché
 
Une fois que t'auras répondus à ces deux questions t'auras ta solution et tu te demanderas pourquoi tu n'y avais pas pensé plus tôt.

n°1811980
kaking
Posté le 14-11-2008 à 11:56:35  profilanswer
 

omega2 a écrit :

kaking > Quelque soit ton niveau, tu es surement capable de trouver la solution par toi même en décomposant le problème :
1) Dans la boucle, comment est ce que je repère le contact actuel
2) une fois trouvé le contact actuel, comment puis je faire pour indiquer à la boucle que le prochain est celui recherché
 
Une fois que t'auras répondus à ces deux questions t'auras ta solution et tu te demanderas pourquoi tu n'y avais pas pensé plus tôt.


 
...c'est impossible a faire, c'est ca?  :??:

n°1811986
omega2
Posté le 14-11-2008 à 12:08:38  profilanswer
 

omega2 a écrit :

kaking > Quelque soit ton niveau, tu es surement capable de trouver la solution par toi même ...


kaking a écrit :


 
...c'est impossible a faire, c'est ca?  :??:

Il me semblait pourtant avoir dit clairement que c'est possible.
 
Je sais bien qu'on utilise facilement l'ironie par moment mais sans smilie, c'est rarement le cas. ;)

n°1812031
kaking
Posté le 14-11-2008 à 13:55:34  profilanswer
 

mmmmmh.... la vraiment je vois pas -a mon avis je n'est pas ete assez explicite pour vous decrire mon probleme....
 
 
reprenons :
 
je fais de l'ajax : quand je clique sur un contact, hop une fiche apparait au milieux de l'ecran avec tous les details du contact en question.... et je voudrais que sur cette fiche il y ai le lien suivant pour que quand je clique dessus, la fiche correspondant au contact suivant apparaissent a la place de la fiche actuelle....
 
alors voila le code qui affche la page appelée via ajax :

Code :
  1. <script type="text/javascript">
  2. function makeRequest2(id) {
  3.         var xhr;
  4.         if(window.XMLHttpRequest || window.ActiveXObject) {
  5.                 if(window.XMLHttpRequest) {
  6.                         xhr = new XMLHttpRequest();
  7.                 }
  8.                 else {
  9.                         try {
  10.                                 xhr = new ActiveXObject("Msxml2.XMLHTTP" );
  11.                         } catch(e) {
  12.                                 xhr = new ActiveXObject("Microsoft.XMLHTTP" );
  13.                         }
  14.                 }
  15.         }
  16.         else {
  17.                 alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest..." );
  18.                 return;
  19.         }
  20.        
  21.         xhr.onreadystatechange = function() {
  22.                 if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {      
  23.       document.getElementById("apDiv21" ).innerHTML = xhr.responseText;
  24.       mouseClic('onglet4');
  25.                 }
  26.         }
  27.        
  28.      
  29.         xhr.open("GET", "id_modif.php?id=" + id + "", true);
  30.         xhr.send(null);
  31.        
  32. }</script>
  33. <table><?php
  34. //ma requete est inscrite dans deux tables  
  35. $query=mysql_query("select * from req" )or die(mysql_error());
  36. $fetchy=mysql_fetch_array($query)or die(mysql_error());
  37. $resultat_sql=mysql_query($fetchy['req1'].' '.$fetchy['req2'])or die(mysql_error());
  38. while($b=mysql_fetch_array($resultat_sql ))
  39. {
  40. ?><tr>
  41.   <td><input type="button" onclick="<?php echo 'makeRequest2(\''.$b['id'].'\')';?>" value="<?php echo $b["contact"];?>" />
  42.  
  43.   <td><font size="-1"><?php echo $b["adresse"];?></font></td>
  44.   <!-- et y a encore plein d'autres cellules-->
  45. </tr> <?php
  46. }
  47. ?>
  48. </table>
  49. <br>
  50. <table border="1" bgcolor="#ccccff"><tr><td> <div id="apDiv21"></div></td></tr></table>


 
et ca c'est la page appelée, la page id_modif, qui s'affiche si on appuie sur le bouton contact :

Code :
  1. <?php
  2. $i=$_GET['id'];
  3. mysql_connect("localhost","root","" );
  4.         mysql_select_db("" );
  5. $a=mysql_query("select * from clients where id='$i'" );
  6.   $b=mysql_fetch_array($a);
  7. ?>
  8. <table border="1" height='378' width="900" bgcolor="#CCFFFF"><th colspan="4" height="23" bgcolor="#CCCCCC" ><?php $cont=$b['contact'];echo $cont;?></th>
  9. <th width="257" bgcolor="#CCCCCC" >BLOC NOTE</th>
  10. <tr><td width="149" height="42" bgcolor="#CCCC99">adresse :</td>
  11. <td width="144" bgcolor="#e7f5fb"></select>
  12.   <input type="text" value="<?php echo $b['adresse'];?>" name="adresse" /></td><!-- et y a encore plein d autres champs-->
  13. <!-- et c est ici que je voudrais mettre un lien 'suivant' permettant d'afficher les
  14. informations de l'id suivant. pour ca, il faut envoyer deux
  15. parametres a la fonction makeRequest2() : l'id du contact sur lequel
  16. on a cliqué ET l'id suivant....mais ca je sais pas comment faire!
  17. ha ouais mais nan! meme comme ca ca sera pas bon because que ca marchera une fois mais la deuxieme fois qu'on appuiera sur 'suivant',
  18. et bah on aura pas l'id suivant vu qu'on aura pas cliqué sur le bouton utilisant la fonction makerequest
  19. je sais pas comment faire...


 
 
et voilou!
 
la ca parait pas aussi simple non? parceque si ca vous parait encore basic ce que je vous  
demande, ca veut dire que j'ai raté une marche et
que je suis une grosse quiche affligeante qui demande humblement votre pardon.
 
'oilou! merci pour ceux qui repondront  :)


Message édité par kaking le 14-11-2008 à 14:08:54
n°1812650
kaking
Posté le 16-11-2008 à 10:03:50  profilanswer
 

J AI TROUVEEEEEEE!!!!!!
apres 2 jours de travail acharnés et de recherche dans les vieux grimoires informatiques, j'ai enfin trouvé la soluce : prendre la requete enregistrée dans la bdd et faire ceci :
 
 

Code :
  1. $i=$_GET['id'];
  2. $query=mysql_query("select * from req" )or die(mysql_error());
  3. $fetchy=mysql_fetch_array($query)or die(mysql_error());
  4. $were=$fetchy['req1'];
  5. //echo $were;
  6. if ((preg_match("#WHERE#", $were)) ||(preg_match("#where#", $were)) )
  7. {
  8. $where='AND id > '.$i.' LIMIT 0,1';
  9. }
  10. else
  11. {
  12. $where='where id > '.$i.' LIMIT 0,1';
  13. }
  14. $query=mysql_query("select * from req" )or die(mysql_error());
  15. $fetchy=mysql_fetch_array($query)or die(mysql_error());
  16. //echo $fetchy['req1'].' '.$where;
  17. $resultat_sql=mysql_query($fetchy['req1'].' '.$where)or die(mysql_error());
  18. $gb=mysql_fetch_array($resultat_sql );
  19. $idsuiv=$gb['id'];

et 'oilou!
 
ca me donne l'id suivant!
 
merci ! ++

n°1812874
sielfried
Posté le 17-11-2008 à 09:34:39  profilanswer
 

Ça m'a l'air bien compliqué, ton truc. [:petrus75]  
 
Si tu veux l'id suivant c'est que tu veux, pour chaque id, les infos précédentes...


Message édité par sielfried le 17-11-2008 à 09:34:48

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1812877
kaking
Posté le 17-11-2008 à 09:37:43  profilanswer
 

oui mais c est je pense la seule maniere d'avoir l'id suivant alors qu'on est encore dans la boucle-donc que le mysql_fetch_array ne soit pas encore a l'id que je veux selectionner....
 
^^

mood
Publicité
Posté le 17-11-2008 à 09:37:43  profilanswer
 

n°1812882
sielfried
Posté le 17-11-2008 à 09:43:05  profilanswer
 

Et un truc comme ça ?
 

Code :
  1. while ($client = mysql_fetch_object($res)) {
  2.  // Là tu as $client->id et $client_precedent, qui n'est pas définie si t'es sur le premier
  3.  $client_precedent = $client;
  4. }


Message édité par sielfried le 17-11-2008 à 09:45:55

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1812887
kaking
Posté le 17-11-2008 à 09:57:23  profilanswer
 

ha ouais mais pour avoir l'id qui SUIT? pas le precedent mais le suivant?
 
ma methode a l'air bien...

n°1812889
skeye
Posté le 17-11-2008 à 09:58:42  profilanswer
 

kaking a écrit :

ha ouais mais pour avoir l'id qui SUIT? pas le precedent mais le suivant?

 

ma methode a l'air bien...

 

réfléchis 2 minutes...si au lieu d'afficher les infos du courant tu affiches celles du précédent, est-ce que par hasard le courant ne serait pas le suivant de celui qui tu affiches?[:joce]

 

Ta méthode est très très moche.:o


Message édité par skeye le 17-11-2008 à 09:59:19

---------------
Can't buy what I want because it's free -
n°1812890
sielfried
Posté le 17-11-2008 à 09:59:55  profilanswer
 

Dans mon exemple $client->id est bien l'id qui suit $client_precedent. Juste que t'es censé travailler sur $client_precedent au lieu de travailler sur le client sur lequel t'es en train de boucler.
 
edit: ouais, valà. :o


Message édité par sielfried le 17-11-2008 à 10:01:24

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1812905
kaking
Posté le 17-11-2008 à 10:19:00  profilanswer
 

ha ouaiiiiiiiiiiis  :pfff:  
 
bon bon, je m'tais....merci beaucoup, c est sympa,j'ai compris!  :D !


Message édité par kaking le 17-11-2008 à 10:20:24

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  id a l'avance

 

Sujets relatifs
Javascript : Utilisation d'includes dynamiques [Javascript avancé]Livres sur MVC et POO avancé ou un tut sinon
Appel aux pros de GTK et manipulation des images. J'avance pas ![ PHP ] str_replace avancé dans un $texte
Moteur de recherche avancécompteur de téléchargement avancé
C avancé, bibliothéques à connaitre.[C#/résolu] type template avec méthodes connues par avance
[algo] dll -------- merci d'avance pour l'aide -----------[C#] Création d'un contrôle avancé
Plus de sujets relatifs à : id a l'avance


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR