Bonjour !

J'aimerais automatiser le script de carrousel javascript de Grafikart grâce à une formulaire php et une base SQL.
Même après avoir lu le post de ronytexasranger du Vendredi 25 Mars, je n'avance pas.
Quelqu'un sait-il comment s'y prendre ?

Merci d'avance.

Voici mon code :

<div id="carrousel">
<?php
mysql_connect(" ***", "***", "***");
mysql_select_db("***");
// On récupère les cinq dernières news.
$retour = mysql_query('SELECT * FROM projecteur ORDER BY id DESC LIMIT 0, 3');
while ($donnees = mysql_fetch_array($retour))
{
?>
    <div id="slide<?php echo $donnees'id']; ?>" class="slide">
        <div class="visu">
        <img src="Mediatheque/img_projecteur/<?php echo $donnees'image']; ?>.jpg"/>
        </div>
        <div class="title">
        <?php echo $donnees'contenu']; ?>

        </div>
    <?php
} // Fin de la boucle des slides.
?>     
    </div>

    </div>
    <!--
    <div class="navigation">
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
    -->
</div>

14 réponses


iKotto
Auteur
Réponse acceptée

Ça marche !
J'ai forcé avec l'id en rajoutant un champs dans ma bdd et maintenant tout fonctionne !!!!!!!
Merci pour ton aide !

Concrètement, quel est ton problème?

iKotto
Auteur

Par exemple avec 3 news dans la base de donnée, seule la première image s'affiche avec le premier commentaire. La pagination fonctionne, mais les deux autres images et textes ne fonctionnent pas. À la fin du cycle, la première news ne s'affiche plus.
J'ai essayé plusieurs combinaison avec le php, sans réussite.

$retour = mysql_query('SELECT * FROM projecteur ORDER BY id DESC LIMIT 3');
print_r($retour);

Essaies ta requête comme ça, et dis nous ce que te ressort le print_r.

iKotto
Auteur

Voilà ce qu'il me dit : Resource id #2

xD ça fait longtemps que j'avais pas fait ça comme ça.
Fait plutôt un print_r de $donnees dans ta boucle

$retour = mysql_query('SELECT * FROM projecteur ORDER BY id DESC LIMIT 0, 3');  
while ($donnees = mysql_fetch_array($retour))  
{  
print_r($donnees);
...]
}
iKotto
Auteur

Ça donne ça :
slide2
Array ( [0] => 19 [id] => 19 [1] => Test [titre] => Test [2] => Coucou [image] => Coucou [3] => slide1 [contenu] => slide1 [4] => http://www.20minutes.fr [action] => http://www.20minutes.fr [5] => [lien] => [6] => 1302537877 [timestamp] => 1302537877 )

Désolé je suis novice en php. Pour débugger j'ai encore beaucoup de mal. Merci de m'aider en tout cas.

Bon déjà, ça ne t'en n'affiche qu'un parce que ça ne t'en retourne qu'un.
Dans ta requête, le LIMIT est à "0, 3" ou à "3" ?

iKotto
Auteur

Il est à 0,3 pour rechercher les trois dernières entrées et les afficher dans l'ordre décroissant.

Ce qui est étrange, c'est que d'après le print_r que tu m'as donné, il ne te retourne qu'une seule entrée...
Deux questions.

1 - Avec ton code actuel, est-ce que les 3 div sont générés ou en as-tu qu'un seul?
2 - Si tu tapes ta requête via PHPMyAdmin, combien d'entrées te retourne ta requête?

EDIT : Ah nan, en fait, y'a un div fermant qui n'est pas dans la boucle. Essaies ça à la place de ton code :

while ($donnees = mysql_fetch_array($retour))  
{  
?>  
    <div id="slide<?php echo $donnees'id']; ?>" class="slide">  
        <div class="visu">  
            <img src="Mediatheque/img_projecteur/<?php echo $donnees'image']; ?>.jpg"/>  
        </div>  
        <div class="title">  
            <?php echo $donnees'contenu']; ?>   
        </div>  
    </div> 
    <?php  
} // Fin de la boucle des slides.  
?>
iKotto
Auteur

C'est juste, j'ai modifié mais ça ne change pas le problème. Ça vient peut-être de l'id. Je me sers de l'id de la base de donnée. Ainsi comme j'ai fait plusieurs entrée, l'id peut être 11 par exemple. Le javascript n'apprécie peut-être pas trop. Peut-être qu'en forçant avec un id 1, 2 et 3 par ex...

As-tu trois div de générés sur ta page? Si oui, effectivement, faut regarder du côté du Javascript.

iKotto
Auteur

Oui j'ai bien les trois div. Mais maintenant j'arrive à afficher mes trois images (c'est déjà bien).
Du coup maintenant :
les images fonctionnent,
le texte marche pour la première boucle, mais dès que ça recharge il vient se coller en haut de l'image et s'agglutine image après image.
C'est frustrant, mais on avance !

iKotto
Auteur

Ça doit venir du javascript, je me rend compte que les images arrivent de façon aléatoire.