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 :

Interroger une base via un formulaire php [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Interroger une base via un formulaire php
    Bonjour à tous,

    J'ai à réaliser un site web permettant d'interroger une base de données.
    Mais voilà je suis confrontée à un problème : depuis 4 jours je n'ai de cesse de modifier mon code, et visiblement le problème vient cette partie du code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $titre=$_POST['titre'];
     
    $query = 'SELECT Titre, Resume, Motclef, LienMemoire FROM memoire WHERE Titre=".['$titre'].";';
    $result = mysql_query($query) or die('Erreur dans la requête : ' . mysql_error())
    ;

    Quelqu'un peut-il éclairer ma lanterne ? J'ai vérifié 100 fois mes noms de champs et de table, le problème ne peut venir que d'une mauvaise syntaxe (syntax error, unexpected T_VARIABLE).

    Par avance, grand merci !

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    je pense que le probleme viens du fait que t'ai oublie les quotes simple pour le Titre dans ta requete SQL.
    de plus, les corchets autour de $titre sont inutils
    essaye ca :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT Titre, Resume, Motclef, LienMemoire FROM memoire WHERE Titre='".$titre."';";

    au passage, il faudra penser a securiser tout ca
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Alors maintenant ça me dit que ma variable titre n'est pas définie :
    Notice: Use of undefined constant titre - assumed 'titre' in C:\wamp\www\Site_Assoc\pages\recherche_memoire.php on line 157
    Ce qui donne une erreur ici :
    Je m'excuse vraiment, mais je ne comprends pas comment je peux résoudre ça.
    Quand vous dîtes "sécuriser tout ça", ça signifie quoi au juste ? Parce que j'avoue que si je n'arrive déjà pas à faire un pauvre formulaire de recherche simplissime (j'angoisse d'ailleurs quand je vais devoir croiser des champs de formulaires ...), j'ai bien peur qu'ajouter du code ne (me) sois pas possible.

  4. #4
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 374
    Points
    19 374
    Par défaut
    Bonjour,

    Il ne fallait pas enlever les quotes au niveau de la déclaration de ta variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $titre = $_POST['titre'];
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai enlevé mes simples quotes car avec j'obtiens cette erreur :
    Notice: Undefined index: titre in C:\wamp\www\Site_Assoc\pages\recherche_memoire.php on line 160
    La ligne est celle de ma déclaration de variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $titre=$_POST['titre'];

  6. #6
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 374
    Points
    19 374
    Par défaut
    Ca, ça veut juste dire que $_POST['titre'] n'existe pas.

    Il faut toujours prendre l'habitude de tester l'existence de tes variables avan des les affecter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!empty($_POST['titre'])) {
    $titre = $_POST['titre'];
    }
    Maintenant à toi de voir pourquoi ta variable n'est pas passée.
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Comment ne peut-il pas exister, je pensais que je le créais justement grâce à ça ?

    Je ne comprends pas pourquoi ma variable titre est tjs indéfinie, le message s'affiche sans que j'ai eu le tps de lancer une requête. Ma requête est validée dans phpmyadmin.

    Pardon, mais je n'ai justement pas du tout les connaissances pour savoir :

    1 - ce que je dois comprendre du message d'erreur
    2 - ce que je dois chercher dans le manuel php
    3 - ce que je dois chercher comme aide sur les forums

    J'ai été parachutée sur ce projet, moi qui suis d'habitude du côté utilisateur, là je suis complètement paumée.

  8. #8
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 374
    Points
    19 374
    Par défaut
    Non, tu crées la variable $titre sur cette ligne.

    $_POST['titre'] c'est du contenu passé en POST, c'est à dire à l'envoi d'un formulaire ( via un bouton submit ).
    Tu dois donc avoir dans ton formulaire un input qui s'appelle "titre" pour pouvoir récupérer sa valeur grâce à $_POST['titre'].

    Et il est normal que ta requête ne s'effectue pas puisque l'erreur intervient en amont
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  9. #9
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai bien un formulaire avec un input de texte nommé titre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="recherche_memoire.php" method="POST" id="recherche_memoire" name="recherche_memoire">
    				<p>Rechercher un titre :</p>
    				<label>Entrez un titre :</label><input type="text" name="titre"  id="titre" size="50" />
    				<input type="submit" name="envoi" id="envoi" value="Envoyer" />
    		</form>
    Mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action="recherche_memoire.php"
    appelle la page courante.

  10. #10
    Expert éminent sénior

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Points : 19 374
    Points
    19 374
    Par défaut
    Si le traitement se fait sur la même page, c'est normal que tu aies ton erreur.

    C'est pour ça que j'ai rajouté le !empty. Puisqu'en fait tu arrives sur la page, et tu passes d'abord dans ton code de traitement PHP.
    Or comme c'est ta première connexion, aucune donnée n'est encore passée en POST, donc $_POST['titre'] n'existe pas encore, et tu as ton erreur
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2010, 18h16
  2. Interroger une base access via le web
    Par pascale86 dans le forum Access
    Réponses: 1
    Dernier message: 15/03/2007, 15h33
  3. Connexion sur une base via BDE (pb de User Name)
    Par Sharky21 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/12/2004, 10h31
  4. [dbase] Possibilité de gèrer une base via c++?
    Par WriteLN dans le forum C++
    Réponses: 6
    Dernier message: 08/11/2004, 17h27
  5. [ODBC][WINDOWS] gérer une base via ODBC
    Par narmataru dans le forum Windows
    Réponses: 2
    Dernier message: 19/12/2003, 13h36

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