par
TheKind » 06 juil. 2006, 00:08
Bon, j'ai trouvé une solution plus souple, parce que 100 entrées dans la base c'est rien, mais il faut le multiplier par le nombre d'utilisateurs...
J'ai donc opté pour une autre solution, la voilà:
Plutot que de rentrer chaque liste dans la base avec chaque id 1 par 1, je crée une chaîne au format suivant:
|id1|id2|id3|id4|[etc...]
Comme ça tout est dans l'ordre et ça fait moins d'entrées dans la base.
Et pour déplacer un item j'utilise ce script (encore en beta

, aucune vérification):
Code : Tout sélectionner
<?
// On cherche à déplacer le 21 ($idadeplacer) et le mettre en premier dans la liste ($placerenposition)
// Données:
$idadeplacer="21";
$placerenposition="1";
$liste="|15|26|75|01|56|79|25|125|163|485|596|25|78|63|25|21|";
echo $liste.'<br>';
if (strpos($liste,"|".$idadeplacer."|")) {
// J'enlève l'ID en cours
$liste=str_replace("|".$idadeplacer."|","|", $liste);
// Je fais un explode pour retrouver quel id est à la position choisie
$tableau=explode("|",$liste);
// Je cherche la position de l'id qui occupe la place voulue
$a=strpos($liste,"|".$tableau[$placerenposition]."|");
// J'extrait la chaîne se situant au avant mon nouvel id
$debut=substr($liste, 0, $a);
// J'insère mon nouvel id dans la chaîne
$debut=$debut."|".$idadeplacer;
// J'extrais la chaîne après mon nouvel id
$fin=substr($liste, -strlen($liste)+$a);
// Je scinde les 2 chaînes
$result=$debut.$fin;
// J'admire le résultat
echo $result;
}
?>
Et il est commenté pour améliorer la compréhension, que demande le peuple?
Je suis assez content de ceci, même si ke sais qu'il ne sera pas non plus hyper léger :/
Bon, j'ai trouvé une solution plus souple, parce que 100 entrées dans la base c'est rien, mais il faut le multiplier par le nombre d'utilisateurs...
J'ai donc opté pour une autre solution, la voilà:
Plutot que de rentrer chaque liste dans la base avec chaque id 1 par 1, je crée une chaîne au format suivant:
|id1|id2|id3|id4|[etc...]
Comme ça tout est dans l'ordre et ça fait moins d'entrées dans la base.
Et pour déplacer un item j'utilise ce script (encore en beta :P, aucune vérification):
[code]<?
// On cherche à déplacer le 21 ($idadeplacer) et le mettre en premier dans la liste ($placerenposition)
// Données:
$idadeplacer="21";
$placerenposition="1";
$liste="|15|26|75|01|56|79|25|125|163|485|596|25|78|63|25|21|";
echo $liste.'<br>';
if (strpos($liste,"|".$idadeplacer."|")) {
// J'enlève l'ID en cours
$liste=str_replace("|".$idadeplacer."|","|", $liste);
// Je fais un explode pour retrouver quel id est à la position choisie
$tableau=explode("|",$liste);
// Je cherche la position de l'id qui occupe la place voulue
$a=strpos($liste,"|".$tableau[$placerenposition]."|");
// J'extrait la chaîne se situant au avant mon nouvel id
$debut=substr($liste, 0, $a);
// J'insère mon nouvel id dans la chaîne
$debut=$debut."|".$idadeplacer;
// J'extrais la chaîne après mon nouvel id
$fin=substr($liste, -strlen($liste)+$a);
// Je scinde les 2 chaînes
$result=$debut.$fin;
// J'admire le résultat
echo $result;
}
?>[/code]
Et il est commenté pour améliorer la compréhension, que demande le peuple?
Je suis assez content de ceci, même si ke sais qu'il ne sera pas non plus hyper léger :/