Album photo

Répondre
sparh
le 04/12/2006 à 12:19
sparh
Salut,
j'éssai de faire un album photo.
J'ai regradé le 'comment faire' mais ca ne me convient pas car je veux pouvoir gérer les balises alt des photos et pouvoir y ajouter des commentaires (ainsi qu'un titre etc...).
Je voudrai donc gérer tous ca avec ma base sql.
J'ai bien avancé, je bloque juste sur l'affichage de ma galerie (accuail de l'album).

Je cherche à afficher les résultats de ma requête dans un tableau à plusieur colonnes??
Pourriez vous m'aider svp?
moogli
le 04/12/2006 à 14:24
moogli
salut,

utilise l'opérateur modulo (%) afin géré le changement de ligne dans le tableau html.

@+
Il en faut peu pour être heureux !!!!!
sparh
le 06/12/2006 à 20:05
sparh
Yes,
merci à tous les 2 ;)
J'ai bien avancé maintenant mais la je bloque sur un truc.
Quand l'utilisateur affiche les photos (une par une) je veux faire 3 petits liens "preecedant home suivant".
Voilà ce que je fais:
<?php
$id=$_GET['id'];
// + connection a la base

//pour la page les meta etc...
$result=mysql_query("SELECT * FROM p2002 WHERE id='$id' ") or die ('Erreur : '.mysql_error() );
//pour le bouton precedent id < $id
$prece=mysql_query("SELECT id FROM p2002 WHERE id < '$id' LIMIT 1") or die ('Erreur : '.mysql_error() );
//pour le bouton suivant id > $id
$suivant=mysql_query("SELECT id FROM p2002 WHERE id >'$id' LIMIT 1") or die ('Erreur : '.mysql_error() );

$precedant=mysql_fetch_array($prece);
$suivan=mysql_fetch_array($suivant);

while($row=mysql_fetch_array($result))
{
....
?>

Voilà, tous va bien pour l'affichage de la page (requête result) mais pas moyen de récupérer l'id supérieur ou inférieur?
J'éspère avoir été clair et merci d'avance pour votre aide smiley
i M@N
le 06/12/2006 à 21:31
i M@N
Hello !

Encore un qui code pas en register_global à off ... smiley La Globule passe moi donc le fouet ... smiley

Coder en register_global à off << lis déjà ça.

Pour ton code y'a le souci des register_global à off qui font que ta variable $id issue de $_GET n'est pas initialisée ...

<?php
/*on récupère et on initialise la variable $id issue de $_GET*/
if (isset($_GET['id'])) $id = $_GET['id']; else $id = "";
?>


Pour tes boutons précédents et suivant je vois pas le problème, tu fais un lien avec l'id $id-1 et un autre avec $id+1. smiley

@+...
One Love, One Heart, One Unity.
LupusMic
le 06/12/2006 à 23:57
LupusMic
(i M@n) qui garanti que le tuple d'identifiant $id-1 et $id+1 sont présent ? De plus, on a le problème du tri, car on veut peut-être que le précédent soit en fonction d'un tri.

Bref.

nav.php
<?php
// Il faut faire une gestion par page. On ne sait pas dans quelle page sera affiché l'id.'
// Ne pas oublier de vérifier le contenu de la variable
$page=$_GET['page'];

mysql_connect(...) ;

$sql = "select * from p2002 order by created limit ".($page*10 - 1).", ".(10+2)
//pour la page les meta etc...
$result=mysql_query($sql) ;
for($i=0 ; $tuple=mysql_fetch_object($result) ; $i++)
{
if($i == 0)
{
// Gestion de l'affichage du précédent
}
elseif($i == 10+2-1)
{
// Gestion de l'affichage du suivant
}
else
{
// Gestion de l'affichage normal
}
}

mysql_free_result($result) ;
mysql_close() ;
?>


Il faudra certainement indexer la colonne de tri, ou tu risques d'avoir des surprises côté performances ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
sparh
le 07/12/2006 à 10:33
sparh
(i M@n) --> En effet comme l'administrateur peut effacer des images et en rajouter dans la base les id ne se suivent pas forcément (par ex 1,3,4,6 etc...) d'ou mon idée pour le bouton précédent: récupérer l'id inférieur et inversement pour le bouton suivant.

Un détail, je n'ai pas de problème pour récupérer l'id via $id=$_GET['id'];
Ce sont mes 2 requêtes pour les bouton préc/suivant qui posent problème.

(LupusMic) --> jer vai travailler ta proposition
Merci à tous les deux
sparh
le 07/12/2006 à 19:46
sparh
Bon en fait je ne comprends pas trop ta proposition LupusMic, plus de détails pour un débutant ?smiley

Voilà monn problome (l'ordre pour afficher précédent / suivant est celui des id):
Je récupère bien l'id courant, par contre pour suivant/précédent je récupère bien un id supérieur mais pas le suivant (n'importe quel id supérieur). Idem pour le précédent.
Est il possible de récupérer l'id suivant (sans que ce soit id + 1)?
Merci d'avance
LupusMic
le 07/12/2006 à 23:21
LupusMic
nav.sql
$sql = "select * from p2002 order by id limit ".($page*10 - 1).", ".(10+2)


Bon, tu remarqueras que j'ai changé le order by selon ton souhait ;)

La clause limite s'utilise de deux façons
limit 5 : se limite à récupérer les 5 premiers du select
limit 19, 5 : récupère 5 résultats à partir du 19e tuple du select

Donc, ici, ce que je proposes, c'est qu'on affiche des pages de 10 éléments. J'en récupère donc 12 :

$page * 10 - 1 : fiche précédente
$page * 10 + 1 : fiche suivante

Entre ces deux bornes, tu as les fiches de la page numéro $page que tu souhaites afficher.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
sparh
le 11/12/2006 à 15:21
sparh
Salut,
j'ai passé un bon moment de mon week end à essayer de comprendre ce que tu me propose; j'ai attendu avant de répondre en éspérant comprendre un peu mieux avec le temps mais j'y comprends toujours rien.
Pour la clause LIMIT ca y 'a pas de prob!
Je suis désolé LupusMic, je vois bien que tu fais des efforts mais je suis complètement largué!
Répondre
LoadingChargement en cours