Afficher des image depuis la base de donnée php a mon album coder en javascrit

Résolu
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   -  
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   - 18 mars 2021 à 22:36
bonsoir j'ai eu a faire un System d'album avec javascript
la je sais pas comment faire pour introduire mon code php afin d'avoir les images de ma base de donnée dans album


<script>
    		window.onload=function(){
    			nbr=20;
    			cont=document.getElementById("container");   			
    			images=["images/romarin.jpg","images/chat.jpg","images/zn.jpg","images/chien.jpg","images/ir.jpg"];
    			im=0;
    			ang=[];
    		    init();
    	    }
    		function init(){
    			for(i=0;i<nbr;i++){
    				try{ 
    				    cont.removeChild(document.getElementById(i));
    			    }
    			    catch(e){
    				    true;
    			    }
    			}
    			for(i=0;i<nbr;i++){
    				ang[i]=-i*10-90;
    			    div=document.createElement("div");
    			    div.style.width=(cont.clientWidth/nbr)+"px";
    			    div.style.height=cont.clientHeight+"px";
    			    div.className="maClasse";
    			    div.setAttribute("id",i);
    			    div.style.visibiliby="hidden";
    			    div.style.backgroundImage="url('"+images[im]+"')";
    			    div.style.backgroundSize=cont.clientWidth+"px auto";
    			    div.style.backgroundPosition=(i*100/(nbr-1))+"% 50%";
    			    div.style.transform="perspective(1000px) rotateY("+ang[i]+"deg)";
    			    cont.appendChild(div);
    			}
    			animer();    
    		}
    		function animer(){
    		    t=setTimeout("animer()",10);    		    
    		    for(i=0;i<nbr;i++){
    		    	ob=document.getElementById(i);
    		    	ob.style.transform="perspective(1000px) rotateY("+ang[i]+"deg)";   		    	
    		    	if(ang[i]>-90)
    		    		   ob.style.visibility="visible";
    		    	if (ang[i]<0)
    		    		 ang[i]+=2;
    		        else 
    		    		  ang[i]=0; 
    		    	if(ang[nbr-1]==0){
    		    		im+=1;
    		    		if(im>images.length-1)
    		    				im=0;
    		    			clearTimeout(t);
    		    			init();
    		        } 
    		    }	
    		} 

   	
    	</script>

 <?php  

