begin process at 2012 02 13 16:27:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

recherche necessitant jointure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

recherche necessitant jointure

vendredi 28 décembre 2007 à 09:16:36 | recherche necessitant jointure

christuckers

Bien le bonjour à tous les CSistes.

C'est une question de débuta,t je sais mais je n'arrive pas à faire faonctionner un module de recherche qui necessite une jointure et entre nous, ca commence a me .

Donc, je commence les hostilités :

Dans vp.php : mon formulaire de recherche :

<form action="listerecherchevp.php?complet=<?=$nomic?>" method="post" name="p" target="body" id="i">
          
    <td>Recherche par IC </td>
              <td width="20%" align="left" valign="middle">
               
                  <div align="center">
                   <input name="nomic" type="text"> <input name="r" type="hidden" value="4"  >             
              
  </div></td>
              <td width="10%" align="center" valign="middle">
<input type="submit" name="Submit" value="Envoyer">               
</td>
      <td width="20%" align="center" valign="middle">&nbsp;</td>
  
    </form>

Dans ma page listerecherchevp.php voici ma requete :

elseif
  (
$r=='4' ){ $query = "SELECT * FROM vft_files,vft_users WHERE vft_files.iduser = vft_users.id AND vft_users.login LIKE '%complet%' ";
  }

Donc je cherche a faire affiicher les infos de la table vft_files en recherchant les ques les fichiers créer par un user en particulier.
Dans ma table vft_files : l'ID de l'user s'enregistre dans un champ s'appelant iduser. L'utilisateur est enregistré dans la table vft_user dans un champ : id, et son se trouve dans le champ login.

Mon objectif est de taper une partie du login dans le formulaire de recherche et qu'il m'affiche les fichiers correspondants créés par la personne que je recherche.


Merci d'avance pour votre aide.

 

 

 

 

 

 

vendredi 28 décembre 2007 à 17:18:32 | Re : recherche necessitant jointure

neigedhiver

Salut, $query = 'SELECT champ1, champ2, ... FROM vft_users LEFT JOIN vft_files ON vft_users.id=vft_files.iduser WHERE vft_users.login LIKE \'%' . $complet . '\'%;'; Préconisations : - n'utilise pas la syntaxe car elle nécessite que la configuration de PHP ait short-open_tags à ON, ce qui n'est pas toujours le cas - évite aussi d'utiliser * pour lister les champs à récupérer : si plus tard tu rajoutes dans ta table des champs dont tu n'as pas besoin à chaque requête, ils seront quand même chargés, ce qui fait perdre en performances et consomme plus de mémoire Il se peut que ta requête soit ok, mais il faut penser à mettre un $ devant le nom de ta variable complet : LIKE '%$complet%' WHERE ne devrait pas être utilisé pour faire une jointure, mais uniquement pour limiter les enregistrements à ceux qui correspondent à la condition. Quand on fait une jointure, autant la faire explicitement (avec JOIN) qu'implicitement (avec une virgule comme tu l'as fait), surtout quand on fait une liaison entre deux tables, sur un champ (d'où l'utilité du mot clé ON)
vendredi 28 décembre 2007 à 17:22:35 | Re : recherche necessitant jointure

sidf

salut

<form action="listerecherchevp.php" method="post" name="p" target="body" id="i">
...
<input name="nomic" type="text">
<input name="r" type="hidden" value="4" >
             
...
</form>

deja si tu utilises la methode POST, ne passe pas ton param en GET
donc tu peux te servir directement du champ 'nomic'

elseif  ($r=='4' )
{
$nomic=$_POST['nomic']; // par securité
$query = "SELECT * FROM vft_files,vft_users WHERE vft_files.iduser = vft_users.id AND vft_users.login LIKE '%$nomic%' "; 
 }
...

j'avais oublié le $
vendredi 28 décembre 2007 à 18:09:46 | Re : recherche necessitant jointure

neigedhiver

"$nomic=$_POST['nomic']; // par securité" LOL tu parles d'une sécurité... C'est probablement ce qui permet le plus les injections SQL...
vendredi 28 décembre 2007 à 19:55:32 | Re : recherche necessitant jointure

malalam

Administrateur CodeS-SourceS
@sidf => je ne suis pas non plus ton raisonnement. Tu peux l'expliquer un peu plus précisément stp?
POST n'est pas plus sécurisé que GET. Bon on va dire c'est un tout petit peu plus difficile à contourner pour un noob...mais si on veut hacker un site pour de bon, on n'est pas un noob. Enfin...en tout cas, si on veut réussir ;-)
Et je ne pige pas du tout ton $nomic = $_POST['nomic'], ça change quoi au juste à part bouffer un peu plus de mémoire ?
Déjà, une bonne protection, c'est d'échapper les caractères à problème (mysql_real_escape_string() pour mysql par exemple).



Cette discussion est classée dans : recherche, id, files, jointure, vft


Répondre à ce message

Sujets en rapport avec ce message

Formulaire de recherche + liste affichage 2 tables [ par christuckers ] Salut tout le monde !!Bon ba ma question est sans doute facile à résoudre, mais malgrès <a target="_blank" title="http://www.vulgarisation-informatiqu Affiche le résultat d'une jointure [ par evenkil ] Bonjour, j'ai un petit problème dans ma jointure, enfin, pour affiche le résultat.Ma requete :SELECT * FROM table1, table2 WHERE table1.ville = table2 recherche d'enregistrement [ par duodiscus ] bonsoir,alors voilà, j'ai une base de donnée qui contient des produitset j'ai une page de modification de produiten entête de cette page, j'ai une sor Jointure / pb affichage dans un while [ par cybermalicia ] kikou à tous !!!Voila jsui en ce moment en train de créer un petit site dont je mettrait les sources en ligne une fois fini.Mais pour le moment j'ai u Besoin d'aide pour optimisation code [ par lineb76 ] Bonjour,Je me tourne vers vous car je suis completement perdu avec mon code et j'aurais besoin d'aide pour l'optimiser. il est tres tres lent et tres Recherche par mot-clés [ par balistik35 ] Bonjour,Je cherche à faire une recherche par mot-clés dans ma base de données MySQL mais avec une certaine condition. Je développe un site de question Requête avec jointure non obligatoire [ par destiny ] Bonjour, Ma requete (CI) : [color=green]$this->db->select('_ID_contact, _ID_bien, action, auto, commentaires.commentaire, commentaires.date_creation recherche par selecteur [ par duodiscus ] bonjour,j'ai un petit soucis sur mon sitesur mon index.php, j'ai un selecteur de recherche par marque (de produits)il ressemble à ça :function selectr JOINTURE pas obliger [ par xactise ] Bonjour à tous ! Petite question je vous expose la situation ! j'ai 4 objet différent qui ont 4 table différent avec des champs parfois identique pa Recherche ciblée [ par sebalex ] Bonjour à tous, je recherche le moyen d'effectuer une recherche dans une base de données comprenant plusieurs tables. Dans l'une d'elles se trouvent


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,897 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales