galerie en base de donnée

Eléphant du PHP | 241 Messages

09 mai 2011, 22:08

Et bien il faut copie-colle mon code, ca fera comme pour les autres pages, ca prendra la place de $content dans le système de template.

Par contre il faudra que tu modifie au niveau du HTML pour retrouver exactement ce que tu avais avant.

La ca affichera les images seulement pour les pays qui ont déjà des photos dans la bdd. (on peut très bien faire en sorte que ca le fasse quand même pour tous les pays)

Eléphant du PHP | 77 Messages

09 mai 2011, 22:24

Alors,

1) J'ai collé ton code sur une nouvelle page accueil_galerie.php
Donc en allant à l'adresse
http://xxxxxxxxx/galerie.php?p=accueil_galerie.php
Et bien erreur 404
Ca ne vient pas du <?php qu'il manquait au début :D


2) si je modifie la taille de la div qui entoure ma galerie, celle ci n'est plus centré. J'ai joué avec la largeur pour arriver a la centrer !! Donc si je la touche ca ne marchera pas !

Eléphant du PHP | 241 Messages

09 mai 2011, 23:40

1) Il ne faut pas mettre le .php dans le ?p=
Pour le <?php il faut strictement le mettre avant n'importe quel code php.

2) Est-ce que tu pourrais me faire une capture d'écran pour que je vois mieux le problème stp ? :mrgreen:

Eléphant du PHP | 77 Messages

10 mai 2011, 00:03

1) erreur de ma part (comme souvent) en fait je voyais pas java (du noir sur fond noir...) et comme c'est pareil avec ma 404.php..désolé
Mais j'ai donc modifié le code
        <a onmouseover="titre_rollover_<?php echo $pays; ?>.src='images/icone <?php echo $pays; ?> survole.jpg';" onmouseout="titre_rollover_<?php echo $pays; ?>.src='images/icone <?php echo $pays; ?>.jpg';">
                <img src="images/icone <?php echo $pays; ?>.jpg" alt="<?php echo $pays; ?>" id="titre_rollover_<?php echo $pays; ?>" />
        </a>
Ca marche parfaitement, mais je ne comprend pas comment d'après ce code attribuer tel image a tel pays, car ici java n'est nommé nul part dans le code....

2)
Alors avec ma div a 825px
page horizontale
http://www.toopix.eu/51a59057f8143fd114 ... fc14c.html

page verticale
http://www.toopix.eu/e6ed9f6afde66c580c ... d05b3.html


et maintenant avec la div a 700px
page horizontale
http://www.toopix.eu/24bffd301ffcb718a4 ... d4f5a.html

page verticale
http://www.toopix.eu/a7db500088b7a9e5e2 ... c1650.html

Si je passe a 1000px les horizontales se remettent sur la gauche comme au tout debut, et les verticales sont a peu pres comme a 825 px, meme pareil

Eléphant du PHP | 241 Messages

10 mai 2011, 13:05

Salut,

1) En fait j'ai pas fait gaffe, dans ton dossier content/ tu as toujours un fichier index.php ?
Normalement c'est celui-ci qui affichait la liste des pays, je t'ai refais créer un fichier pour rien (on va dire que hier j'étais fatigué à cause de mon weekend sans sommeil :mrgreen: )

Tu peux donc supprimer listegalerie.php et modifier index.php comme suit :
index.php
<?php
$head = <<<EOD
	<title>Choisissez la galerie de votre choix</title>
EOD;
?>
<h1>Choisissez la galerie de photo que vous voulez voir</h1>

<?php
//On regarde les pays existants dans la bdd
$req = $bdd->query("SELECT DISTINCT gal_pays FROM galerie_photos");
while ($donnees = $req->fetch()) {
	$pays = $donnees['gal_pays'];
?>
	<a href="?p=galeriebdd&pays=<?php echo $pays; ?>&page=1" onmouseover="titre_rollover_<?php echo $pays; ?>.src='images/titre_<?php echo $pays; ?>_over.jpg';" onmouseout="titre_rollover_<?php echo $pays; ?>.src='images/titre_<?php echo $pays; ?>.jpg';">
		<img src="images/titre_<?php echo $pays; ?>.jpg" alt="<?php echo $pays; ?>" id="titre_rollover_<?php echo $pays; ?>" />
	</a>
<?php
}
Pour l'histoire du pays qui ne s'affiche pas, c'est normal, c'est php qui va le faire, avec la requête SQL il va chercher tous les pays qui existent dans ta bdd.
Le nom des pays sera dans la variable $pays du traitement php.
Tu ne vas donc rien faire si ce n'est placer les images des rollover avec les bon noms et dans le bon dossier.
  • www/
    • admin/
    • content/
    • images/ <- ici on place les images pour le rollover
      ...

2) Il faudrait essayer à nouveau d'encadrer la <div> dans ton fichier template.php
 <!--debut image -->