$requete = $bdd->query( "SELECT *
 FROM articles
     images
where images.idarticle =  articles.id  and categories = 'immobilier' group by idarticle " );


  while($resultat =$requete->fetch())

{?>
<img src="<?php echo $resultat['image']">  <?php }?>

A voir également:

8 réponses

jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
Bonjour,
Tu stockes tes images dans un array PHP
Puis, dans le code js, tu fais un json_encode de la variable pour pouvoir les récupérer dans le javascript


0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 
la jessaye de faire l'arrays mais j'ai recontre quelque soucis

Fatal error: Uncaught Error: Call to undefined function mysql_fetch_array() in C:\xampp\htdocs\immobilier.php:23 Stack trace: #0 {main} thrown in C:\xampp\htdocs\immobilier.php on line 23
<?php try{
$bdd =new PDO('mysql:host=localhost;
 dbname=espace_membre; charset=utf8', 'root', '');
// Activation des erreurs PDO
 $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
 $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}
?>

    <?php  

$requete = $bdd->query( "SELECT *
 FROM articles
     images
where images.idarticle =  articles.id  and categories = 'immobilier' group by idarticle " );


  while($resultat = mysql_fetch_array($requete))

{?>
 
<?php echo $resultat['image'];
   
  ?>
 
   
  
   <?php
  }?>
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745 > ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 
Vu que tu utilises pdo regarde la fonction fetchall
0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention  
 
j'ai pu faire l'array
et le json_encode<gras>
<?php  

$requete = $bdd->query( "SELECT *
 FROM articles
     images
where images.idarticle =  articles.id   group by idarticle " );


  $resultat=$requete->fetchAll(PDO::FETCH_ASSOC);

  foreach($resultat as $row){

$images = htmlentities($row['image']);?>
 
 <Br><?php 
 $ir =  "$images";
$json= json_encode($ir); }
?></br>



<?php 
 $ir =  "$images";
$json= json_encode($ir); }
?></br>
 

<gras>
mais j'arrive pas a introduire dans ce code ci
dans la variable " images "


 <div id="container">
      </div>
      <script>
        window.onload=function(){
          nbr=20;
          cont=document.getElementById("container");        
          images= ['var ir'] 
  
   
          im=0;
          ang=[];
            init();
          }
        function init(){
          for(i=0;i<nbr;i++){
            try{ 
                cont.removeChild(document.getElementById(i));
              }
              catch(e){
                true;
              }
          }
          for(i=0;i<nbr;i++){
            ang[i]=-i*10-90;
              div=document.createElement("div");
              div.style.width=(cont.clientWidth/nbr)+"px";
              div.style.height=cont.clientHeight+"px";
              div.className="maClasse";
              div.setAttribute("id",i);
              div.style.visibiliby="hidden";
              div.style.backgroundImage="url('"+images[im]+"')";
              div.style.backgroundSize=cont.clientWidth+"px auto";
              div.style.backgroundPosition=(i*100/(nbr-1))+"% 50%";
              div.style.transform="perspective(1000px) rotateY("+ang[i]+"deg)";
              cont.appendChild(div);
          }
          animer();    
        }
        function animer(){
            t=setTimeout("animer()",10);            
            for(i=0;i<nbr;i++){
              ob=document.getElementById(i);
              ob.style.transform="perspective(1000px) rotateY("+ang[i]+"deg)";            
              if(ang[i]>-90)
                   ob.style.visibility="visible";
              if (ang[i]<0)
                 ang[i]+=2;
                else 
                  ang[i]=0; 
              if(ang[nbr-1]==0){
                im+=1;
                if(im>images.length-1)
                    im=0;
                  clearTimeout(t);
                  init();
                } 
            } 
        } 

    
      </script>
   
  
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745 > ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 
Essaye
images= '<?php echo $json; ?>';
0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention  
 
dans le code js?
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
Tu peux retirer les quotes à la ligne
images= '<?php echo $json; ?>';

0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 
finalement les "%22" ont disparuent
mais le problème persiste
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
Peux tu nous faire un
print_r($json);

et nous montrer ce que ça te retourne ?

Egalement, ajouter un console.log dans ton js
avant ton script
var mesimages = <?php echo $json; ?>;
console.log('mesimages',mesimages);
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745 > jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention  
 
Typiquement... j'ai testé comme ceci
<?php

  
$arr = ['/image1.jpeg','/image2.jpeg','/image3.jpeg'];

$json = json_encode($arr);
 ?>
    <script>
   var mesimages = <?php echo $json; ?>;
console.log('mesimages',mesimages);
   </script>

Et la variable javascript contient bien mes images au bon format ....
Je suppose donc que tu as raté quelque chose lors de la création de ta variable $json ...
0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention  
 
je crois bien
0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention  
 


voila j'ai fais comme vous l'avait recommandé
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745 > ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 
Dis voir .. tu as utilisé quel code pour générer la variable $json ??
Celui que je t'avais donné ??


Et juste pour les tests... pourrais tu juste essayer avec les images qui marchaient à l'origine dans le script ?
En faisant, dans ton PHP .. juste ça :
$arr = ["images/romarin.jpg","images/chat.jpg","images/zn.jpg","images/chien.jpg","images/ir.jpg"];
$json = json_encode($arr);
print_r($json);
0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 

la c'est quand je met les chemin dans la variable $json coté php
 $arr= ["images/romarin.jpg","images/chat.jpg","images/zn.jpg","images/chien.jpg","images/ir.jpg"];




puis la c'est quand je met les chemins directement dans la variable images du javascript
  images= ["images/romarin.jpg","images/chat.jpg","images/zn.jpg","images/chien.jpg","images/ir.jpg"];

la sa fonction normalemnt
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
Le console.log donne bien la même chose....
As tu bien mis la variable au bon endroit dans ton code js ?

Pourrais tu nous partage ton code complet ( HTML + JS ) ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 
voila c'est le html plus js ainsi

 <!DOCTYPE html>
 <html>
 <head>
   <title></title>
  
 <style>
        #container{
          width: 1000px;
          height: 500px;
          margin: 50px auto;
          }
          .maClasse{
            display: inline-block;
            vertical-align:top;
          }
      </style>

    </head>
    <body>
      <div id="container">
      </div>
     <script>
      var mesimages = <?php echo $json; ?>;
console.log('mesimages',mesimages);


        window.onload=function(){
          nbr=20;
          cont=document.getElementById("container");        
          images= [<?=$json?>];
  
   
          im=0;
          ang=[];
            init();
          }
        function init(){
          for(i=0;i<nbr;i++){
            try{ 
                cont.removeChild(document.getElementById(i));
              }
              catch(e){
                true;
              }
          }
          for(i=0;i<nbr;i++){
            ang[i]=-i*10-90;
              div=document.createElement("div");
              div.style.width=(cont.clientWidth/nbr)+"px";
              div.style.height=cont.clientHeight+"px";
              div.className="maClasse";
              div.setAttribute("id",i);
              div.style.visibiliby="hidden";
              div.style.backgroundImage="url('"+images[im]+"')";
              div.style.backgroundSize=cont.clientWidth+"px auto";
              div.style.backgroundPosition=(i*100/(nbr-1))+"% 50%";
              div.style.transform="perspective(1000px) rotateY("+ang[i]+"deg)";
              cont.appendChild(div);
          }
          animer();    
        }
        function animer(){
            t=setTimeout("animer()",10);            
            for(i=0;i<nbr;i++){
              ob=document.getElementById(i);
              ob.style.transform="perspective(1000px) rotateY("+ang[i]+"deg)";            
              if(ang[i]>-90)
                   ob.style.visibility="visible";
              if (ang[i]<0)
                 ang[i]+=2;
                else 
                  ang[i]=0; 
              if(ang[nbr-1]==0){
                im+=1;
                if(im>images.length-1)
                    im=0;
                  clearTimeout(t);
                  init();
                } 
            } 
        } 

    
      </script>
   
  
  

</body>
</html>
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
Ton code ne correspond pas à ce que je t'ai donné
 images= [<?=$json?>];

A remplacer par
 images = <?php echo $json; ?>;
0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention  
 
c'est noter mais ya toujours le problème

aussi j'ai remarquer que ya des barres inverse qui s'ajoute dans les chemins

sa c'est le resultat du print_r($json);
["images\/romarin.jpg","images\/chat.jpg","images\/zn.jpg","images\/chien.jpg","images\/ir.jpg"]
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745 > ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 
ça c'est normal.
Et donc, que t'affiche la console ?
0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 
c'est ça sa m'affiche en répétition GET http://localhost/undefined 404 (Not Found)
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
Il faut déclarer tes variables en dehors des fonctions si tu veux qu'elles aient une portée "globale"

Code corrigé et fonctionnel
 <?php
 
 $arr = ["images/1.jpg","images/2.png","images/3.png","images/4.jpg"];
$json = json_encode($arr);
print_r($json);
 
 ?>
 
 
 <!DOCTYPE html>
 <html>
 <head>
   <title></title>
  
 <style>
        #container{
          width: 1000px;
          height: 500px;
          margin: 50px auto;
          }
          .maClasse{
            display: inline-block;
            vertical-align:top;
          }
      </style>

    </head>
    <body>
      <div id="container">
      </div>
     <script>
      var mesimages = <?php echo $json; ?>;
      console.log('mesimages',mesimages);

      var nbr=20;
      var cont=document.getElementById("container");        
      var images= mesimages;
      var im=0;
      var ang=[];
      
      window.onload=function(){
         init();
      }
        function init(){
          for(i=0;i<nbr;i++){
            try{ 
                cont.removeChild(document.getElementById(i));
              }
              catch(e){
                true;
              }
          }
          for(i=0;i<nbr;i++){
            ang[i]=-i*10-90;
            div=document.createElement("div");
            div.style.width=(cont.clientWidth/nbr)+"px";
            div.style.height=cont.clientHeight+"px";
            div.className="maClasse";
            div.setAttribute("id",i);
            div.style.visibiliby="hidden";
            div.style.backgroundImage="url('"+images[im]+"')";
            div.style.backgroundSize=cont.clientWidth+"px auto";
            div.style.backgroundPosition=(i*100/(nbr-1))+"% 50%";
            div.style.transform="perspective(1000px) rotateY("+ang[i]+"deg)";
            cont.appendChild(div);
          }
          animer();    
        }
        function animer(){
            t=setTimeout("animer()",10);            
            for(i=0;i<nbr;i++){
              ob=document.getElementById(i);
              ob.style.transform="perspective(1000px) rotateY("+ang[i]+"deg)";            
              if(ang[i]>-90)
                   ob.style.visibility="visible";
              if (ang[i]<0)
                 ang[i]+=2;
                else 
                  ang[i]=0; 
              if(ang[nbr-1]==0){
                im+=1;
                if(im>images.length-1)
                    im=0;
                  clearTimeout(t);
                  init();
                } 
            } 
        } 

    
      </script>
   
  
  

</body>
</html>



0
ir_1997 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup tous marche maintenant
0