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 :

requete sur plusieurs tables


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut requete sur plusieurs tables
    Salut,
    voilà j'ai un formulaire pour rechercher des mots ou des phrases dans ma base données et voici le code de mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method='POST' action="reqrecherche.php" id='recherche'>
    						<input type='text' name='recherche' id='zone_recherche'   value="Rechercher" onfocus="changeCasse(this,true);" onblur="changeCasse(this,false);"/>
     	                    <input class="button" name="go" value="Envoyer" type="submit">
     
                            </form>
    Et voici le code de ma requête sur deux tables (contenu et utilisateurs) et sur deux champs (text_contenu pour la table contenu et pseudo pour la table utilisateurs) de ma base de donnée et le résultat que ma requête me donne n'est pas le résultat attendu! Voici le code de ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $connexion=mysql_connect("localhost","root","");
    	mysql_select_db("nomdemabase",$connexion) or die("cannot select DB" );
    	mysql_query("SET NAMES 'utf8'" );
    $donnees=mysql_real_escape_string($_POST['recherche']);
    $sql = "SELECT * FROM contenu, utilisateurs WHERE text_contenu LIKE '%".$donnees."%' OR pseudo LIKE '%".$donnees."%' ";
     
    $resultat=mysql_query($sql);
    $erreur=mysql_error();
    print ($erreur);
    while($data = mysql_fetch_array($resultat)){
    	echo $data[0];
    	}
    ?>
    Et suis complètement planté!

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    on voit ça. soit plus détaillé.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut
    le problème est que si le résultat attendu se trouve dans la table utilisateurs, la requete m'affiche le résultat demandé et le contenu de la table text_contenu qui ne font pas du tout partie du résultat attendu!!!

  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    déjà écris les requêtes avec jointure de manière normalisée (depuis 20 ans), ça te simplifiera la vie... avec comme syntaxe de base:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select liste_expressions
    from nom_table
    [natural|cross|inner|left] join nom_table_jointe on liste_conditions_jointure
    [where liste_conditions_sur_nom_table]
    comme ça tu vois bien qui interagit avec quoi...

    ensuite, JAMAIS de "*" dans un select surtout quand tu as des jointures:
    tu dois nommer explicitement les colonnes nécessaire précédé de l'alias de la table à laquelle elles appartiennent...
    comme ça tu évites les erreur d'homonymie entre colonne de table différentes et tu facilites en plus la relecture sans avoir à lire la composition de ta table en même temps...

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations forums :
    Inscription : Avril 2012
    Messages : 13
    Par défaut
    Ok! Je vais voir ça!

Discussions similaires

  1. Requete sur plusieurs tables
    Par lampre dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/02/2007, 17h26
  2. Réponses: 1
    Dernier message: 06/12/2006, 18h25
  3. Probleme de requete sur plusieurs tables
    Par Hitmaaan dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/08/2006, 22h20
  4. [vb6]faire une requete sur plusieurs tables
    Par Henry9 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/07/2006, 02h06
  5. requete sur plusieurs tables
    Par manaboko dans le forum Requêtes
    Réponses: 6
    Dernier message: 13/12/2005, 17h07

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