begin process at 2010 02 09 18:37:04
  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 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 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 problème moteur de recherche [ par tony4758 ] Bonjour, j'ai crée un moeur de recherche très simple avec base de donnée. Voici la structure de ma base :CREATE TABLE sonarty_search (id INT UNSIGNED SESSION_ID : recherche d'un ID de session [ par SaveC ] Bonjour à tous,Je cherche à vérifier si un utilisateur connecté à mon site possède un Identifiant de session déterminé.J'ai trouvé sur la doc PHP, la


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,577 sec (3)

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