webForumDet fria alternativet

Hämta ut en viss sträng från ett varchar fält i MySQL via PHP

PHP

3 svar · 256 visningar · startad av Smultron

Medlem sedan juli 2002423 inlägg
Frågan#1

Hur ska man om man har ett varchar fält i MySQL databasen som man har värden inskrivna i skilda med kommatecken, t.ex "2001, 2002, 2008"

Sen vill man kolla just om 2002 finns med i fältet,
sen har man typ ett villkor som detta typ...


for($year=2000; $year == 2010; $year++;)
{
   if( $year == $databas['fält med åren inskrivna'])
           print "weeeii " . $year . "<br>";
}

endast ett exempel men hur skall jag skriva?
Kankse inte använda "==" i villkoret utan använda nåt annat?

hjälp mig snälla!

Medlem sedan aug. 2001153 inlägg
#2

Ptja, kan du inte bara söka i strängen?
dvs: if strpos($databas['fält med åren inskrivna'],$year)

Om du är säker på att värdet från databasen stämmer.

Man kan även tänka sig imploda det till en array och leta i arrayen.

Medlem sedan juli 2002423 inlägg
#3

hmm, ok hur menar du då då?

att jag gör en while sats som jag skapar en array i där varje array variabel får ett av varje värde från varchar fältet?

men grejen är ju hur jag ser att de är separerade i den??

alltså 2001, 2002, 2003...

att när man kommer till "," så blir det ett nytt värde och ingen fortsättning på det gamla värdet, ur gör jag?

Medlem sedan mars 20032 667 inlägg
#4

Problemet är att du gjort fel från början genom att spara en kommaseparerad lista i ett fält i tabellen. Normalt sparar man ett värde i ett databasfält. Vill man ha många värde per unik post då gör man en relationstabell till detta.

Så mitt förslag är att ändra db-struktur. ;)

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)