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

PHP & Base de données Discussion :

Module de recherche avec PHP MYSQL pour image


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Par défaut Module de recherche avec PHP MYSQL pour image
    Bonjour ,

    j'ai besoin d'aide pour faire un module de recherche sur base de donnée qui a pour effectif d'afficher des images qui sont stocker dans des champs

    j'ai réussi avec un tutoriel à envoyer des images sur la base et à les affiché sur mon site qui prend toutes les image de la base

    je voudrait maintenant au lieu d'afficher toute ces images en séléctionner quelque unes par rapport aux champs nom
    je suis un peu perdu

    voici le code que j'ai déjà

    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
    	<h1>Ma galerie d'images</h1>
     
    	<?php
    	    try {
    		$bdd = new PDO('mysql:host=localhost;dbname=image', 'root', '');
                   } catch (Exception $e) {
    		exit('Erreur : ' . $e->getMessage());
    	    }
     
    	    $reponse = $bdd->query('SELECT id_img, nom, description FROM images');
     
    	    while($result = $reponse->fetch()) 
     
            {
     
     
    		echo '<div>';
    		echo '<a href="apercu.php?id_img='.$result['id_img'].'"><img src="apercu.php?id_img='.$result['id_img'].'" alt="'.$result['nom'].'" title="'.$result['nom'].'" /></a>';
    		echo '<p>Description : '.$result["description"].'</p>';
    		echo '</div>';
    	    }
     
    	    $reponse->closeCursor();
    	?>
    Mon module de recherche non codé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
             <p>
    			<input id="rechDsPg" type="text" value="recherche :" name="rechDsPg" />
    			<input type="button" onclick="trouverMots(document.getElementById('rechDsPg').value);" value="OK">
    		</p>
    et un apercu des images quand on clique dessus

    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
    <?php
        //si nous avons une image
        if(!empty($_GET['id_img'])) {
     
    	//connexion à la base de données
    	try {
    		$bdd = new PDO('mysql:host=localhost;dbname=image', 'root', '');
    	} catch (Exception $e) {
    		exit('Erreur : ' . $e->getMessage());
    	}
     
    	//on sécurise notre donnée
    	$idImg = intval($_GET['id_img']);
     
    	//la requète qui récupère l'image à partir de l'identifiant
    	$req = $bdd->prepare('SELECT extension, img FROM images WHERE id_img = ?');
    	$req->execute(array($idImg));		
     
     
     
     
    	if($req->rowCount() != 1)
    		echo 'L\'image n\'existe pas !';
    	else {
    		//on stocke les données dans un tableau
    		$donnees = $req->fetch();		
    		//on indique qu'on affiche une image
    		header ("Content-type: ".$donnees['extension']);
    		//on affiche l'image en elle même
    		echo $donnees['img'];
    	}
     
    	$req->closeCursor();
     
        } else
               echo 'Vous n avez pas sélectionné d image !';
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as écris quelque part la requête de recherche ?

    Si tu t'orientes vers un traitement Javascript avec cette fonction trouverMots() plutôt qu'utiliser un formulaire HTML, alors ta question est pour Ajax/Javascript.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Par défaut
    je ne veut pas m'orienter javascript

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form action ="search.php" method="post">
    	<span>Recherche par nom :</span> 
    	<input type="text" id="search" name="search"/>
    	<input type="submit" value="Envoyer">
    	<input type="reset" value="Annuler">
    </form>

    j'ai commencé mais je suis pas sur
    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
    <?php
    header('Content-Type: text/html; charset=UTF-8');
     
    // connexion bdd    
    $BDD_hote = 'localhost';
    $BDD_bd = 'images';
    $BDD_utilisateur = 'root';
    $BDD_mot_passe = '';
     
    if(isset($_POST['search'])) {
     
    $chainesearch = addslashes($_POST['search']);  
     
    echo 'Vous avez recherché : ' . $chainesearch . '<br />';      
     
    	try{
    		$bdd = new PDO('mysql:host='.$BDD_hote.';dbname='.$BDD_bd, $BDD_utilisateur, $BDD_mot_passe);
    		$bdd->exec("SET CHARACTER SET utf8");
    		$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    	}
    		catch(PDOException $e){
    		echo 'Erreur : '.$e->getMessage();
    		echo 'N° : '.$e->getCode();
    	}      
     
    	$requete = "SELECT * from images WHERE description  LIKE '". $chainesearch 
    	."%' OR description LIKE '". $chainesearch 
     
        // Exécution de la requête SQL
        $resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
        echo 'Les résultats de recherche sont : <br />';     
        while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {       
    	echo $donnees['img'] .'<br />';
    	}
     
    }
     
    ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    addslashes() n'a rien à faire ici, il faut faire une requête préparée comme tu as déjà fait dans le code pour l'aperçu.
    egalement ne repête pas ton code de connexion partout, fait un fichier séparé que tu inclueras là ou tu en as besoin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    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
    if(isset($_POST['search'])) {
     
    	//connexion à la base de données
    	try {
    		$bdd = new PDO('mysql:host=localhost;dbname=image', 'root', '');
    	} catch (Exception $e) {
    		exit('Erreur : ' . $e->getMessage());
    	}
     
     
    //si nous avons une image
        if(!empty($_GET['description'])) {
     
    	//on sécurise notre donnée
    	$idImg = intval($_GET['description']);
     
    	//la requète qui récupère l'image à partir de l'identifiant
    	$req = $bdd->prepare('SELECT extension, img FROM images WHERE id_img = ?');
    	$req->execute(array($idImg));		
     
     
    	if($req->rowCount() != 1)
    		echo 'L\'image n\'existe pas !';
    	else {
    		//on stocke les données dans un tableau
    		$donnees = $req->fetch();		
    		//on indique qu'on affiche une image
    		header ("Content-type: ".$donnees['extension']);
    		//on affiche l'image en elle même
    		echo $donnees['img'];
    	}
     
     
    	$req->closeCursor();
    } 
    else
               echo 'Vous n avez pas sélectionné d image !';
    }
    ?>
    suis-je dans la bonne voie ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Sauf que c'est pas $_GET['description']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Recherche script PHP/MySQL pour collections/catalogues
    Par elraton dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 24/11/2010, 16h13

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