Choisir l'ordre d'affichage PHP/ MYSQL
Résolu/Fermé
baba_cool
Messages postés
183
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
1 novembre 2008
-
17 juin 2008 à 03:46
baba_cool Messages postés 183 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 1 novembre 2008 - 18 juin 2008 à 07:53
baba_cool Messages postés 183 Date d'inscription lundi 12 novembre 2007 Statut Membre Dernière intervention 1 novembre 2008 - 18 juin 2008 à 07:53
A voir également:
- Choisir l'ordre d'affichage PHP/ MYSQL
- Excel trier par ordre croissant chiffre - Guide
- Easy php - Télécharger - Divers Web & Internet
- Affichage double ecran - Guide
- Mysql community server - Télécharger - Bases de données
- Windows 11 affichage classique - Guide
4 réponses
baba_cool
Messages postés
183
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
1 novembre 2008
23
18 juin 2008 à 07:53
18 juin 2008 à 07:53
J'ai compris !!!!
je n'ai pas trouvé la syntaxe pour le classement alphabétique, mais en fait c'est tout bete... pour que mysql classe correctement les chiffres, il suffit de lui dire que ce champ est numérique (INT) et nom pas alphabétique (TEXT )...
maintenant tout marche impeccable !!!
// Remise dans l ordre des albums a chaque ouverture de la page
$reqa = mysql_query("UPDATE fralbums SET ordre='0' WHERE id_album='1'");
$plus = "0";
$reqb = mysql_query("SELECT * FROM fralbums ORDER by ordre");
while($data = mysql_fetch_assoc($reqb))
{
$id = ''.$data['id_album'].'';
$plus++;
echo "$plus";
$reqc = mysql_query("UPDATE fralbums SET ordre='$plus' WHERE id_album='$id'");
}
// ORDRE DES ALBUMS PHOTOS
@ $monter = $_POST['monter'];
@ $descendre = $_POST['descendre'];
@ $ordre = $_POST['ordre'];
@ $id = $_POST['id'];
if ($monter != NULL)
{
$bas = ''.$ordre.''+1;
$haut = ''.$ordre.''-1;
$req = mysql_query("UPDATE fralbums SET ordre='0' WHERE ordre='$haut' ");
$req = mysql_query("UPDATE fralbums SET ordre='$haut' WHERE ordre='$ordre' ");
$req = mysql_query("UPDATE fralbums SET ordre='$ordre' WHERE ordre='0' ");
}
if ($descendre != NULL)
{
$bas = ''.$ordre.''+1;
$haut = ''.$ordre.''-1;
$req = mysql_query("UPDATE fralbums SET ordre='0' WHERE ordre='$bas' ");
$req = mysql_query("UPDATE fralbums SET ordre='$bas' WHERE ordre='$ordre' ");
$req = mysql_query("UPDATE fralbums SET ordre='$ordre' WHERE ordre='0' ");
}
@ $subordre = $_POST['subordre'];
if($subordre != NULL)
{
echo '<strong>Ordre d\'affichage des albums:<br><br></strong>';
echo '<table width="200" border="1">';
$req = mysql_query("SELECT * FROM fralbums ORDER by ordre");
while($data = mysql_fetch_assoc($req))
{
@ $titrealbum = ''.$data['titrealbum'].'';
$id = ''.$data['id_album'].'';
$ordre = ''.$data['ordre'].'';
if ($id == 1){ echo ''; }
// Affichage des albums
else {
echo '<form action="adminalbums.php" method="post">';
echo '<tr>';
echo '<td>'.$titrealbum.'</td>';
echo '<input type="hidden" value="'.$id.'" name="id">';
echo '<input type="hidden" value="Choisir l\'ordre d\'affichage des albmus" name="subordre">';
echo '<input type="hidden" value="'.$ordre.'" name="ordre">';
echo '<td><input type="submit" value="Monter" name="monter"></td>';
echo '<td><input type="submit" value="Descendre" name="descendre"></td>';
echo '</tr>';
echo '</form>';
}
}
echo '</table><br><br><br>';
}
else
{
echo '<form action="adminalbums.php" method="post">';
echo '<input type="submit" value="Choisir l\'ordre d\'affichage des albmus" name="subordre">';
echo '</form>';
}
je n'ai pas trouvé la syntaxe pour le classement alphabétique, mais en fait c'est tout bete... pour que mysql classe correctement les chiffres, il suffit de lui dire que ce champ est numérique (INT) et nom pas alphabétique (TEXT )...
maintenant tout marche impeccable !!!
// Remise dans l ordre des albums a chaque ouverture de la page
$reqa = mysql_query("UPDATE fralbums SET ordre='0' WHERE id_album='1'");
$plus = "0";
$reqb = mysql_query("SELECT * FROM fralbums ORDER by ordre");
while($data = mysql_fetch_assoc($reqb))
{
$id = ''.$data['id_album'].'';
$plus++;
echo "$plus";
$reqc = mysql_query("UPDATE fralbums SET ordre='$plus' WHERE id_album='$id'");
}
// ORDRE DES ALBUMS PHOTOS
@ $monter = $_POST['monter'];
@ $descendre = $_POST['descendre'];
@ $ordre = $_POST['ordre'];
@ $id = $_POST['id'];
if ($monter != NULL)
{
$bas = ''.$ordre.''+1;
$haut = ''.$ordre.''-1;
$req = mysql_query("UPDATE fralbums SET ordre='0' WHERE ordre='$haut' ");
$req = mysql_query("UPDATE fralbums SET ordre='$haut' WHERE ordre='$ordre' ");
$req = mysql_query("UPDATE fralbums SET ordre='$ordre' WHERE ordre='0' ");
}
if ($descendre != NULL)
{
$bas = ''.$ordre.''+1;
$haut = ''.$ordre.''-1;
$req = mysql_query("UPDATE fralbums SET ordre='0' WHERE ordre='$bas' ");
$req = mysql_query("UPDATE fralbums SET ordre='$bas' WHERE ordre='$ordre' ");
$req = mysql_query("UPDATE fralbums SET ordre='$ordre' WHERE ordre='0' ");
}
@ $subordre = $_POST['subordre'];
if($subordre != NULL)
{
echo '<strong>Ordre d\'affichage des albums:<br><br></strong>';
echo '<table width="200" border="1">';
$req = mysql_query("SELECT * FROM fralbums ORDER by ordre");
while($data = mysql_fetch_assoc($req))
{
@ $titrealbum = ''.$data['titrealbum'].'';
$id = ''.$data['id_album'].'';
$ordre = ''.$data['ordre'].'';
if ($id == 1){ echo ''; }
// Affichage des albums
else {
echo '<form action="adminalbums.php" method="post">';
echo '<tr>';
echo '<td>'.$titrealbum.'</td>';
echo '<input type="hidden" value="'.$id.'" name="id">';
echo '<input type="hidden" value="Choisir l\'ordre d\'affichage des albmus" name="subordre">';
echo '<input type="hidden" value="'.$ordre.'" name="ordre">';
echo '<td><input type="submit" value="Monter" name="monter"></td>';
echo '<td><input type="submit" value="Descendre" name="descendre"></td>';
echo '</tr>';
echo '</form>';
}
}
echo '</table><br><br><br>';
}
else
{
echo '<form action="adminalbums.php" method="post">';
echo '<input type="submit" value="Choisir l\'ordre d\'affichage des albmus" name="subordre">';
echo '</form>';
}
baba_cool
Messages postés
183
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
1 novembre 2008
23
18 juin 2008 à 06:27
18 juin 2008 à 06:27
Merci, ton idée fonctionne nickel, mais un nouveau probeleme se pose:
lorsque l'on effectu un tri sur des chiffres, il classe de cette maniere : 1,2,3,31,32,4... donc marche pas pour moi. J'ai donc remplacé les chiffres par des lettres. Impeccable !!! sauf que si la commande $ordre++ fonctionne bien, la commande $ordre-- reste sans effet... donc, quel est le contraire de ++ ???
if ($monter != NULL)
{
$bas =''.$ordre++.'';
$haut =''.$ordre--.'';
$req = mysql_query("UPDATE fralbums SET ordre='0' WHERE ordre='$haut' ");
$req = mysql_query("UPDATE fralbums SET ordre='$haut' WHERE ordre='$ordre' ");
$req = mysql_query("UPDATE fralbums SET ordre='$ordre' WHERE ordre='0' ");
}
if ($descendre != NULL)
{
$bas =''.$ordre++.'';
$haut =''.$ordre--.'';
$req = mysql_query("UPDATE fralbums SET ordre='0' WHERE ordre='$bas' ");
$req = mysql_query("UPDATE fralbums SET ordre='$bas' WHERE ordre='$ordre' ");
$req = mysql_query("UPDATE fralbums SET ordre='$ordre' WHERE ordre='0' ");
}
lorsque l'on effectu un tri sur des chiffres, il classe de cette maniere : 1,2,3,31,32,4... donc marche pas pour moi. J'ai donc remplacé les chiffres par des lettres. Impeccable !!! sauf que si la commande $ordre++ fonctionne bien, la commande $ordre-- reste sans effet... donc, quel est le contraire de ++ ???
if ($monter != NULL)
{
$bas =''.$ordre++.'';
$haut =''.$ordre--.'';
$req = mysql_query("UPDATE fralbums SET ordre='0' WHERE ordre='$haut' ");
$req = mysql_query("UPDATE fralbums SET ordre='$haut' WHERE ordre='$ordre' ");
$req = mysql_query("UPDATE fralbums SET ordre='$ordre' WHERE ordre='0' ");
}
if ($descendre != NULL)
{
$bas =''.$ordre++.'';
$haut =''.$ordre--.'';
$req = mysql_query("UPDATE fralbums SET ordre='0' WHERE ordre='$bas' ");
$req = mysql_query("UPDATE fralbums SET ordre='$bas' WHERE ordre='$ordre' ");
$req = mysql_query("UPDATE fralbums SET ordre='$ordre' WHERE ordre='0' ");
}
baba_cool
Messages postés
183
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
1 novembre 2008
23
18 juin 2008 à 06:55
18 juin 2008 à 06:55
apres plusieurs essais, je comprends encore moins... avec des valeurs numériques, la syntaxe $ordre-- fonctionne... mysql ne sait pas lire l'alphabet à l'envers???
donc deux solutions : ou je trouve comment classer mes valeurs numerique d'une maniere cohérente (8,9,10,11 et pas 1,10,11,2) ou je trouve comment oter 1 à une lettre.
J'avais bien pensé utiliser mon champ id qui est auto incrémenté mais ca m'arrange pas vraiment.
A l'aide !
donc deux solutions : ou je trouve comment classer mes valeurs numerique d'une maniere cohérente (8,9,10,11 et pas 1,10,11,2) ou je trouve comment oter 1 à une lettre.
J'avais bien pensé utiliser mon champ id qui est auto incrémenté mais ca m'arrange pas vraiment.
A l'aide !
Salut,
Il faut que tu mette dans une variable l'indice du "trou"
Ensuite dans ton while tu fais ceci :
$trou="tontrou"
$compteur=0;
$req = mysql_query("SELECT * FROM fralbums ORDER BY ordre");
while($data = mysql_fetch_assoc($req))
{
if($compteur<$trou){
$ordre = ''.$data['ordre'].'';
$ordre++;
}
$req = mysql_query("UPDATE fralbums SET ordre='$ordre'");
}
A adapter bien evidemment. mais l'idée est de faire la modif qu'à partir de l'indice ou tu en a besoin.
ciao
zz
Il faut que tu mette dans une variable l'indice du "trou"
Ensuite dans ton while tu fais ceci :
$trou="tontrou"
$compteur=0;
$req = mysql_query("SELECT * FROM fralbums ORDER BY ordre");
while($data = mysql_fetch_assoc($req))
{
if($compteur<$trou){
$ordre = ''.$data['ordre'].'';
$ordre++;
}
$req = mysql_query("UPDATE fralbums SET ordre='$ordre'");
}
A adapter bien evidemment. mais l'idée est de faire la modif qu'à partir de l'indice ou tu en a besoin.
ciao
zz