Avatar billede daddy Novice
06. april 2004 - 12:08 Der er 8 kommentarer og
1 løsning

Søgning i flere tabeller, samlet til ét resultat.

Halløjsa

Jeg skal have lavet en søgefunktion, som skal søge i to forskellige tabeller i min MySql database. Det har jeg nu søger kun i én tabel.

Hvordan får jeg det lavet så jeg kan søge i to tabeller og få samlet det til ét søgeresultat.

Min nuværende kode:

$seek = @$_GET['seek'] ;
 
      if (@$seek) {
        $result = mysql_query("select * from vare where vare.producent like '%$seek%' or vare.varebeskrivelse like '%$seek%' order by kat_id");
        $number = mysql_num_rows($result);
        print  "&nbsp;Din søgning på <b>$seek</b>, gav $number resultater:<p>";
        echo '<table width="100%"  border="0" cellspacing="0" cellpadding="0">';
        echo '<tr>';
        echo '<td height="25"><strong>Kategori:&nbsp;</strong></td>';
        echo '<td><strong>Producent:&nbsp;</strong></td>';
        echo '<td><strong>Beskrivelse:</strong></td>';
        echo '<td><strong>Pris:</strong></td>';
        echo '</tr>';
        $i=0;
        while ($row = mysql_fetch_array($result)) {
            $pris_format = number_format($row['pris'], 2, ',', '.');
            $result2 = mysql_query('select * from kategori where kat_id = '.$row['kat_id']);
            @$kategori = mysql_fetch_array($result2);
            if (fmod($i, 2))
                echo '<tr bgcolor="#E1DFDE"><td height="25">';
            else
                echo '<tr bgcolor="#F0F1F5"><td height="25">';
              echo '<a href="vis_vareliste.php?kat_id='.$row['kat_id'].'">'.$kategori['kat_navn'].'</a></td>';
            echo '<td>'.$row['producent'].'</td>';
            echo "<td><a href=\"java script:popup('vis_varebeskrivelse.php?varenr=".$row['varenr']."&subnavn=".$kategori['sub_vare_tabel']."')\">$row[varebeskrivelse]</a></td>";
            echo '<td><div align="right">'.$pris_format.'</div></td>';
              echo '</tr>';
            $i++;
        }
        echo '</table>';
    }
    else {
        print "Du skrev ikke noget søgeord!!";
    }
Avatar billede Slettet bruger
06. april 2004 - 12:43 #1
SELECT    vare.*,
    kategori.*
FROM    vare, kategori
WHERE    vare.producent like '%$seek%' or vare.varebeskrivelse like '%$seek%'
AND    vare.kat_id = kategori.kat_id
ORDER BY vare.kat_id
Avatar billede daddy Novice
06. april 2004 - 13:07 #2
Har ændret til nedenstående, men nu finder den slet ikke noget uanset hvad man søger på.       

$result = mysql_query("select vare.*, kategori.* FROM vare, kategori where vare.producent like '%$seek%' or vare.varebeskrivelse like '%$seek%' or kategori.katnavn like '%$seek%' AND vare.kat_id = kategori.kat_id order by vare.kat_id");

Hvad gør jeg galt?
Avatar billede s_friis Nybegynder
06. april 2004 - 20:41 #3
Jeg ville skrive således:

SELECT v.*, k.*
FROM vare v, kategori k
WHERE v.varebeskrivelse LIKE '%$seek%' AND v.kat_id = k.kat_id
OR v.producent LIKE '%$seek%' AND v.kat_id = k.kat_id
OR k.katnavn LIKE '%$seek%' AND v.kat_id = k.kat_id
ORDER BY v.kat_id

hilsen sf
Avatar billede daddy Novice
16. april 2004 - 13:47 #4
@pacr00n

Undskyld den sene tilbage melding. Projektet som dette var til kom pludseligt nederst i bunken.

Tak for svaret.

@s_friis

Tak for din kommentar, det virker også fint.
Avatar billede daddy Novice
16. april 2004 - 14:50 #5
@s_friis

UPS

Jeg var lidt for hurtig.

pacr00n´s kode kunne give "forkerte" resultater ved nogle søgninger. Hvorimod din giver det rigtige hver gang.

Jeg vil gerne give dig point for det, er der en måde jeg kan gøre det på, andet end at oprette et nyt spørgsmål?
Avatar billede Slettet bruger
16. april 2004 - 15:10 #6
Skal jeg ikke give ham mine, det er vel egentlig forkert at jeg fik dem.
Avatar billede daddy Novice
16. april 2004 - 15:13 #7
Hvis det er muligt, men ellers vil jeg godt, er trods alt kun 30 point.
Avatar billede s_friis Nybegynder
16. april 2004 - 17:09 #8
tak - jeg overlever nok uden point :-)
det vigtigste var at kunne hjælpe.

hilsen sf
Avatar billede daddy Novice
16. april 2004 - 17:13 #9
Og det gjorde du ;-)

God weekend til jer begge
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