Aller au contenu

Sélectionner les données entre l'id x1 et l'id x2


Sujets conseillés

Posté

Bonjour,

Je développe actuellement un petit script d'affichage pour un site lui aussi en developpement. Le script est pour le moment tout ce qu'il y a de plus basique : sélection des données dans une table et affichage.

Mes données s'affichent correctement. J'arrive à n'en afficher que 10 grâce à LIMIT.

Mais je souhaite pouvoir n'afficher que les données correspondant aux entrées ayant les numéros d'id x1 jusqu'à x2.

Comment faire pour ne sélectionner qu'une "tranche" ?

Posté

SELECT FROM table WHERE id BETWEEN x1 AND x2 ORDER BY id

sinon pour les 10 premiers

SELECT FROM table ORDER BY id ASC LIMIT 0,10

LIMIT 0,10 signifie à partir du premier (0) , afficher 10 résultats

Pour les 10 suivants

SELECT FROM table ORDER BY id ASC LIMIT 10,10

LIMIT 10,10 signifie à partir du 10e (le premier 10) , afficher 10 résultats

Posté

Merci :)

Sinon je n'arrive pas à récupérer l'id maximal de ma table. Il me semble pourtant que j'applique la bonne méthode :

// Récupération de l'id maximal
$id_max_sql = "SELECT MAX(id) FROM matable WHERE activite='O'";
$id_max_req = mysql_query($id_max_sql) or die('Erreur SQL !<br>'.$id_max_sql.'<br>'.mysql_error());
$id_max = mysql_num_rows($id_max_req);
echo "((( $id_max )))";

Ca me revoit 1 alors que l'id maximal est 429 :nono: ...

Posté
SELECT MAX(id) FROM matable WHERE activite='O'

C'est quoi ce "activite = '0'" ??

En mettant simplement "SELECT MAX(id) FROM matable" ça devrait suffire, non ?

Posté

activite='O' c'est parce que certaines entrées sont offline et je ne veux donc pas les prendre en compte pour mes choses.

J'ai finalement réussi à faire ce que je voulais, mais sans le max(id).

Merci quand même :) !

Posté
Ca me revoit 1 alors que l'id maximal est 429  ...

Ca te renvoie '1', car tu demandes l'id maximal.

Il te renvoie '429' (mais ne l'affiche pas), et quand tu lui demandes le nombre de lignes (mysql_num_rows) il t'affiche 1 ligne (celle qui comporte le résultat '429' )

Il aurait fallut, au lieu de mettre :

$id_max = mysql_num_rows($id_max_req);

mettre :

$row = mysql_fetch_array$id_max_req);

et afficher ainsi ensuite :

echo $row['MAX(id)'];

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...