Version complète: sur le forum Webmaster Hub : Deux requêtes étranges.
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
DJsmileyus
Bonjour à tous ! smile.gif

Je souhaiterais faire une requête MySQL assez bizarre mais je ne connais pas la méthode :
- La première est de sélectionner un enregistrement sur deux. Donc n'afficher que les enregistrement 1, 3, 5, 7, ...
- La seconde est de sélectionner uniquement le premier et le dernier enregistrement.
A noter qu'il n'y a pas d'ID ou d'AUTO INCREMENT dans la table de données en question.

J'ai déjà demandé de l'aide sur un autre salon mais personne n'avait la solution ... j'espère que quelqu'un pourra m'aider ici.

Merci d'avance. smile.gif
iNCiTE Web
Comment sont classés les enregistrements ? c'est la valeur d'un champ qui dit si la ligne est paire ou impaire ?
Car si tu n'as rien de cela, tu n'auras jamais les mêmes résultats, et tout sera chamboulé si tu ajoutes des enregistrements...

Sinon il suffit dans une boucle de ne sélectionner qu'une ligne sur deux, à ma connaissance on ne peut pas le faire directement en SQL.
Pour le premier, avec un LIMIT 1 mais pour ça il faut pouvoir les trier sur un champ donné. Pour le dernier, même chose mais avec un ORDER BY champ DESC et même remarque que précédemment.
C'est quoi comme données ?
DJsmileyus
Salut et merci d'avoir répondu.

Pour faire simpliste, on peut prendre comme exemple une table à deux entrées : "text" ; "timestamp".
L'idéal serait d'ordonner la table par le timestamp, et donc de sélectionner un élement sur deux. Est-ce possible ?

Merci d'avance. smile.gif
iNCiTE Web
CODE
$sql = "SELECT champ FROM table ORDER BY champ_timestamp";
$id_sql = mysql_query(^sql);
$i=0;
while ( $row = mysql_fetch_array($id_sql) ) {
$i++;
if ( $i == 0 )
   $premier = $row["champ"];
if ( $i == mysql_numrows($id_sql) )
   $dernier = $row["champ"];
if ( $i%2 == 0 )
   $aListe[] = $row["champ"]
}


$aListe est le tableau qui contient les enregistrements pairs.
En sachant que si tu rajoutes un enregistrement au milieu, ça décale tout !
DJsmileyus
Ca fonctionne parfaitement ! Merci bien pour ton aide. smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.