Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1728 connectés 

  FORUM HardWare.fr
  Programmation

  [php mysql] recherche dans une db sur différentes tables...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php mysql] recherche dans une db sur différentes tables...

n°63133
oloide
Posté le 04-10-2001 à 12:02:02  profilanswer
 

voici les tables de mon forum :  
 
TABLE messages (
  Idm bigint(6) NOT NULL auto_increment,
  Date varchar(30) NOT NULL default '',
  Pseudo varchar(40) NOT NULL default '',
  Email varchar(50) NOT NULL default '',
  Texte longtext NOT NULL,
  Idr smallint(2) NOT NULL default '0',
  Ids mediumint(4) NOT NULL default '0',
  Icone varchar(4) NOT NULL default '',
  PRIMARY KEY  (Idm),
  KEY Idm (Idm)
)
 
TABLE rubriques (
  Idr smallint(2) NOT NULL auto_increment,
  Rubrique varchar(30) NOT NULL default '',
  Description mediumtext NOT NULL,
  PRIMARY KEY  (Idr),
  KEY Idr (Idr)
)
 
TABLE sujets (
  Ids mediumint(4) NOT NULL auto_increment,
  Date varchar(30) NOT NULL default '',
  Pseudo varchar(40) NOT NULL default '',
  Email varchar(50) NOT NULL default '',
  Sujet varchar(60) NOT NULL default '',
  Idr smallint(2) NOT NULL default '0',
  Vues mediumint(4) NOT NULL default '0',
  Last_update varchar(30) NOT NULL default '',
  PRIMARY KEY  (Ids),
  KEY ids (Ids)
)

 
la recherche d'un mot parmis les sujets fonctionne :  
 
$query="select ids, date, pseudo, email, sujet, vues, idr from sujets where sujet like '%$chaine%' order by last_update desc";
 
mais je voudraus faire une recherche parmis les messages et aprés afficher le résultat en listant les sujets dont les messages contiennent le mot recherché.
 
[i]$query="select s.ids, s.date, s.pseudo, s.email, s.sujet, s.vues, s.idr, m.ids from messages m, sujets s where m.texte like '%$chaine%' group by s.ids having s.ids=m.ids order by s.last_update desc";
 
ne fonctionne pas et d'une façon générale, même en ayant 2 bouquins sous les yeux, je n'arrive pas à faire cette recherche sur deux tables !
 
est ce que quelqu'un pourrait m'expliquer comment je doit m'y prendre ?

mood
Publicité
Posté le 04-10-2001 à 12:02:02  profilanswer
 

n°63139
oloide
Posté le 04-10-2001 à 12:27:24  profilanswer
 

c'est dur et j'ai essayé plein de truc différents mais ça marche pas :cry::cry::cry::cry:

n°63140
Maxaks
Posté le 04-10-2001 à 12:31:34  profilanswer
 

Pour mon forum j'ai fé comme ca, c'est pas tres propres mais ca marche : jespere que ca va t'aider :
 
if ($par=="" )
{
$mot="%";
$mot.="$search";
$mot.="%";
$query="SELECT * FROM messages WHERE $choix LIKE '$mot'";
}
else
$query="SELECT * FROM messages WHERE auteur LIKE '$par'";
 
 
@mysql_connect($host,$login,$pass) or die ("Impossible de se connecter à la base de données" );
@mysql_select_db("$db" ) or die ("Base de données $dn inéxistante" );
 
