Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
$sql_kommando = @ SELECT felt_t1 AS fellesalias, felt2_t1 as fellesalias2 FROM tabel1 WHERE feltnavn IN ( $soegestreng_2 ) UNION SELECT felt_t2 AS fellesalias, felt2_t2 as fellesalias2 FROM tabel2 WHERE feltnavn IN ( $soegestreng_2 ) UNION SELECT felt_t3 AS fellesalias, felt2_t3 as fellesalias2 FROM tabel3 WHERE feltnavn IN ( $soegestreng_2 ) UNION SELECT felt_t4 AS fellesalias, felt2_t4 as fellesalias2 FROM tabel4 WHERE feltnavn IN ( $soegestreng_2 ) ";
NB: datatype i de felter der udtrækkes bør være den samme for hvert fellesalias felt i alle led. UNION duer kun i ret nye versioner af mySQL. Det er under alle omstændigheder en 'dyr' funktion der kræver en masse server kraft; er du sikker på du har lavet din opdeling i tabeller korrekt?
Jeg synes selv det burde virke. og det burde din modifikation også.
noget ante er at dit valg af navne kunne tyde på at ordet blot skal stå et eller andet sted i den 'tekst'. og det er ikke det der testes med IN. IN tester om hele feltet er lig med et af ordene i søgestrengen. hvis du vil teste om et af ordene i søgestrengen er et eller andet sted i tekst-feltets værdi må du bruge LIKE. fx:
$result = mysql_query(" SELECT id, titel FROM artikler WHERE ( test LIKE '%" .$soegestreng_2[0] ."%' OR test LIKE '%" .$soegestreng_2[1] ."%' OR test LIKE '%" .$soegestreng_2[2] ."%' OR test LIKE '%" .$soegestreng_2[3] ."%' ) OR ( titel LIKE '%" .$soegestreng_2[0] ."%' OR titel LIKE '%" .$soegestreng_2[1] ."%' OR titel LIKE '%" .$soegestreng_2[2] ."%' OR titel LIKE '%" .$soegestreng_2[3] ."%' ) ");
men hvis du så samtidig ønsker at gøre det i 4 tabeller på een gang bliver det en meget lang kommando.
$result = mysql_query("SELECT id, titel FROM artikler WHERE ( tekst LIKE '%" .$subject[0] ."%' OR tekst LIKE '%" .$subject[1] ."%' OR tekst LIKE '%" .$subject[2] ."%' OR tekst LIKE '%" .$subject[3] ."%' ) OR ( titel LIKE '%" .$subject[0] ."%' OR titel LIKE '%" .$subject[1] ."%' OR titel LIKE '%" .$subject[2] ."%' OR titel LIKE '%" .$subject[3] ."%' )");
efter du har delt din streng op i et array med explode kører du bare linien tekst LIKE '%" .$subject[0] ."%' og titel LIKE '%" .$subject[0] ."%' gennem en foreach eller en anden løkke..
hvorfor ligger du det ikke bare i en løkke, og så gemmer et array med de forskellige tabeller der skal søges i?!? Så kan det vel gøres på under 10 linier lige meget hvor mange tabeller og fejlter der skal søges i?
Du gider ikke komme med et eksempel hvor du strikker noget kode sammen?
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.