Avatar billede bente_fiber Nybegynder
27. april 2006 - 23:37 Der er 7 kommentarer

MySQL søg er underlig :P

Hej gutter, jeg har et lille problem med min mysql søgemaskine. det lader til at jeg ikke finder ønskede resultater. Når jeg f.eks søger efter "hej", som findes som tekst i tabellerne, viser den helt andre resultater.

Mit script er som følger:

$q = mysql_query("SELECT a.indhold AS indhold2, a.id, a.titel, b.b_tekst as indhold2, b.emne, b.id, c.introtekst as indhold2, c.titel, c.id
      FROM community a, nyheder b, artikler c
      WHERE a.titel LIKE '%$search%'
      and b.body LIKE '%search%' and c.indhold LIKE '%search%' ORDER BY a.id, b.id, c.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['indhold2'];
            $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'];

Tak for hjælpen,mvh Simon
Avatar billede ladyhawke Novice
28. april 2006 - 07:42 #1
nu ser det ud som om du kun vil finde de tilfælde hvor søgeordet findes i alle 3 tabeller samtidigt, er det med vilje?
Avatar billede bente_fiber Nybegynder
28. april 2006 - 10:23 #2
Meningen var, at brugeren søgte på flere tabeller (community, artikler, nyheder) - i hver sin række (indhold, indhold, body). Men kan ikke få det til at fungere.
Tekstresultaterne er kun fra en tabel (community) ikke fra de andre,det virker meget mystisk.
Avatar billede ladyhawke Novice
28. april 2006 - 11:11 #3
prøv at erstatte alle 'and' i din WHERE clause med 'or', hvad får du så?
Avatar billede bente_fiber Nybegynder
28. april 2006 - 13:01 #4
Hvis jeg erstatter den med OR, crasher serveren total - og jeg må lukke MySQL fra CTRL+ALT+DELETE... ved ikke hvad der sker :S
Avatar billede ladyhawke Novice
28. april 2006 - 13:24 #5
har du forsøgt at afvikle din sql i phpadmin eller direkte i mysql? inden du putter variable ind i foretagenet?

altså noget a la:
SELECT a.indhold AS Indhold, a.id AS Id, a.titel AS Titel, b.b_tekst as Indhold, b.emne AS Titel, b.id AS Id, c.introtekst as Indhold, c.titel AS Titel, c.id AS Id
FROM community a, nyheder b, artikler c
WHERE a.titel LIKE '%hej%' or
b.body LIKE '%hej%' or c.indhold LIKE '%hej%' ORDER BY a.id, b.id, c.id DESC
Avatar billede bente_fiber Nybegynder
29. april 2006 - 10:59 #6
Ladyhawke >> Har lige prøvet af afvikle den i phpmyadmin. Det samme sker som før, med at mysql-serveren crasher.
Avatar billede ladyhawke Novice
30. april 2006 - 21:07 #7
hmmm... du er nødt til at bygge det op lidt ad gangen så...

start med at selecte alt hvad der har med a at gøre inkl where clause og gør det samme for de andre + tjek at det fungerer...

når du har det, så vend tilbage så kan vi bygge det sammen
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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