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 :

Script PHP de Formulaire de recherche simple dans BDD [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Par défaut Script PHP de Formulaire de recherche simple dans BDD
    Bonjour à toutes et tous,

    Bonne année à tout le monde !

    Pour être clair dès le début, je suis un vieux monsieur et je ne sais pas coder.
    Je cherche un script "clef en main" de moteur de recherche simple avec affichage des résultats.
    Ma BDD contient une table "utilisateur" avec nom, prénom, mail, date de naissance, etc,etc..
    Je souhaiterais que dans la barre de recherche, on tape un nom et qu'ensuite s'affiche sous forme de tableau quelques autres valeurs sélectionnées correspondant au nom trouvé
    Quelqu'un peut-il m'aider à trouver ça ?
    J'ai cherché des heures sur le net sans rien trouver. HELP PLEASE !
    (Je saurais sans doute adapter le script à ma base de données)

    Merci beaucoup d'avance

    Piluche

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    avec une base de donnée Mysql nommée "test" et une table nommée "recherche", ce code est fonctionnel (testé).

    index.php
    Code php : 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
     
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8"/>
    	<title>Recherche</title>
    	<style>
    		table{width:100%;border-collapse:collapse}
    		table tr,table th,table td{border:1px solid black;}
    		table tr td{text-align:center;padding:1em;}
    	</style>
    </head>
    <body>
    	<?php include('connection_database.php');?>
    	<form method='post'>
    		<input type='text' placeholder='recherche' name="recherche_valeur"/>
    		<input type='submit' value="Rechercher"/>
    	</form>
    	<table>
    		<thead>
    			<tr><th>Nom</th><th>Prenom</th><th>Email</th><th>Date_naissance</th></tr>
    		</thead>
    		<tbody>
    			<?php
    				$sql='select * from recherche';
    				$params=[];
    				if(isset($_POST['recherche_valeur'])){
    					$sql.=' where nom like :nom';
    					$params[':nom']="%".addcslashes($_POST['recherche_valeur'],'_')."%";
    				}
    				$resultats=$connect->prepare($sql);
    				$resultats->execute($params);
    				if($resultats->rowCount()>0){
    					while($d=$resultats->fetch(PDO::FETCH_ASSOC)){
    					?>
    						<tr><td><?=$d['nom']?></td><td><?=$d['prenom']?></td><td><?=$d['mail']?></td><td><?=$d['date_naissance']?></td></tr>
    					<?php
    					}
    					$resultats->closeCursor();
    				}
    				else echo '<tr><td colspan=4>aucun résultat trouvé</td></tr>'.
    				$connect=null;
    			?>
    		</tbody>
    	</table>
    </body>
    </html>

    connection_database.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
     
    //connection_database.php
     
    $connect = new PDO('mysql:host=localhost;dbname=test', 'root', '',[
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
      ]);
     
    ?>

    Remarque :
    L'utilisation de la fonction addcslashes($_POST['recherche_valeur'],'_') permet d'échapper le caractère spécial "_" dans la chaîne envoyée.
    Si tu l'enlèves et puis tu tape "_" en premier dans la zone de texte et tu appuie sur le bouton recherche, le "_" ne sera pas pris en considération.

    j'espère que ça t'aidera.

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Par défaut Moteur de recherche
    Merci Toufik83,

    Je ne suis pas un "pro" du codage - plutot un "bleu" - et je ne sais pas trop comment faire fonctionner ça
    Quelles étapes successives ?

    Ma base s'appelle tgeparis et la table Joueur
    Dans cette table, je veux faire remonter les valeurs des colonnes NOM, Prénom, Licence et Origine

    Tu peux m'en dire un peu plus ?
    Merci d'avance

    Piluche

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    est ce que c'est une base de donnée Mysql ou autre ?

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Par défaut Moteur de recherche
    Oui, c'est une base Mysql 5.5 installée chez mon hébergeur et sur laquelle s'appuie des scripts du site en Php
    Je souhaiterais intégrer ce moteur sur mon site ( dans mon theme Wordpress) pour qu'il cherche dans cette base de données

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    Tout d'abord il faut mettre les deux fichiers sur ton serveur, et dans ton thème Wordpress tu mets un lien qui redirige l'utilisateur vers la page de recherche (celle que je t'ai envoyé).

    Il faut aussi mettre les bons identifiants pour te connecter à ta base, le nom de domaine et le nom la base de donnée + le nom d'utilisateur + le mot de passe.

    Pour faire ça remplace "localhost" par "ton nom de domaine", le mot "test" par "tgeparis" et "root" par le nom d'utilisateur que ton hébergeur te l'a fourni et le mot de passe juste après.

    moi je n'ai pas de mot de passe Mysql c'est pour ça que j'ai rien mis après "root".
    en gros ça donne ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    try{
       $connect = new PDO('mysql:host=Nom_de_domaine;dbname=tgeparis', 'Nom_utilisateur', 'Mot_de_passe_utilisateur_mysql',[
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
      ]);
      echo 'Connexion effectuée avec succès';//s'assurer que la connexion est OK
    }catch(Exception $e){
    	echo "Erreur de connexion à la base :".$e->getMessage();//au cas ou il y a une erreur de Connexion, ce message s'affichera
    }

    Modifie aussi le nom de la table "recherche" en "Joueur" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql='select * from Joueur';
    Concernant les noms des colonnes, tout est ici
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><td><?=$d['nom']?></td><td><?=$d['prenom']?></td><td><?=$d['mail']?></td><td><?=$d['date_naissance']?></td></tr>
    si tu veux récupérer par exemple le champ Licence, tu n'as qu'a mettre <?=$d['Licence']?> dans un td.

  7. #7
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Par défaut Moteur de recherche
    Merci beaucoup
    Ca roule !
    C'est super , merci ,merci
    Me reste à appliquer le style de mon site à ces 2 scripts

    Piluche

  8. #8
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Par défaut Moteur de recherche
    Le nom à rechercher est écrit dans la base en majuscules

    Quand on recherche un nom en minuscule, ça ne remonte rien !

    Il y a un moyen de contourner ça ? et faire en sorte que en majuscules ou minuscules, ça marche à tous les coups ?

    Et j'ai un autre problème :

    Quand on appelle le fichier "recherche", TOUTES les valeurs de la BDD s'affichent en dessous du formulaire de recherche. Pas normal
    Quand on tape un nom, lui seul s'affiche.

    Merci de ton aide précieuse

    Piluche
    "un vieux monsieur"(70 ans)

  9. #9
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    oui, elle existe la fonction strtoupper, il faut la mettre dans la ligne
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $params[':nom']="%".strtoupper(addcslashes($_POST['recherche_valeur'],'_'))."%";

    Edit :
    Citation Envoyé par piluche Voir le message
    Et j'ai un autre problème :

    Quand on appelle le fichier "recherche", TOUTES les valeurs de la BDD s'affichent en dessous du formulaire de recherche. Pas normal
    Quand on tape un nom, lui seul s'affiche.
    oui j'ai mis ça par défaut, pour ne pas avoir une page vide.
    c'est très normal qu'on voit toutes les lignes au chargement de la page.

  10. #10
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Par défaut Merci encore
    Citation Envoyé par Toufik83 Voir le message
    oui, elle existe la fonction strtoupper, il faut la mettre dans la ligne
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $params[':nom']="%".strtoupper(addcslashes($_POST['recherche_valeur'],'_'))."%";
    Merci, c'est nickel
    Me reste à régler l'application du style CSS du site et le problème d'affichage de la totalité de la table.
    Et ce sera génial

    Amicalement,
    Piuche, reconnaissant

  11. #11
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    De rien, on est là pour s'entre aider.
    si ton souci est résolu, je t'invite d’appuyer sur le bouton en bas de la page.

  12. #12
    Membre confirmé
    Femme Profil pro
    piano
    Inscrit en
    Décembre 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : piano
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2011
    Messages : 131
    Par défaut
    Bonjour,

    En cherchant un formulaire de recherche, j'ai vu ce message et j'essaie de l'adapter pour mon cas.
    J'ai un petit problème, car je reçois le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'where annee like '%2015%'' à la ligne 4 in C:\wamp64\www\chaletgestion\recherche.php on line 35
    ( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'where annee like '%2015%'' à la ligne 4 in C:\wamp64\www\chaletgestion\recherche.php on line 35
    Voici comment j'ai adapté 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
    48
    49
    50
    51
    52
    53
    54
     
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8"/>
    	<title>Recherche</title>
    	<style>
    		table{width:100%;border-collapse:collapse}
    		table tr,table th,table td{border:1px solid black;}
    		table tr td{text-align:center;padding:1em;}
    	</style>
    </head>
    <body>
    	<?php include('include/db_inc_pdo.php');?>
    	<form method='post'>
    		<input type='text' placeholder='recherche' name="recherche_valeur"/>
    		<input type='submit' value="Rechercher"/>
    	</form>
    	<table>
    		<thead>
    			<tr><th>Annee</th></tr>
    		</thead>
    		<tbody>
    			<?php
    				$sql='SELECT  
    DATE_FORMAT( datearrive, "%d/%m/%Y" ) AS datea, DATE_FORMAT( datedepart, "%d/%m/%Y" ) AS dated, DATE_FORMAT( datearrive, "%Y" ) AS annee, DATEDIFF(datedepart,datearrive ) AS datediff, dateloca.nombre, dateloca.prixlocation, dateloca.caution, (dateloca.prixlocation+dateloca.caution+dateloca.linge+dateloca.litbaby) as PT, (dateloca.apaiement+dateloca.bpaiement+dateloca.cpaiement) as Totalpaye, (dateloca.prixlocation+dateloca.caution+dateloca.linge+dateloca.litbaby-dateloca.apaiement-dateloca.bpaiement-dateloca.bpaiement) as Reste, (dateloca.apaiement+dateloca.bpaiement+dateloca.cpaiement-dateloca.caution) as Totalrevenu, dateloca.apaiement, DATE_FORMAT( dateapaiement, "%d/%m/%Y" ) AS dateunp, dateloca.bpaiement, DATE_FORMAT( datebpaiement, "%d/%m/%Y" ) AS datedeuxp, dateloca.cpaiement, DATE_FORMAT( datecpaiement, "%d/%m/%Y" ) AS datetroisp, dateloca.linge, dateloca.litbaby, dateloca.degatspayes, dateloca.nonpaye, dateloca.remarques, dateloca.restitution, DATE_FORMAT( datelettre, "%d/%m/%Y" ) AS datel, (dateloca.prixlocation+dateloca.caution+dateloca.linge+dateloca.litbaby-dateloca.apaiement-dateloca.bpaiement-dateloca.cpaiement) as Reste, dateloca.appart, dateloca.envoitarifs, dateloca.envoidescriptif, dateloca.paragraphesup, dateloca.confirmation, dateloca.annul, dateloca.enfants, locataires.nom, locataires.prenom
    FROM dateloca
    INNER JOIN locataires ON  dateloca.idnoms = locataires.idnoms WHERE locataires.reserve = "oui" AND dateloca.annul =2 AND dateloca.prixlocation >0';
    				$params=[];
    				if(isset($_POST['recherche_valeur'])){
    					$sql.=' where annee like :annee';
    					$params[':annee']="%".addcslashes($_POST['recherche_valeur'],'_')."%";
    				}
    				$resultats=$pdo->prepare($sql);
    				$resultats->execute($params);
    				if($resultats->rowCount()>0){
    					while($d=$resultats->fetch(PDO::FETCH_ASSOC)){
    					?>
     
     
    						<tr><td><?=$d['annee']?></td><td><?=$d['nom']?></td><td><?=$d['prenom']?></td></tr>
     
     
    					<?php
    					}
    					$resultats->closeCursor();
    				}
    				else echo '<tr><td colspan=4>aucun résultat trouvé</td></tr>'.
    				$connect=null;
    			?>
    		</tbody>
    	</table>
    </body>
    </html>
    Ce que je veux faire en réalité, c'est un formulaire dans lequel j'écris une année et qui m'affiche tous les résultats pour cette année-là. J'avais réussi à le faire avec PHP5 mais je n'arrive pas à adapter mon code en PHP7.

    D'avance merci pour votre aide et bon dimanche

  13. #13
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    J'ai pas tout lu.
    Mais ton erreur SQL, c'est que tu mets where dans une jointure, alors que c'est and
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    on blablabla and bliblibli and blobloblo

    edit : à part ça, pourquoi tu ne fais pas un nouveau sujet ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  14. #14
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Donc teste cette requête SQL dans ton PHPmyadmin (ou autre accesseur graphique à ta DB)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT  
    DATE_FORMAT( datearrive, "%d/%m/%Y" ) AS datea, DATE_FORMAT( datedepart, "%d/%m/%Y" ) AS dated, DATE_FORMAT( datearrive, "%Y" ) AS annee, DATEDIFF(datedepart,datearrive ) AS datediff, dateloca.nombre, dateloca.prixlocation, dateloca.caution, (dateloca.prixlocation+dateloca.caution+dateloca.linge+dateloca.litbaby) as PT, (dateloca.apaiement+dateloca.bpaiement+dateloca.cpaiement) as Totalpaye, (dateloca.prixlocation+dateloca.caution+dateloca.linge+dateloca.litbaby-dateloca.apaiement-dateloca.bpaiement-dateloca.bpaiement) as Reste, (dateloca.apaiement+dateloca.bpaiement+dateloca.cpaiement-dateloca.caution) as Totalrevenu, dateloca.apaiement, DATE_FORMAT( dateapaiement, "%d/%m/%Y" ) AS dateunp, dateloca.bpaiement, DATE_FORMAT( datebpaiement, "%d/%m/%Y" ) AS datedeuxp, dateloca.cpaiement, DATE_FORMAT( datecpaiement, "%d/%m/%Y" ) AS datetroisp, dateloca.linge, dateloca.litbaby, dateloca.degatspayes, dateloca.nonpaye, dateloca.remarques, dateloca.restitution, DATE_FORMAT( datelettre, "%d/%m/%Y" ) AS datel, (dateloca.prixlocation+dateloca.caution+dateloca.linge+dateloca.litbaby-dateloca.apaiement-dateloca.bpaiement-dateloca.cpaiement) as Reste, dateloca.appart, dateloca.envoitarifs, dateloca.envoidescriptif, dateloca.paragraphesup, dateloca.confirmation, dateloca.annul, dateloca.enfants, locataires.nom, locataires.prenom
    FROM dateloca
    INNER JOIN locataires ON  dateloca.idnoms = locataires.idnoms AND locataires.reserve = "oui" 
    WHERE dateloca.annul =2 AND dateloca.prixlocation >0;
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  15. #15
    Membre confirmé
    Femme Profil pro
    piano
    Inscrit en
    Décembre 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : piano
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2011
    Messages : 131
    Par défaut
    Désolée, je n'ai pas fait de nouveau sujet car j'ai trouvé ce message et j'ai pensé (à tort !) qu'il fallait répondre sur ce sujet

    Merci, je vais testé la requête sur phpmyadmin

  16. #16
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    https://www.developpez.net/forums/bl...pdo-soupe-lit/

    Code PHP : 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
     
    <?php
    if(! empty($_POST['recherche_valeur']) && (int)$_POST['recherche_valeur'] >= 1900 && (int)$_POST['recherche_valeur'] <= 3000){
      include('include/db_inc_pdo.php');
      $sql='SELECT  
      DATE_FORMAT( datearrive, "%d/%m/%Y" ) AS datea, DATE_FORMAT( datedepart, "%d/%m/%Y" ) AS dated, DATE_FORMAT( datearrive, "%Y" ) AS annee, DATEDIFF(datedepart,datearrive ) AS datediff, dateloca.nombre, dateloca.prixlocation, dateloca.caution, (dateloca.prixlocation+dateloca.caution+dateloca.linge+dateloca.litbaby) as PT, (dateloca.apaiement+dateloca.bpaiement+dateloca.cpaiement) as Totalpaye, (dateloca.prixlocation+dateloca.caution+dateloca.linge+dateloca.litbaby-dateloca.apaiement-dateloca.bpaiement-dateloca.bpaiement) as Reste, (dateloca.apaiement+dateloca.bpaiement+dateloca.cpaiement-dateloca.caution) as Totalrevenu, dateloca.apaiement, DATE_FORMAT( dateapaiement, "%d/%m/%Y" ) AS dateunp, dateloca.bpaiement, DATE_FORMAT( datebpaiement, "%d/%m/%Y" ) AS datedeuxp, dateloca.cpaiement, DATE_FORMAT( datecpaiement, "%d/%m/%Y" ) AS datetroisp, dateloca.linge, dateloca.litbaby, dateloca.degatspayes, dateloca.nonpaye, dateloca.remarques, dateloca.restitution, DATE_FORMAT( datelettre, "%d/%m/%Y" ) AS datel, (dateloca.prixlocation+dateloca.caution+dateloca.linge+dateloca.litbaby-dateloca.apaiement-dateloca.bpaiement-dateloca.cpaiement) as Reste, dateloca.appart, dateloca.envoitarifs, dateloca.envoidescriptif, dateloca.paragraphesup, dateloca.confirmation, dateloca.annul, dateloca.enfants, locataires.nom, locataires.prenom
      FROM dateloca
      INNER JOIN locataires ON  dateloca.idnoms = locataires.idnoms AND locataires.reserve = "oui" 
      WHERE dateloca.annul =2 
      AND dateloca.prixlocation >0
      AND YEAR(datearrive) = ?;';
      $stmt=$pdo->prepare($sql);
      $stmt->execute(array($_POST['recherche_valeur']));
      $data= $stmt->fetchAll(PDO::FETCH_ASSOC);
      if(count($data)>0){
        //ici tu construis ton tableau HTML avec une boucle du type
        foreach($data as $row){
          //mais attention, pour l'affichage, tu ajoutes ça
          <?= htmlspecialchars($row['datea']) ?>
        }
      }
      else{
        echo '<p>Aucune location en '.$_POST['recherche_valeur'].'</p>';
      }
      unset($pdo);
    }

    edit : je ne comprends pas pourquoi la coloration syntaxique indique une défaillance... Teste ce code...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  17. #17
    Membre confirmé
    Femme Profil pro
    piano
    Inscrit en
    Décembre 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : piano
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2011
    Messages : 131
    Par défaut
    Désolée je ne comprends pas comment faire

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

Discussions similaires

  1. [MySQL-5.6] Script Formulaire de recherche simple dans BDD
    Par piluche dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/01/2019, 11h17
  2. [AC-2007] Recherche simple dans un formulaire
    Par luminium dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/04/2010, 10h24
  3. script php pour formulaire
    Par ammi2006 dans le forum Langage
    Réponses: 3
    Dernier message: 10/10/2006, 00h48
  4. Dans formulaire de recherche avancée dans Access
    Par LeSuisse1 dans le forum Access
    Réponses: 1
    Dernier message: 24/04/2006, 15h59

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