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 :

[SQL] Select dans plusieurs table


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Par défaut [SQL] Select dans plusieurs table
    Bonjour,
    Je voudrais sélectionner dans la tables "hotels" le champs "auxerre" dans la collone "ville" et le pseudo du membre(Le pseudo est déjà dans l'en tête de ma page avec le session start), voici mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    // Combien d'entrées dans jeux_vidéos ?
    $retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM hotels WHERE ville=\"auxerre\" AND pseudo=\"$pseudo\"");
    $donnees = mysql_fetch_array($retour);
     
     
    ?>
    <font color="#FF9900">
     <font size="4" face="Arial">
    Vos Hôtels: <?php echo $donnees['nbre_entrees']; ?>
    Je voudrais donc qu'il compte le nombre de données qui correspondes avec la ville auxerre et son pseudo ! Mais celui-ci marque "0".

    Merci de votre aide.

  2. #2
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Houlalala...

    Déjà, ta requete sent la faille de sécurité par injection de SQL ! Bref, je sais pas comment est config ton php.ini ni les vérifs que tu fais avant, mais ça sent quand même la grosse faille de sécurité qui donne accès complet à ta bdd au hacker.

    Ensuite, ta requete est techniquement juste ! je pense que t'as juste aucun enregistrement qui correspond...

    Je te conseil :

    <?php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $retour = mysql_query('SELECT COUNT(id) FROM hotels WHERE lower(ville) like "auxere" AND lower(pseudo) like "'.mysql_escape_string(strtolower($pseudo)).'"') or die('erreur de requete');
     
    $nb_resultat = mysql_result($retour, 0, 0);
    et tu vires les mysql_escape_string() si le magic_quote_gpc est à ON dans le fichier php.ini (la commande phpinfo() te renseignera).

    Enfin, très mauvaise solution de stocker le nom des villes en dur comme ça dans la BDD... le gars qui fait une faute de frape, ne sera pas compté ! En général, on utilise des clef étrangères pour ça.

    D'autre part, si tu remplace auxere par une variable, utilise mysql_escape_string(strtolower($nom_ville)) à la place de auxere

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 36
    Par défaut
    D'accord, merci, je vais essayer, mais par contre, si, j'ai un ligne dans ma bdd, et normalement, elle correspond

Discussions similaires

  1. [MySQL] Selection dans plusieurs tables pour constituer un seul RecordSet
    Par mesken dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/10/2011, 21h25
  2. requete sql selection dans deux tables
    Par dede64 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/03/2008, 14h50
  3. insertion via SQL loader dans plusieurs tables
    Par omekiane dans le forum SQL*Loader
    Réponses: 3
    Dernier message: 12/02/2008, 10h07
  4. [SQL] Insertion dans plusieurs tables
    Par fadex dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/02/2007, 11h47
  5. [SQL]Select dans une table d'une autre base de données
    Par Didouille dans le forum Access
    Réponses: 3
    Dernier message: 21/12/2005, 09h00

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