$resultat=@mysql_query($query) or die ("Impossible d'effectuer la requette" );
echo("<table cellSpacing=0 width='100%' border='1' borderColorDark='#ffffff' borderColorLight='#c0c0c0' cellpadding='2' bgcolor='#E0E0E0'>" );
$nb=mysql_num_rows($resultat);
echo("<font face 'Arial' size='2'><b>$nb reponse(s) trouvées</b></font><br><br>" );
while ($row=mysql_fetch_array($resultat))
{
echo("<tr>
      <td width='3%'><center><IMG SRC='smileys/$row[pict].gif'></center></td>
      <td width='56%' bgcolor='#FFFFFF'><font size='2' face='Arial, Helvetica, sans-serif'><A HREF='view_messages.php?reponse=$row[id]'>$row[subject]</A></font></td>
 
      <td width='14%'><div align='center'><font size='1' face='Arial, Helvetica, sans-serif'>$row[date]<br><b>$row[auteur]</b></font></div></td>
      <td width='7%' bgcolor='#FFFFFF'><div align='center'><font face='Arial, Helvetica, sans-serif' size='1'>$row[views]</font</div></td>
      <td width='7%' bgcolor='#FFFFFF'><div align='center'><font face='rial, Helvetica, sans-serif' size='1'>$row[replies]</font</div></td>
      <td width='13%'><div align='center'><font face='Arial, Helvetica, sans-serif' size='1'>$row[lastdate]<br><b>$row[lastauteur]</b></font></div>" );
}
echo("</table>" );
mysql_close();

n°63279
oloide
Posté le 04-10-2001 à 19:42:33  profilanswer
 

ok, mais c'est quoi tes tables ???
 
tu as l'air d'avoir une seule table message ?
 
sinon, est ce quelqu'un pourrait au moins me donner une piste, un indice, bref un petit truc !
 
svp

n°63342
oloide
Posté le 05-10-2001 à 01:05:14  profilanswer
 

ok, ça marche en faisant ça :  
 
select s.ids, s.date, s.pseudo, s.email, s.sujet, s.vues, s.idr, count(s.ids) as nombre from sujets as s, messages as m  where m.texte like '%$chaine%' and s.ids=m.ids group by ids order by last_update desc

n°63363
instantdha​rma
Ailleurs c'est ici
Posté le 05-10-2001 à 09:23:58  profilanswer
 

Salut !
Mettons un peu d'ordre ds tes requêtes.
La req qui tourne :

Code :
  1. select
  2.   ids, date
  3. , pseudo
  4. , email
  5. , sujet
  6. , vues
  7. , idr
  8. from
  9.   sujets
  10. where sujet like '%$chaine%'
  11. order by last_update desc";


Celle qui tourne pas :

Code :
  1. select
  2.   s.ids
  3. , s.date
  4. , s.pseudo
  5. , s.email
  6. , s.sujet
  7. , s.vues
  8. , s.idr
  9. , m.ids
  10. from
  11.   messages m
  12. , sujets   s
  13. where m.texte like '%$chaine%'
  14. group by s.ids
  15. having s.ids=m.ids
  16. order by s.last_update desc


T'as pas besoin de clause having contenant une jointure :??:  
tu fais

Code :
  1. where m.texte like '%$chaine%'
  2.   and s.ids = m.ids
  3. group by s.ids
  4. order by s.last_update desc


tu elèves le having inutile, & ça va tourner.


---------------
di. / www.diredaredare.org - Ailes de la ville
n°63516
oloide
Posté le 05-10-2001 à 15:45:11  profilanswer
 

merci !
 
ça marche avec la requéte indiquée dans le poste d'avant !
 
il va falloir que j'étudie les fonctions de joiture de tables....ça peut servir dans certains cas ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [php mysql] recherche dans une db sur différentes tables...

 

Sujets relatifs
[PHP] Crée une fonction de recherche sur une base MySQL[PHP] Moteur de recherche interne
?xcel : Recherche d'une valeur dans un tablo ...recherche webmaster/designer mineur se faisant payer pour ses services
Equivalent du LIMIT de mySQL sur SQL Server[php] pouvez vous tester (la fonction recherche de) mon forum ???
[PHP] Barre de recherche de page, coloration syntaxique ???????[PHP] 2 tables avec Mysql
Plus de sujets relatifs à : [php mysql] recherche dans une db sur différentes tables...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR