bonjour,
débutant tout juste en php / mysql j'aimerais faire une gallerie d'image générée à la volée à partir de ma base mysql dont les champs sont ceux ci :
id image(url) mini(url) alt commentaire
voila j'arrive parfaitement grace à un tuto sur un livre d'or à compter le nombre de miniatures et en afficher seulement 4 au début de ma page, seulement j'aimerais aller plus loin, et donc inclure l'image dans ma page lorsque l'on clique sur une miniature, voici mon code (ne faites pas attention à la rigueur du code xhtml, je le corrigerais par la suite une fois que tout mon script sera finalisé )
Quelqu'un pourrait-il me dire si c'est réalisable sans l'aide du javascript et des calques, merci d'avance .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 <?php // --------------- Etape 2 ----------------- // On écrit les liens vers chacune des pages // ----------------------------------------- // On met dans une variable le nombre de messages qu'on veut par page $nombreDeMessagesParPage = 4; $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM dessins'); while ($donnees = mysql_fetch_array($retour) ) $totalDesMessages = $donnees['nb_messages']; // On calcule le nombre de pages à créer $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); // Puis on fait une boucle pour écrire les liens vers chacune des pages echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="index.php?page=dessin&p=' . $i . '">' . $i . '</a> '; } if (isset($_GET['p'])) { $page = $_GET['p']; // On récupère le numéro de la page indiqué dans l'adresse (exppro.php?p=4) } else // La variable n'existe pas, c'est la première fois qu'on charge la page { $p = 1; // On se met sur la page 1 (par défaut) } ?> </td> </tr> </table> <div class="minidessins"> <table width="100%" border="0"> <nobr> <tr> <td align="center" width="25%"> <?php // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL $premierMessageAafficher = ($p - 1) * $nombreDeMessagesParPage; $reponse = mysql_query('SELECT * FROM dessins ORDER BY id LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage); $image = '1' while ($donnees = mysql_fetch_array($reponse)) { echo "<a href='image=".$donnees['id']."'><img src='".$donnees['mini']."' alt='".$donnees['alt']."' border='0'></img></a>"; } ?> </td> </tr> </table> </div> </nobr> <div> <table width="100%" border="0"> <tr> <td align="center" width="25%"> <?php echo "<img src=".$donnees['image']." alt='".$donnees['alt']."'</img>"; ?> </td> </tr> </table> </div> <?php mysql_close(); ?>
Les seules lignes à corriger sont donc :
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 { echo "<a href='image=".$donnees['id']."'><img src='".$donnees['mini']."' alt='".$donnees['alt']."' border='0'></img></a>"; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 print '<img src='.$donnees['image'].' alt="'.$donnees['alt'].'" width="400" heignt="280"></img>';
Partager