Avatar billede bente_fiber Nybegynder
24. april 2006 - 14:36 Der er 16 kommentarer og
1 løsning

Hjælp til MySQL søgning

Hej- hvordan søger jeg i flere tabeller i mysql?

Bruger denne her nu, men det virker ikke ?

mysql_query("SELECT * FROM (community AND com_traade) WHERE (indhold, indhold) LIKE '%$search%' ORDER BY id DESC") or die(mysql_error());
Avatar billede ruch Nybegynder
24. april 2006 - 14:40 #1
prøv at skrive '%" . $search . "%'

ikke sikkert at det virker, men nogle gange for jeg fejl hvis jeg ikke gør sådan
Avatar billede ruch Nybegynder
24. april 2006 - 14:40 #2
hov
Avatar billede ruch Nybegynder
24. april 2006 - 14:41 #3
forstod spørgsmålet forkert, sorry
Avatar billede Slettet bruger
24. april 2006 - 14:41 #4
Måske noget ala:

SELECT a.indhold AS com_indhold,
      b.indhold as traa_indhold
      FROM community a, com_traade b
      WHERE a.indhold LIKE '%$search%'
      OR b.indhold LIKE '%search%'
      ORDER BY id DESC

Jeg kan ikke umiddelbart ud fra dit eget forsøg se om du vil have AND eller OR.
Det er utestet, men burde virke.
Avatar billede bente_fiber Nybegynder
24. april 2006 - 14:46 #5
#cybermann

får denne her fejl:
Column 'id' in order clause is ambiguous
Avatar billede Slettet bruger
24. april 2006 - 14:53 #6
ah ja selvfølgelig :)

ORDER BY a.id, b.id DESC
Avatar billede bente_fiber Nybegynder
24. april 2006 - 14:54 #7
Nu får jeg resultater, men ingen tekst.  Underligt, men mange tak. hvad har jeg mon gjort galt?

$q = mysql_query("SELECT a.indhold AS com_indhold,
      b.indhold as traa_indhold
      FROM community a, com_traade b
      WHERE a.indhold LIKE '%$search%'
      AND b.indhold LIKE '%search%' ORDER BY a.id, b.id DESC") or die(mysql_error());
            while($row = mysql_fetch_array($q)) { ?>
           
            <table width="100%"><td width="50%"><b>
            <a title="Gå til side" href="traad.php?id=<?php echo $row['id']; ?>">
            <font color="black"><u><?php echo $row['titel']; ?></font></a></b></td><tr>
            <td width="50%">
            <?php
           
          $text = $row['indhold'];
            $text = preg_replace('/</',' <',$text);
            $text = preg_replace('/>/','> ',$text);
            $desc = html_entity_decode(strip_tags($text));
            $desc = preg_replace('/[\n\r\t]/',' ',$desc);
            $desc = preg_replace('/  /',' ',$desc);

  echo substr($desc, 0, 200);  ?></font><br>
            <font color="darkgray">http://www.enetonline.dk/traad.php?id=<?php echo $row['id']; ?></font><hr></td></tr></table>
Avatar billede michael_stim Ekspert
24. april 2006 - 14:56 #8
$text = $row['indhold']; kalder du jo noget andet (com_indhold eller traa_indhold).
Avatar billede bente_fiber Nybegynder
24. april 2006 - 14:58 #9
hvordan skal jeg så gøre? :S undskyld, er ny til mysql
Avatar billede bente_fiber Nybegynder
24. april 2006 - 14:59 #10
ja okay.. nu er jeg med.. mange tak :)
Avatar billede Slettet bruger
24. april 2006 - 14:59 #11
$q = mysql_query("SELECT a.indhold AS com_indhold, a.id, a.titel,
      b.indhold as traa_indhold
      FROM community a, com_traade b
      WHERE a.indhold LIKE '%$search%'
      AND b.indhold LIKE '%search%' ORDER BY a.id, b.id DESC") or die(mysql_error());
            while($row = mysql_fetch_array($q)) { ?>
         
            <table width="100%"><td width="50%"><b>
            <a title="Gå til side" href="traad.php?id=<?php echo $row['id']; ?>">
            <font color="black"><u><?php echo $row['titel']; ?></font></a></b></td><tr>
            <td width="50%">
            <?php
         
          $text = $row['com_indhold'];
            $text = preg_replace('/</',' <',$text);
            $text = preg_replace('/>/','> ',$text);
            $desc = html_entity_decode(strip_tags($text));
            $desc = preg_replace('/[\n\r\t]/',' ',$desc);
            $desc = preg_replace('/  /',' ',$desc);

  echo substr($desc, 0, 200);  ?></font><br>
            <font color="darkgray">http://www.enetonline.dk/traad.php?id=<?php echo $row['id']; ?></font><hr></td></tr></table>

Jeg går ud fra ud fra at du linker til en traad.php fil at de felter der skal benyttes er fra den første tabel (community).
Avatar billede michael_stim Ekspert
24. april 2006 - 14:59 #12
Du bytter bare $text = $row['indhold']; ud med:
$text = $row['com_indhold']; eller $text = $row['traa_indhold'];
Avatar billede bente_fiber Nybegynder
24. april 2006 - 15:01 #13
hva så hvis jeg vil hente ID ud, og ikke "kun" indhold?
Avatar billede bente_fiber Nybegynder
24. april 2006 - 15:18 #14
slet ingen?  så er det da en dum søgemetode? hvis man kun kan få indholdet ud, men intet id eller titel...
Avatar billede Slettet bruger
24. april 2006 - 15:19 #15
i min ovenstående kode er idét også med :-)
Avatar billede bente_fiber Nybegynder
24. april 2006 - 15:23 #16
#Cybermann.. mange tak for hjælpen, men $row['id']; duer ikke :S

kæft det er forvirrende det her :S
Avatar billede michael_stim Ekspert
24. april 2006 - 15:26 #17
Så bruger du bare 'b.id AS det_den_skal_hedde'
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester