Avatar billede Slettet bruger
29. oktober 2005 - 14:16 Der er 8 kommentarer og
1 løsning

Søge efter en streng i mysql tabeller

Hej!

Er det muligt at søge efter en streng i en tabel?
F.eks.:
mysql_query("SELECT * FROM clanmembers WHERE game = 'cs');
hvis nu tabellen games indeholder flere forskellige forkortelser. Lad os sige den indeholder "cs,wc3,gw,wow" Kan man så på en eller anden måde lede hele tabellen igennem efter kun de to bogstaver cs efterfulgt af et komma? Og længere nede på siden søge efter gw efterfulgt af komma osv. Så det skulle måske ikke være
WHERE game = 'cs' men WHERE game LIKE 'cs' eller noget?

Håber i forstår mig, for problemet er lidt svært at forklare synes jeg.
Avatar billede jaw Nybegynder
29. oktober 2005 - 14:17 #1
Prøv:
WHERE game LIKE '%cs,%'
Avatar billede jaw Nybegynder
29. oktober 2005 - 14:19 #2
Og du kan jo lave det i en løkke hvis du vil, f.eks.:

$type = array("cs", "wc3", "gw", "wow");
foreach($type as $v) {
  $query = mysql_query("SELECT * FROM clanmembers WHERE game LIKE '%".$v.",%'");
  ... og hvad du så vil med dem !
}

:)
Avatar billede Slettet bruger
29. oktober 2005 - 14:26 #3
Er ved at teste det nu. Men forstår ikke lige hvad den løkke der gør? :)
Avatar billede jaw Nybegynder
29. oktober 2005 - 14:29 #4
Ok. $type har jeg lavet med de spiltyper du skrev i toppen.
foreach løkken løber så alle de typer igennem (foreach ~ for hver enkelt) og den vil så gør præcis det samme med de enkelte typer efterhinaden. Dvs. at hvis jeg bare ville udskrive dem, ville jeg gøre:

$type = array("cs", "wc3", "gw", "wow");
foreach($type as $v) {
  echo $v . "<br />";
}

Du kan jo prøve ovenstående, nok nemmere at se det virke end at læse min snørklede forklaring :)
Avatar billede Slettet bruger
29. oktober 2005 - 14:33 #5
Tusind tak, kom med et svar :) Tror faktisk godt jeg kan bruge den løkke så! :D
Avatar billede jaw Nybegynder
29. oktober 2005 - 14:35 #6
Selv tak :)

Og en løkke er i hvert fald nemmere end at smide den samme kode 5 gange, hvor det eneste man ændrer er en 2-3 bogstaver :)
Avatar billede Slettet bruger
29. oktober 2005 - 14:38 #7
Der kommer en fejl med min anden løkke desværre. Her er den hvis du lige skulle få lyst til at hjælpe ;)

    $type = array("cs", "wc3", "gw", "wow");
   
    foreach($type as $v) {
          $query = mysql_query("SELECT * FROM clanmembers WHERE game LIKE '%".$v.",%'");
        //Udskriv alle members
        echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
        echo "<td height=\"21\" background=\"images/tablegradient.gif\"><div align=\"center\"><font color=\"#ffffff\">$v</font></div></td>";
   
        while($row = mysql_fetch_array($query)) {
            $color = ($i % 2) ? "#f3f3f3" : "#ffffff";
            echo " <tr> <td height=\"21\" bgcolor=\"$color\"> <div align=\"center\"> <a href=\"/?page=viewmember&id=$row[id]\">$row[nickname]</a> </div> </td> </tr>";
            $i++;
        }
   
        echo "</table>";
    }
Avatar billede jaw Nybegynder
29. oktober 2005 - 14:41 #8
Det er en mysql-fejl, og da jeg ikke har din database kan jeg ikke fortælle helt hvor den ligger. Men ud fra ovenstående, så vil jeg spørge om du har husket at connecte til den? :)

Ellers, så er en god debug altid:
$query = mysql_query("SELECT * FROM clanmembers WHERE game LIKE '%".$v.",%'") or die(mysql_error());

Og tak for points :)
Avatar billede Slettet bruger
29. oktober 2005 - 14:43 #9
Det var en dummefejl :( Havde kaldt tabellen games her i min kode, og skrevet game her på exp.dk. Smart, hehe. Virker fint nu. Tak :D
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