Bonjour à tous,
Voilà j'ai un petit problème pour afficher ce que j'ai dans ma base de données.
Je vous mets dans le contexte : je stocke dans ma base des infos sur le visiteur en 2 tables :
Table users_ip contient :
ID | IP | Hostname
1 | 10.10.10.10 | nra.10.10.10.10.net
2 | 11.11.11.11 | nra.11.11.11.11.net
Table ip_logs contient :
ID | DATE | HEURE | REF
1 | 15/01/2009 | 8H10 | index.php
1 | 15/01/2009 | 8H12 | index.php
2 | 15/01/2009 | 8H15 | page232.php
2 | 15/01/2009 | 8H16 | index.php
1 | 15/01/2009 | 8H20 | index.php
Comme vous avez du le compendre, lors de la première visite d'un visiteur, j'insère dans ma table users_ip son IP, son HOSTNAME et la table lui attribue un ID en auto_increment. De plus j'insère dans la table ip_logs des infos en prenant soit que l'ID corresponde à l'ID de l'ip dans la table users_ip.
Quand le visiteur revient une deuxième fois, j'ai une fonction qui va vérifier si son ip est déjà présente dans la table, et si elle est déjà là, la fonction va récupérer l'ID de cette IP et ajouter les infos à logs_ip en donnant l'ID de l'IP aux infos.
Vous me suivez ?
Là où ça cloche, c'est quand je veux afficher ces données dans une page.
Je voudrais que ça s'affiche comme tel :
ID SQL : 1
IP : 10.10.10.10
Location : nra.10.10.10.10.net
Visite : le 15/01/2009 à 8H10 en provenance de index.php
Visite : le 15/01/2009 à 8H12 en provenance de index.php
Visite : le 15/01/2009 à 8H20 en provenance de index.php
ID SQL : 2
IP : 11.11.11.11
Location : nra.11.11.11.11.net
Visite : le 15/01/2009 à 8H15 en provenance de page232.php
Visite : le 15/01/2009 à 8H16 en provenance de index.php
Actuellement mon problème c'est que l'affichage est comme tel :
ID SQL : 1
IP : 10.10.10.10
Location : nra.10.10.10.10.net
Visite : le 15/01/2009 à 8H10 en provenance de index.php
Visite : le 15/01/2009 à 8H12 en provenance de index.php
Visite : le 15/01/2009 à 8H15 en provenance de page232.php
Visite : le 15/01/2009 à 8H16 en provenance de index.php
Visite : le 15/01/2009 à 8H20 en provenance de index.php
ID SQL : 2
IP : 11.11.11.11
Location : nra.11.11.11.11.net
Vous aurez donc compris qu'il m'informe bien des visites sous la première IP, mais pour toutes les IP, et il ne m'affiche pas les visites de la seconde ni des autres puisqu'elles sont sous la première...
Voici mon code pour l'affichage :
En gros je ne sais pas où placer ma seconde boucle pour qu'elle affiche les visites pour toutes les IP de la table users_ip en correspondant bien à l'IP =(
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 <?php // Définition de la requête pour ID, IP et HOSTNAME $sql = 'SELECT id,ip,hostname FROM users_ip ORDER BY id'; // Lancement de la requête $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // Seconde requête pour ID, DATE, HEURE et REF $sql2 = 'SELECT id,date,heure,ref FROM ip_logs ORDER BY date,heure'; // Lancement de la requête $req2 = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql2.'<br />'.mysql_error()); // Scan des tuples while ($data = mysql_fetch_array($req)) { echo 'ID SQL :'.$data['id'].'<br />'; echo 'IP :'.$data['ip'].'<br />'; echo 'Location : '.$data['hostname'].'<br />'; while ($data2 = mysql_fetch_array($req2)) { echo 'Visite : '.$data2['date'].' à'.$data2['heure'].'en provenance de : '.$data2['ref'].'<br />'; } } mysql_free_result ($req); mysql_close (); ?>
Si quelqu'un a la solution... Je lui serai reconnaissant
Partager