Inserer une image avec un id

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Inserer une image avec un id

Re: Inserer une image avec un id

par AB » 24 déc. 2014, 06:45

$listebanniere = $bdd->query('SELECT * FROM banniere ORDER BY id');
?>

<div class="carousel-inner" role="listbox">
<div class="item">
<img src="admin/images/portfolio/recent/<?php echo $listebanniere ['image']; ?>">
</div>
</div>
...
</div>
[/php]
Manquerait pas un "fetch()" ou mieux un "fetchColumn()" puisque apparemment tu ne te sert que de la colonne "image". Aussi dans le même ordre d'idée pourquoi faire un "SELECT * " ? Et puis si tu ne sert que d'une ligne faudrait voir à mettre une clause limit dans ta requête.

Bref ça manque un peu d'optimisation. Au passage tu semble faire des requêtes préparées pour les requêtes avec des variables utilisateur. Alors fait pareil pour cette requête
$req=$bdd->query("SELECT * FROM banniere ORDER BY id DESC LIMIT $liste,6")
ou alors prend soin de caster préalablement ta variable en entier (ex : intval($liste))

Re: Inserer une image avec un id

par yoann38 » 20 déc. 2014, 13:49

le code au complet:

Traitement des infos.
<?php
session_start();
if(!empty($_POST))
{
	extract($_POST);
	$validation=true;
	
	if(isset($_FILES['image']) AND $_FILES['image']['error']==0)
	{
		$infos_image=pathinfo($_FILES['image']['name']);
		$extension_image=$infos_image['extension'];
		$ext_autorisees=array('jpg','jpeg','png');
		if($_FILES['image']['size']>2000000)
		{
			$validation=false;
			$erreur_image='L\'image doit être inférieure à 2Mo';
		}
		elseif(!in_array($extension_image,$ext_autorisees))
		{
			$validation=false;
			$erreur_image='L\'image doit être au format jpg, jpeg ou png';
		}
	}
	else
	{
		$validation=false;
		$erreur_image='Indiquez l\'image que vous souhaitez publier';
	}

	
	
	if(empty($titre))
	{
		$validation=false;
		$erreur_titre='Il manque un titre';
	}
	
	if($validation)
	{
		$image=$_FILES['image']['name'];
		$tmp_name=$_FILES['image']['tmp_name'];
		include('bdd.php');
		$req=$bdd->prepare('INSERT INTO banniere (titre,image) VALUES (:titre,:image)');
		$req->execute(array(
			'titre'=>$titre,
			'image'=>$image
		));
		

		
		$req->closeCursor();
		move_uploaded_file($tmp_name,"images/portfolio/recent/$image");
		$valide='L\'envoi de l\'image a bien été effectué !';
		unset($nom);
		unset($auteur);
	}
}
?>


J'affiche mes images dejà presente en bdd:
   <?php
		include('bdd.php');
		$nombre=$bdd->query("SELECT * FROM banniere ORDER BY id DESC");
		$total=$nombre->rowCount();
		$nb_page=$total/6;
		if(!isset($_GET['page'])){$page_actuelle=1;}else{$page_actuelle=$_GET['page'];}
		$liste=6*$page_actuelle-6;
		$req=$bdd->query("SELECT * FROM banniere ORDER BY id DESC LIMIT $liste,6");
		$compteur=0;
		while($donnees_select=$req->fetch())
		{
			$compteur=$compteur+1;
			?>

		<div class="col-md-4">
            <a href="images/portfolio/recent/<?php echo $donnees_select['image']; ?>" rel="lightbox" class="effet" title="<?php echo $donnees_select['titre']; ?> ">
            <div class="cadre"><?php echo $donnees_select['titre']; ?> </div>
            </a><img src="images/portfolio/recent/<?php echo $donnees_select['image']; ?>" <?php if($compteur!=3){?><?php }else{$compteur=0;} ?>/>
        </div>
            <?php
		}
		?>

        // Pagination

        <div class="pagination">
        	<br>
            <?php
			$compteur_page=0;
			while($compteur_page<$nb_page)
			{
				$compteur_page=$compteur_page+1;
				?>
                <a href="index.php?page=<?php echo $compteur_page; ?>" <?php if($page_actuelle==$compteur_page){ ?>style="color:#e30059;text-decoration:underline;"<?php } ?>>Page <?php echo $compteur_page; ?></a> -
                <?php
			}
			?>
        </div>



J'integrer en bdd ( partie administration si on veut )
 Publier une nouvelle banniere
            <div class="ligne"></div>
            
          <form method="post" action="banniere.php" enctype="multipart/form-data">
            	<?php if(isset($valide)){ ?><div class="valide"><?php echo $valide; ?></div><?php } ?>
                
                
                <label>Titre</label>
                <input class="form-control" type="text" name="titre" value="<?php if(isset($titre))echo $titre; ?>"/><?php if(isset($erreur_titre)){ ?><div class="erreur"><?php echo $erreur_titre; ?></div><?php } ?>
                <br>

                <label>Photo</label>
                <input type="file" name="image"/><?php if(isset($erreur_image)){ ?><div class="erreur_image"><?php echo $erreur_image; ?></div><?php } ?>
                <br>
                <input class="send" type="submit" value="ENVOYER"/>
            </form>







Et maintenant dans une autre page j'affiche les bannieres ( la partie visible par l'utilisateur )
// le chemin est correct on retrouve bien les photos inserer grace au formulaire et donc tt est bien integrer en bdd

<div id="myCarousel" class="carousel slide" data-ride="carousel">

<?php
$listebanniere = $bdd->query('SELECT * FROM banniere ORDER BY id');
?>

      <div class="carousel-inner" role="listbox">
        <div class="item">
        <img src="admin/images/portfolio/recent/<?php echo $listebanniere ['image']; ?>">
        </div>
      </div>
      
      <a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
        <span class="glyphicon glyphicon-chevron-left"></span>
        <span class="sr-only">Previous</span>
      </a>
      <a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
        <span class="glyphicon glyphicon-chevron-right"></span>
        <span class="sr-only">Next</span>
      </a>
</div>

Re: Inserer une image avec un id

par Megadeth » 19 déc. 2014, 16:52

Slt,

C'est quoi le code complet qui gère l'affichage. Tu l'as ou c'est ce que tu demandes ?

Physiquement sur le serveur est-ce que l'image existe ?

Mega
;)

Re: Inserer une image avec un id

par yoann38 » 18 déc. 2014, 23:41

Salut,
Alors en fait ma table est nommé banniere et dans celle ci j'ai 3 champs

- id
- titre
- image

Tt s'insere bien en bdd et je suis sur du chemin lors de mon echo

en bdd je revois par exemple:
id : 1
titre: photo de test
image: sliderinternet5.png

Merci encore

Re: Inserer une image avec un id

par moogli » 18 déc. 2014, 23:34

salut,

avec ce que tu veux faire il te faut le nom de l'image sur le disque sinon cela ne peux fonctionner.

il y a quoi exactement dans la base de données ? (le nom, une partie du nom, l'image elle même ?)


@+

Inserer une image avec un id

par yoann38 » 18 déc. 2014, 20:37

Salut je recupere en bdd ma photo qui a un id et je souhaite donc affiché l'image de cet id

<?php
$listebanniere = $bdd->query('SELECT * FROM banniere ORDER BY id');
?>

et je souhaite afficher comme ceci
<div class="item">
<img src="images/portfolio/recent/<?php echo $donnees_select['image']; ?>">
</div>

Merci de votre aide