IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

slider images, je n'arrive pas à intégrer une requête SQL


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut slider images, je n'arrive pas à intégrer une requête SQL
    Boujour,
    j'ai récupérer un script de slide d'images en js.
    Le soucis c'est que je n'arrive pas à intégrer de requête sql dans ce script:

    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
    <script language="JavaScript1.1">
     
    //specify interval between slide (in mili seconds)
    var slidespeed=3000
    //specify images
     
    var slideimages=new Array("photo/1.jpg","photo/2.jpg","photo/3.jpg")
    //specify corresponding links
     
    var imageholder=new Array()
    var ie55=window.createPopup
    for (i=0;i<slideimages.length;i++){
    imageholder[i]=new Image()
    imageholder[i].src=slideimages[i]
    }
     
    function gotoshow(){
    window.location=slidelinks[whichlink]
    }
     
    //-->
    </script>
    Ma requête est simple du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql="SELECT * FROM photo" ;
    $r = mysql_db_query($database, $sql);
    while ($t=mysql_fetch_row($r)){
    $cpt++;

    Comment l'intégrer dans le javascript ?

    Merci pour votre contribution.

  2. #2
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    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
     
    <script language="JavaScript1.1">
     
    var slidespeed = 3000 ;
     
    <?php
    $rqt = mysql_query("SELECT * FROM photo") ;
     
    $i = 0 ;
     
    $arrayJs = "var slideimages = new Array(" ;
     
    while($tab = mysql_fetch_array($rqt))
         {
          $photo = $tab['champ_de_la_photo'] ;
         if($i == 0)
              {
               $arrayJs .= "'photo/".$photo."'" ;
              }
         else
              {
              $arrayJs .= ", 'photo/".$photo."'" ;
              }
         $i++ ;
         }
    $arrayJs .= ") ;" ;
     
    echo $arrayJs ;
    ?>
     
    var imageholder = new Array() ;
    var ie55 = window.createPopup ;
    for (i=0;i<slideimages.length;i++){
    imageholder[i] = new Image() ;
    imageholder[i].src = slideimages[i] ;
    }
     
    function gotoshow(){
    window.location = slidelinks[whichlink] ;
    }
     
    //-->
    </script>
    Voila une solution possible, attention ton javascript n'avait pas de ";".

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Salut xess91,

    je viens de tester ta solution mais je n'arrive pas à la faire tourner.
    Peux-tu jeter un oeil sur ton code à nouveau et me dire si tu vois une erreur?
    J'ai bien vérifier les noms de répertoire/champs concernés.

    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
    <?php
    $link = mysql_connect($hostname, $username, $password);
    $rqt = mysql_query("SELECT * FROM photo") ;
     
    $i = 0 ;
     
    $arrayJs = "var slideimages = new Array(" ;
     
    while($tab = mysql_fetch_array($rqt))
         {
          $photo = $tab['id'] ;
         if($i == 0)
              {
               $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
              }
         else
              {
              $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
              }
         $i++ ;
         }
    $arrayJs .= ") ;" ;
     
    echo $arrayJs ;
    ?>
    Merci pour ton aide.

  4. #4
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    Déjà il te manque la virgule pour séparer les données de ton tableau, tu as mal recopié...quelle que soit la condition ton if et else font la même chose, ça n'a pas de sens.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if($i == 0)
              {
               $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
              }
         else
              {
              $arrayJs .= ", 'photos/latelier_".$photo.".jpg'" ;
              }
    Sinon qu'est ce que le echo $arrayJs écrit, une fois que tu as fait la correction ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    le echo renvoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var slideimages = new Array() ;
    J'avais zappé la virgule mais elle n'a rien changée.
    Désolé de t'embêter mais si tu vois autre chose fais moi savoir.
    Merci.

  6. #6
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    Dans ce cas la, c'est que ta requête SQL renvoie rien et que tu ne rentres pas dans la boucle "while"...

    Connais tu le php et le SQL? et as-tu compris la méthode que je te suggère ?

    De plus sur l'exemple que tu montres tu sélectionnes aucune bdd SQL

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mysql_connect("localhost", "root", "") ;
    //
    mysql_select_db("maBase") ;//absent
    //
    mysql_query("maRequete") ;

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Ne pas arriver à integrer la requête c'est bien cela mon soucis.Evidemment la connexion passerait par un classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $link = mysql_connect($hostname, $username, $password);
    $rqt = mysql_query("SELECT * FROM photo") ;
    $r = mysql_db_query($database, $rqt);
    tout le code:
    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
    <script language="JavaScript1.1">
    <!--
    //Pixelating Image slideshow
    //Copyright Dynamic Drive 2001
    //Visit http://www.dynamicdrive.com for this script
    var slidespeed = 3000 ;
     
    <?php
    $link = mysql_connect($hostname, $username, $password);
    $rqt = mysql_query("SELECT * FROM photo") ;
    $r = mysql_db_query($database, $rqt);
     
    $i = 0 ;
     
    $arrayJs = "var slideimages = new Array(" ;
     
    while($tab = mysql_fetch_array($r))
         {
          $photo = $tab['id'] ;
         if($i == 0)
              {
               $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
              }
         else
              {
              $arrayJs .= ", 'photos/latelier_".$photo.".jpg'" ;
              }
         $i++ ;
         }
    $arrayJs .= ") ;" ;
     
    echo $arrayJs ;
    ?>
     
    var imageholder = new Array() ;
    var ie55 = window.createPopup ;
    for (i=0;i<slideimages.length;i++){
    imageholder[i] = new Image() ;
    imageholder[i].src = slideimages[i] ;
    }
     
    function gotoshow(){
    window.location = slidelinks[whichlink] ;
    }
     
    //-->
    </script>
    dans le <body>:

    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
    <div> 
    <a href="javascript:gotoshow()"><img src="" name="slide" border=0 style="filter:progid:DXImageTransform.Microsoft.Pixelate(MaxSquare=15,Duration=1)"></a> 
     
    <script language="JavaScript1.1">
    <!--
    var whichlink=0
    var whichimage=0
    var pixeldelay=(ie55)? document.images.slide.filters[0].duration*800 : 0
    function slideit(){
    if (!document.images) return
    if (ie55) document.images.slide.filters[0].apply()
    document.images.slide.src=imageholder[whichimage].src
    if (ie55) document.images.slide.filters[0].play()
    whichlink=whichimage
    whichimage=(whichimage<slideimages.length-1)? whichimage+1 : 0
    setTimeout("slideit()",slidespeed+pixeldelay)
    }
    slideit()
     
    //-->
    </script>
    </div>
    Mais comme je ne suis pas programmeur chevronné, j'ai du mal à interpréter les erreurs. Et là je vois bien qu'on ne rentre pas dans la boucle mais je ne sais pas vraiment comment faire. Encore une fois si tu as une idée je suis preneur. Merci.

  8. #8
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    ok je comprends, alors essaies ceci dans un fichier à part :

    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
     
    <?php
    mysql_connect($hostname, $username, $password);
    mysql_select_db($database) ;
     
    $rqt = mysql_query("SELECT * FROM photo")or die(mysql_error()) ;
     
    $i = 0 ;
     
    $arrayJs = "var slideimages = new Array(" ;
     
    while($tab = mysql_fetch_array($rqt))
         {
          $photo = $tab['id'] ;
         if($i == 0)
              {
               $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
              }
         else
              {
              $arrayJs .= ", 'photos/latelier_".$photo.".jpg'" ;
              }
         $i++ ;
         }
    $arrayJs .= ") ;" ;
     
    echo $arrayJs ;
    ?>
    ou

    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
     
    <?php
    mysql_connect($hostname, $username, $password);
    $rqt = "SELECT * FROM photo" ;
    $r = mysql_db_query($database, $rqt);
     
    $i = 0 ;
     
    $arrayJs = "var slideimages = new Array(" ;
     
    while($tab = mysql_fetch_array($r))
         {
          $photo = $tab['id'] ;
         if($i == 0)
              {
               $arrayJs .= "'photos/latelier_".$photo.".jpg'" ;
              }
         else
              {
              $arrayJs .= ", 'photos/latelier_".$photo.".jpg'" ;
              }
         $i++ ;
         }
    $arrayJs .= ") ;" ;
     
    echo $arrayJs ;
    ?>
    Essaies une des deux ecritures sans rien changer, la première solution est la plus propre à mon avis car elle te permet de déclarer un seule fois en haut de page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mysql_connect($hostname, $username, $password);
    mysql_select_db($database) ;
    et après de faire de simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query("maRequete") ;
    .

    Retourne moi le contenu du echo $arrayJs ou les erreurs si erreurs.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    super xess91, la requete est bien exécutée cette fois-ci avec le 1er code et ta boucle qui fonctionne à merveille (le 2ème code ne fontionne pas très bien avec le slider qui reste bloqué sur la 1ère image).
    Je vais pouvoir le dupliquer avec d'autres sliders d'images qui tournent en js.
    C'est un bon exemple pour tous ceux qui cherche un script de slider fonctionnant à partir de mysql.
    Merci encore à toi
    Bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 29/07/2015, 17h54
  2. [AC-2010] Comment intégrer une requête SQL dans un Trigger
    Par plaulie dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/02/2015, 13h56
  3. Réponses: 3
    Dernier message: 12/12/2008, 08h05
  4. Comment intégrer une requête SQL dans Rails ?
    Par Didier Pitre dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 28/05/2008, 08h59
  5. Je n'arrive pas à recuperer une image
    Par lemonsoda dans le forum Langage
    Réponses: 6
    Dernier message: 26/01/2006, 09h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo