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 :

Afficher le résultat d'une requete variable (SQL) via PHP [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Afficher le résultat d'une requete variable (SQL) via PHP
    Bonjour,

    J'ai un petit problème, qui commence d'ailleurs à me décourager. Voilà plusieurs longues heures que je cherche et teste sans aucun résultat. C'est pour cela que je viens vers vous.
    Topo de la situation : j'ai un projet de site web à créer, dans lequel je dois insérer une fonction rechercher dans la base de donnée qui va avec. Donc j'ai beau tester, le résultat de la requête ne s'affiche jamais, je dois avoir un problème dans mon code. Pour info, je suis vraiment une très très grande débutante dans PHP ! Et même si la réponse vous parait bête, elle me servira à mieux comprendre Je vous mets donc mon code :

    <?php
    $host = localhost;
    $user = root;
    $bdd = bibliotheque_municipale;
    $passwd = '';
    mysql_connect ($host, $user, $passwd) or die ("Erreur de connexion à MySQL");
    mysql_select_db($bdd) or die ("Erreur de connexion à la base de donnée");
    ?>
    <form method="post" action="catalogue.php">
    <p>
    <label id="invisible">Invisible</label><br/>
    <label>Auteur</label><br/><input type="text" name="auteur"/><br/>
    <label>Titre</label><br/><input type="text" name="titre"/><br/>
    <label>Editeur</label><br/><input type="text" name="editeur"/><br/>
    <label>Date de publication</label><br/><input type="text" name="date_de_publication"/><br/><br/>
    <input type="submit" name="rechercher" value="Rechercher"/>
    </p>
    </form>
    <?php
    if (isset ($_POST['rechercher']))
    {
    $auteur=$_POST['auteur'];
    $titre=$_POST['titre'];
    $editeur=$_POST['editeur'];
    $date_publication=$_POST['date_de_publication']
    }
    ?>
    <?php
    $host = localhost;
    $user = root;
    $bdd = bibliotheque_municipale;
    $passwd = '';
    mysql_connect ($host, $user, $passwd) or die ("Erreur de connexion à MySQL");
    mysql_select_db($bdd) or die ("Erreur de connexion à la base de donnée");
    $sql='SELECT titre, auteur, editeur, date_de_publication FROM ouvrage WHERE titre=$titre, auteur=$auteur, editeur=$editeur, date_de_publication=$date_publication ouvrage.Num_ouvrage NOT IN (SELECT Num_ouvrage FROM emprunt)';
    mysql_query($sql) or die ('Erreur SQL !' .$sql. '<br/>' .mysql_error());
    mysql_close();
    }
    ?>
    Petite explication : j'ai déclaré les variables sur la page où elles sont saisies, et j'ai créé la requete sur la page où elles sont envoyées. Vaut-il mieux faire tout sur une seule page ou est-ce que cela peut marcher sur deux pages, une pour la transmission des données, l'autre pour l'exécution de la requête ?

    Donc, au niveau de la connexion à la base de données, pas de problème. Pourtant je bloque complètement sur l'exécution de la requête. Il me faut pouvoir chercher un bouquin dans la base de donnée selon son auteur, son titre, son éditeur ou sa date de publication. J'aimerai aussi ajouter "disponible" ou "non disponible" pour chaque livre via MySQL.

    La table a trois tables : ouvrage, emprunt et emprunteur. Pour le disponible il faudrait vérifier dans les emprunts s'il l'est ou non.

    Je suis un peu perdue, quelqu'un pour m'aider ? Le sujet est là pour faire marcher le code, le reste est un bonus

    Je vous remercie de m'avoir lue ! Bonne journée à tous

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Hello

    (utilise les balises [code] en lieu et place des balises [quote])

    Y'a un truc qui me chiffonne dans ton code, je ne comprends pas pourquoi tu ne réccupères pas les résultats de ta requête si c'est pour après te plaindre qu'il ne sont pas affichés... Il ne vont pas sortir à l'écran tout seuls

    Mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $results = mysql_query($sql) or die ('Erreur SQL !' .$sql. '<br/>' .mysql_error());
    while ($row = mysql_fetch_assoc($results)) {
      var_dump($row);
    }
    Et remplace le var_dump par l'affichage que tu veux obtenir.

    Note: le <p> dans ton <form> pourrait avantageusement être remplacé par un <fieldset>.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Je te remercie vraiment pour ton aide

    Alors, j'avoue que je n'avais pas réessayer d'afficher dans ce code car ça ne m'affiche jamais rien ^^

    Je prends note pour le code au lieu de quote au passage.

    Donc, j'ai changé comme tu me l'as expliqué, malheureusement ça m'affiche toujours la même chose quand je teste :

    .mysql_error()); while ($row = mysql_fetch_assoc($results)) { var_dump($row); } mysql_close(); ?>

    C'est donc ce que je vois à l'écran. D'où cela peut-il venir ? En fait, à chaque fois ça m'affiche la fin de mon code php :/ Il y a bien tous les points virgules et la fermeture du php pourtant ><

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Appelle ton script php en passant par apache, c'est à dire avec http:// et non pas avec file:// dans ton navigateur

    Juste pour info, tu es passée par là: http://www.developpez.net/forums/d68...tants-presses/ ??

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Oui, je suis allée faire un tour sur le tutoriel et je l'ai mis dans mes signets pour pouvoir le lire en entier

    Sinon, après avoir ouvert le site avec Apache ça a l'air de vouloir marcher mais l'on me dit :

    Notice: Use of undefined constant localhost - assumed 'localhost' in C:\wamp\www\Site Web Bibli\catalogue.php on line 29

    Notice: Use of undefined constant root - assumed 'root' in C:\wamp\www\Site Web Bibli\catalogue.php on line 30

    Notice: Use of undefined constant bibliotheque_municipale - assumed 'bibliotheque_municipale' in C:\wamp\www\Site Web Bibli\catalogue.php on line 31
    Erreur SQL !SELECT titre, auteur, editeur, date_de_publication FROM ouvrage WHERE titre=$titre, auteur=$auteur, editeur=$editeur, date_de_publication=$date_publication ouvrage.Num_ouvrage NOT IN (SELECT Num_ouvrage FROM emprunt)
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' auteur=$auteur, editeur=$editeur, date_de_publication=$date_publication ouvrage' at line 1
    Donc, d'où viennent les erreurs d'identifiants ? Pourtant ce sont bien ceux par défaut :/ Et pour la syntaxe MySQL, les variables doivent-elles être entre parenthèse ?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    c'est les bases de PHP ça, pour écrire une chaine c'est avec les guillemets autour....

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci pour ton intervention stealth35 Toutefois, on apprend tous un jour et je n'ai jamais pratiqué, alors ce n'est pas tellement "choquant" je pense que je sois étourdie à propos de certaines choses. Même si c'est la base. Ce n'est pas croyable qu'il y ai toujours quelqu'un, en tout cas sur mes posts, pour me prendre de haut parce que je ne suis qu'une pauvre débutante et que je pose des questions qui vous paraisses tellement logiques, et qui ne le sont pas pour moi. Enfin, merci une recherche a répondu à ma question et j'ai résolu presque tous les problèmes

    Une dernière question, donc, et je vous laisse tranquille : existe-t-il un caractère permettant, comme dans SQL, de remplacer des caractères "bonus" ? Comme le % dans SQL, donc. Peut-il être rajouter dans une variable afin que dans la recherche, on me donne tous les livres contenant même rien qu'un caractère ?

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Je pense que tu devrais commencer par boucler le tutoriel avant de te lancer dans un projet.


    Une dernière question, donc, et je vous laisse tranquille : existe-t-il un caractère permettant, comme dans SQL, de remplacer des caractères "bonus" ? Comme le % dans SQL, donc. Peut-il être rajouter dans une variable afin que dans la recherche, on me donne tous les livres contenant même rien qu'un caractère ?
    Oui mais ce n'est pas performant du tout. Soit avec des regexp soit avec une clause like:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ... FROM ... WHERE champ LIKE 'tes%';

  9. #9
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Finalement, problème résolu. Merci de votre aide.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/06/2009, 14h57
  2. [SQL] Afficher le résultat d'une requete en Image ?
    Par cedinfo dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/09/2006, 14h28
  3. afficher le résultat d'une requete dans une datagrid
    Par awatif dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/09/2006, 14h57
  4. Réponses: 3
    Dernier message: 25/11/2005, 14h51
  5. [QReport] Afficher le résultat d'une requete
    Par PFX dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/05/2005, 14h38

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