<div id="galerie_image">
<div id="galerie_image2">
<?php
echo $content;
?>
</div>
</div>
   <!--fin image -->
Il faut jouer sur les tailles de chacune, galerie_image prend la plus grande taille. galerie_image2 prend la taille que tu veux, et tu la centre dans la première div

Code : Tout sélectionner

#galerie_image2 { width: 500px; margin: 0px auto 0px auto; }
Néanmoins je ne sais pas si cela va régler ton problème :priere:

Eléphant du PHP | 77 Messages

10 mai 2011, 22:58

Salut,

1) l'index marche nikel, il ne restera plus qu'a verifier avec d'autres pays...je n'ai toujours pas compris le code..mais si ca marche..en fait les images apparaitront dans l'ordre dans lesquels que creerais mes pays ? (ou plutot mettrait en ligne ou activerait mes pays)

2) Rien n'y fait :(
plus grand plus court etc..aucun bon resultat

Eléphant du PHP | 241 Messages

11 mai 2011, 14:36

Salut,

1) Et bien dans ta bdd tu auras tous les pays avec toutes les photos, la requête SQL va aller chercher tous les pays existants dans ta bdd, ensuite avec php on placera ces pays la dans le code.
- SQL va chercher tous les pays : france,java,usa, etc.
- PHP met "france" dans la variable $pays et construit le lien avec le rollover.
- Ensuite PHP met "java" dans la variable $pays et construit le lien avec le rollover.
etc.

Tu peux le faire par ordre alphabétique ou alors par ordre d'apparition dans la bdd. Si jamais aucune des deux solutions ne te convient on peut toujours utiliser une autre façon de faire, un peu comme on avait fait avec les titres des tes pages (Photos de xxxx).

2) Ce que tu aimerais c'est avoir 3 images par ligne comme c'est actuellement sur ton site c'est bien ca ?

Eléphant du PHP | 77 Messages

11 mai 2011, 18:34

hey,

1) Alors ok je comprends a peu près. En fait je souhaiterais pouvoir les placer comme je le souhaite. simplement

2) oui je veux garder la même présentation que sur mon site actuel
3 lignes, 3 colonnes
http://www.tuan-gallery.com

Eléphant du PHP | 241 Messages

11 mai 2011, 21:17

1) Ok, à ce moment la alors pas besoin de requête SQL, on peut faire comme on a déjà fait sur une autre page, on créer la liste de tous les pays que tu veux et ensuite on affiche les rollovers.
Remplace ceci dans ton fichier index.php
<?php
//On regarde les pays existants dans la bdd
$req = $bdd->query("SELECT DISTINCT gal_pays FROM galerie_photos");
while ($donnees = $req->fetch()) {
	$pays = $donnees['gal_pays'];
?>
	<a href="?p=galeriebdd&pays=<?php echo $pays; ?>&page=1" onmouseover="titre_rollover_<?php echo $pays; ?>.src='images/titre_<?php echo $pays; ?>_over.jpg';" onmouseout="titre_rollover_<?php echo $pays; ?>.src='images/titre_<?php echo $pays; ?>.jpg';">
		<img src="images/titre_<?php echo $pays; ?>.jpg" alt="<?php echo $pays; ?>" id="titre_rollover_<?php echo $pays; ?>" />
	</a>
<?php
}
Par ceci :
<?php
//Liste des pays avec rollover, à mettre dans l'ordre d'apparition
$liste_pays = array('france','usa','inde','australie','java','japon');
foreach ($liste_pays as $pays) {
?>
	<a href="?p=galeriebdd&pays=<?php echo $pays; ?>&page=1" onmouseover="titre_rollover_<?php echo $pays; ?>.src='images/titre_<?php echo $pays; ?>_over.jpg';" onmouseout="titre_rollover_<?php echo $pays; ?>.src='images/titre_<?php echo $pays; ?>.jpg';">
		<img src="images/titre_<?php echo $pays; ?>.jpg" alt="<?php echo $pays; ?>" id="titre_rollover_<?php echo $pays; ?>" />
	</a>
<?php
}
Donc dans $liste_pays tu rentre tous les pays que tu veux, tu les rentre dans l'ordre d'apparition que tu voudras, donc la ce sera france en premier ensuite usa et après inde et ainsi de suite.


2) Le mieux serait de refaire un tableau comme c'est actuellement sur ton site. Il faut donc modifier la page galeriebdd.php
Vers les lignes 80 tu remplace ceci :
<?php
	echo "<p>\n";
	while ($donnees = $req->fetch()) {
		$photo = $donnees['gal_photo'];
		$descr = $donnees['gal_descr'];
?>

	<a href="<?php echo "$pays/grandes/$photo"; ?>" class="decal_img" rel="lightbox-cats" title="<?php echo $descr; ?>"><img src="<?php echo "$pays/petites/$photo"; ?>" alt="" /></a>

<?php
	}
