Pb Administration slideshow

Par iKotto, il y a 15 ans


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

Havok, il y a 15 ans

Concrètement, quel est ton problème?

iKotto, il y a 15 ans

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.

Havok, il y a 15 ans
$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, il y a 15 ans

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

Havok, il y a 15 ans

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, il y a 15 ans

Ç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.

Havok, il y a 15 ans

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, il y a 15 ans

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

Havok, il y a 15 ans

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, il y a 15 ans

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...

Havok, il y a 15 ans

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

iKotto, il y a 15 ans

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, il y a 15 ans

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

iKotto, il y a 15 ans

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