Vi sidder jo ikke her og bruger tid bare for at spilde vores tid. Vi forsøger jo vitterligt at hjælpe. Men hvis ikke du kan fortælle hvad du vil, så er det jo svært for os. Vi gør jo udelukkende dette for at lære og for hjælpe.
1. Løb din array igennem og dan et sql-stmt i retning af: SELECT id FROM tabel WHERE tags = 'script' UNION SELECT id FROM tabel WHERE tags = 'php' UNION SELECT id FROM tabel WHERE tags = 'mysql';
Læg mærke til at det af MySQL bliver opfattet og behandlet som 1 query og du får de rækker tilbage hvor der er hit.
2. Løb din array igennem og dan en streng $instr der ligner "'script', 'php', 'mysql'"; Derefter SELECT id FROM tabel WHERE tags IN ($instr);
OK, jeg undrede mig over hvor det LIKE kom fra, men nu kan jeg godt se på lullalejs første svar at der kan være 0-n tags separeret på en eller anden måde i feltet 'tags', og så har du ret og $instr i forslag 2 skal bygges op som "'%script%', ... osv".
Hvis lullalej vil forfine mit forslag 1 kan det gøres med: SELECT 1 AS sort, 'script' AS tagnam, id FROM tabel WHERE tags LIKE '%script%' UNION SELECT 2 AS sort, 'php' AS tagnam, id FROM tabel WHERE tags LIKE '%php%' UNION SELECT 3 AS sort, 'mysql' AS tagnam, id FROM tabel WHERE tags LIKE '%mysql%' UNION ... UNION ... ORDER BY 1;
Men er det så ikke lige før man skulle gå den modsatte vej og hente alle rækker hvor tags IS NOT NULL og så massere tags-feltet med en foreach($tags as ...)?
Det må komme an på hvor mange tags vi taler om i $tags og hvor mange rækker der skal masseres, men nu har han da nogle forslag.
Synes godt om
Ny brugerNybegynder
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.