?>
	</p>
Par ceci :
<table width="850">
		<tr>
<?php
	$n = 0; //Ne pas toucher !
	while ($donnees = $req->fetch()) {
		$photo = $donnees['gal_photo'];
		$descr = $donnees['gal_descr'];
		if ($n == 3) {
			$n = 0;
?>
		</tr>
		<tr>
			<td><a href="<?php echo "$pays/grandes/$photo"; ?>" class="decal_img" rel="lightbox-cats" title="<?php echo $descr; ?>"><img src="<?php echo "$pays/petites/$photo"; ?>" alt="" /></a></td>
<?php
		} else {
?>
			<td><a href="<?php echo "$pays/grandes/$photo"; ?>" class="decal_img" rel="lightbox-cats" title="<?php echo $descr; ?>"><img src="<?php echo "$pays/petites/$photo"; ?>" alt="" /></a></td>
<?php
		}
		$n++;
	}
?>
		</tr>
	</table>
Ensuite on applique le css qui est actuellement sur ton site :

Code : Tout sélectionner

body { margin: 0px auto 0px auto; padding: 0px; width: 1000px; } #debut_image { padding: 0px; width: 1000px; text-align: center; height: auto; margin-top: 30px; margin-bottom: 0px; border-style: none; } #debut_image table { text-align: center; border: none; color: #999; margin-right: auto; margin-left: auto; }

S'il y a des trucs à modifier pas de soucis fait moi signe !!

Eléphant du PHP | 77 Messages

11 mai 2011, 22:07

Ok merci de ta réponse !
Je test ça dès que je rentre dimanche (visite de Londres hihi)
Je te tiens au courant

Eléphant du PHP | 77 Messages

15 mai 2011, 18:24

Salut !

Comment ça se fait que lorsque je survole une image celle ci disparaisse pour ne laisser que le nom du pays. Donc si je passe avec la souris au dessus de mes images et bien je me retrouve en suite avec une ligne de texte (ma liste de pays) ???

Eléphant du PHP | 241 Messages

15 mai 2011, 18:38

Salut,

c'est pas normal, le nom des tes photos sont-elles bonnes par rapport au code ? sont-elles dans le bon dossier ?
Si ce n'est pas le bon nom/dossier, soit il faut changer le code, soit il faut changer le nom/place des photos.

Dans les 2 cas ce n'est pas bien compliqué ^^

Eléphant du PHP | 77 Messages

15 mai 2011, 20:16

Oui les noms sont corrects, elles sont bien placées dans le dossier "images"
<style type="text/css" media="screen">
<!--
body {
   margin: 0px auto 0px auto;
   padding: 0px;
   width: 1000px;
}
#debut_image {
   padding: 0px;
   width: 1000px;
   text-align: center;
   height: auto;
   margin-top: 30px;
   margin-bottom: 0px;
   border-style: none;
}
#debut_image table {
   text-align: center;
   border: none;
   color: #999;
   margin-right: auto;
   margin-left: auto;
}
-->
</style>


<?php
//Liste des pays avec rollover, à mettre dans l'ordre d'apparition
$liste_pays = array('paris','usa','inde','australie','java','japon','cambodge','bali','venise','cuba');
foreach ($liste_pays as $pays) {
?>
        <a href="?p=galeriebdd&pays=<?php echo $pays; ?>&page=1" onmouseover="titre_rollover_<?php echo $pays; ?>.src='images/icone_<?php echo $pays; ?>_survolee.jpg';" onmouseout="titre_rollover_<?php echo $pays; ?>.src='images/titre_<?php echo $pays; ?>.jpg';">
                <img src="images/icone_<?php echo $pays; ?>.jpg" alt="<?php echo $pays; ?>" id="titre_rollover_<?php echo $pays; ?>" />
        </a>
<?php
}

Eléphant du PHP | 241 Messages

15 mai 2011, 22:18

Tu as oublié de modifier un "titre" en "icone" à la fin du premier <a dans le onmouseout
<a href="?p=galeriebdd&pays=<?php echo $pays; ?>&page=1" onmouseover="titre_rollover_<?php echo $pays; ?>.src='images/icone_<?php echo $pays; ?>_survolee.jpg';" onmouseout="titre_rollover_<?php echo $pays; ?>.src='images/icone_<?php echo $pays; ?>.jpg';">
                 <img src="images/icone_<?php echo $pays; ?>.jpg" alt="<?php echo $pays; ?>" id="titre_rollover_<?php echo $pays; ?>" />
         </a>

Eléphant du PHP | 77 Messages

16 mai 2011, 12:19

Désolé :oops:

Par contre elle s'affiche correctement mais quand je passe sur cambodge et bali tout tremble !!!! Alors que pour les autres c'est parfait...qu'est je oublié ?