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

 


Dernière réponse
Sujet : [php mysql] recherche dans une db sur différentes tables...
oloide 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 ...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
oloide 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 ...
instantdharma 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.

oloide 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
oloide 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
Maxaks 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();
oloide c'est dur et j'ai essayé plein de truc différents mais ça marche pas :cry::cry::cry::cry:
oloide 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 ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)