[PHP/Mysql] limiter nbre de résultats

Résolu
Nunuxnewby Messages postés 435 Date d'inscription   Statut Contributeur Dernière intervention   -  
Nunuxnewby Messages postés 435 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Voilà j'ai un petit compteur sur mon site, les adresses ip sont stockées dans une table mysql, j'aimerais limiter le nombre d'adresses que j'affiche...

Voilà le code
<table width="500" align="center">
	<thead>
		<tr>
			<th>IP du visiteur</th>
			<th>Date d\'entrée</th>
			<th>En ligne ou pas</th>
		</tr>
	</thead>';
	$qry = mysql_query("SELECT * FROM base_visitors ORDER BY entry_time DESC"); 
	$cpt = 0;
	while ($row = mysql_fetch_array($qry))
	{
	$ip = $row['ip_adress'];
	$date = date("d/m/Y H:i:s",$row['entry_time']);
	$res = mysql_query("SELECT count(*) FROM base_online WHERE session_id='".$row['session_id']."'");
	if ( mysql_result($res,0,'count(*)'))
	{$online = 'ONLINE';} else  {$online = 'OFFLINE';} 				
	echo'
		<tbody>
		<th >',$ip,'</th>
		<td >',$date,'</td>
		</tbody>';
		$cpt++;
	}
	echo '
	</table>
';


Je ne sais pas, étant débutant, comment intégrer un code du genre
while ($cpt=0; $cpt<100; $cpt++)
de sorte à ce qu'il n'affiche que les 100 premières adresses sur les 2000 stockées en base de données!

le fait qu'il y ait un $cpt++ à la fin fait qu'il va aller jusqu'au bout de la table.. c'est là mon problème!


Merci de votre aide.
A voir également:

4 réponses

s.spark Messages postés 2485 Date d'inscription   Statut Contributeur Dernière intervention   618
 
Salut,

Regarde l'Etape 4 : correction

Dans le code regarde l'Etape 2

https://openclassrooms.com/fr/courses
0
Nunuxnewby Messages postés 435 Date d'inscription   Statut Contributeur Dernière intervention   124
 
Je te remercie pour le lien qui m'a énormément aidé!

<table width="500" align="center">
	<thead>
		<tr>
			<th>IP du visiteur</th>
			<th>Date d\'entrée</th>
			<th>En ligne </th>
		</tr>
			</thead>';
$qry = mysql_query("SELECT * FROM base_visitors ORDER BY entry_time DESC"); 
	for ($i = 0 ; $i <= 50 ; $i++)
	{
	$row = mysql_fetch_array($qry);
		{
			$res = mysql_query("SELECT count(*) FROM base_online WHERE session_id='".$row['session_id']."'");
			if ( mysql_result($res,0,'count(*)'))
			{$online = 'ONLINE';} else  {$online = 'OFFLINE';}
			echo'
			<tbody>
			<th >',$row['ip_adress'],'</th>
			<td >',date("d/m/Y H:i:s",$row['entry_time']),'</td>
			<td>',$online,'</td>
			</tbody>';
		}
	}
echo '
</table>


ça marche!!!
0
Posotaz Messages postés 489 Date d'inscription   Statut Membre Dernière intervention   225
 
Sinon on peut aussi optimiser au niveau SQL en introduisant la clause LIMIT à la requête. Mais il faut faire attention avec le LIMIT parce que si la requête est un peu plus complexe qu'un simple SELECT dans une seule table, on obtient des résultats surprenants.

http://www.commentcamarche.net/forum/affich 187710 php mysql limit dans select

(le lien fourni dans cette discussion est fort intéressant)
0
Nunuxnewby Messages postés 435 Date d'inscription   Statut Contributeur Dernière intervention   124
 
Merci beaucoup!

En effet... très et LIMIT très très intéressant! ;)
Un lien que je garde sous la main.

Plus j'apprend moins j'en sais!


----
Perdu sur l'Internet? Pas de panique! On va vous aider!!!
* <-------Vous êtes ici!
0