Inverser l'affichage d'une liste

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Inverser l'affichage d'une liste

par micetf » 15 juil. 2009, 15:28

J'opterais plutôt pour :
array_reverse($listings); 
listings avec un s.
C'est ce tableau qui contient la liste des annonces.
Fred

par narcisse » 15 juil. 2009, 12:03

array_reverse() est native php, tu as mal du lire la doc.

Avant d'afficher tes petites annonces, tu fais :

Code : Tout sélectionner

array_reverse($listing);
Ca devrait normalement régler ton problème.

par dirtyfruits » 15 juil. 2009, 09:44

Fred,

Merci pour ton conseil. Je viens de me pencher sur le problème. Dans le fichier listing.php j'ai trouvé le code suivant:
function &array_reverse_ref(&$a) {
    $r = array();
    for($i=0, $j=count($a); $i<count($a); $i++, $j--) {
        $r[$i] =& $a[$j-1];
    }
    return $r;
}
Cela correspond à l'une des contributions de la page http://www.php.net/manual/fr/function.array-reverse.php Si je retire cette portion de code l'affichage de la page ne change pas. Et si je remplace ce code par celui-ci par exemple:
<?php
function arrayReverse(&$arr)
{
    $c = count($arr);
    for($i=$c-1;$i>=0;$i--)
    {
        $arr[$c+$i] = $arr[$i];
    }
    $arr = array_slice($arr,$c,$c*2);
}
?> 
Je n'ai pas plus de changement.

Dans la partie de la page au dessus du lanagage html j'ai le code php suivant:
<?php
$listings = array();
$count = 0;
  	foreach (glob("./listings/*") as $filename) {
	    if (is_dir($filename)&&($filename!="./listings/.")&&($filename!="./listings/..")){
	    	$lid = substr($filename, 11);
	    	include "./inc/fill_fields.inc.php";
			$listing["lid"]=$lid;
			//get image, too.
			$mainimage = file_get_contents("./listings/$lid/imagefile.txt");
			$listing["image"]=$mainimage;
			
			$listings["$count"] = $listing;
			$count++;
	    }
	}
?>
J'ai essayé de modifer array=() par array_reverse mais j'obtiens des erreurs. Quel serais le bon code à votre avis?

par micetf » 14 juil. 2009, 12:02

Un petit array_reverse() avant affichage,
ça ne ferait pas ton bonheur ?
Fred

Inverser l'affichage d'une liste

par dirtyfruits » 13 juil. 2009, 16:36

Bonjour,

J'utilise un script de petites annonces que j'ai un peu modifier pour ce qui est de l'apparence et de l'encodage.

A chaque ajout d'une petite annonce celle-ci se voit attribuer un numéro supérieur a la précédente et s'affiche tout en bas de la page. Les produits que ne se vendent pas rapidement reste donc en haut de pages...Je souhaiterais inverser l'ordre de la liste.

Dans un repertoire "inc" ils se trouvent les fichiers qui cree les annonces, redimensionne les images, etc. Le fichier qui attribue les numéros aux annonces est celui-ci:
<?php
 
 // get the next number and increments the holder
 function getnextlistingnumber(){
 	$numberfile = fopen("./listings/listingnumber.txt", 'r');
	$number = fread($numberfile, 1000);
	fclose($numberfile);
	$number++;
 	$numberfile = fopen("./listings/listingnumber.txt", 'w');
 	fwrite($numberfile, $number);
 	fclose($numberfile);
 	return $number;
 }
?>
Un fichier du même dossier se nomme makelistingstring.inc.php , mais il est entièrement vide. Quant au fichier listing.php qui crée la liste en voici le code en question (je peux me tromper):
$listings = array();

$count = 0;

foreach (glob("./listings/*") as $filename) {

if is_dir($filename)&&($filename!="./listings/.")&&($filename!="./listings/..")){

$lid = substr($filename, 11);

include "./inc/fill_fields.inc.php";

$listing["lid"]=$lid;

//get image, too.

$mainimage = file_get_contents("./listings/$lid/imagefile.txt");

$listing["image"]=$mainimage;


$listings["$count"] = $listing;

$count++;

}

}
Tout conseil est le bienvenue, par avance merci,