[PHP/Mysql] limiter nbre de résultats

Résolu/Fermé
Nunuxnewby Messages postés 435 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 - 11 nov. 2007 à 12:23
Nunuxnewby Messages postés 435 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 - 12 nov. 2007 à 09:46
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 vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
11 nov. 2007 à 12:44
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 jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 124
11 nov. 2007 à 18:20
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 samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
11 nov. 2007 à 21:53
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 jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 5 février 2010 124
12 nov. 2007 à 09:46
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