Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
\" ps: tror du at man giver 50 points, for et så simpelt svar:? \"
-mig bekendt har jeg ikke givet noget svar, men lavet en kommentar der kunne lede mig på vejen til at give et svar. Men fuck det - jeg kender ikke umiddelbart svaret, og jeg gider ikke finde det til dig.
/kennneth
PS. Leder du efter et svar med PHP, bør du nok også lige nævne det.
Her er en metode til at gøre det med. Jeg har valgt at der er \'and\' mellem dine betingelse, men det kunne ligesågodt være \'or\' bortset fra at du så i næstsidste linie kun skal trække 2 fra $antal. Hvis du har navngivet dine variable så du kan løbe dem igennem i en løkke, vil koden selvfølgelig blive meget kortere.
<? $sql=\"select * from tabel where \"; if ($variabel1) { $sql=$sql.\"variabel1=\'$variabel1\' and \"; } if ($variabel2) { $sql=$sql.\"variabel2=\'$variabel2\' and \"; }
Derværre, ingen icq og desværre virker den mail der står i mit minisite ikke - jeg har glemt at rette den. Skriv til mads.kellermann@get2net.dk istedet.
Her er så et kommenteret script. Stil endelig spørgsmål hvis der er noget du er i tvivl om.
<? //Forudsætningen for at dette script fungerer er at variabelnavnene i din form //er de samme som feltnavnene i din tabel. Hvis det er tilfældet opbygger nedenstående //en sql-sætning som kan søge på 15, 50 eller 500 parametre, hvis du har så mange felter //i din tabel. Scriptet er helt generelt og kan altså bruges på enhver tabel tilhørende //form, blot ovenstående betingelser er opfyldt. Du skal bare
//Jeg opbygger sql-sætningen ved hjælp af konkatnering af strenge //Dette er starten $sql=\"select * from tabel where \";
//Her får jeg et resultsæt af feltnavne ved hjælp af parametrene: din_db og din_tabel $list=mysql_list_fields(\'din_db\',\'din_tabel\'); //Her løber jeg alle feltnavne igennem for ($i=0;$i<mysql_num_fields($list);$i++) { //$field indeholder feltnavnet $field=mysql_field_name($list,$i); //$felt er den værdi som du vil sammenligne feltet i databasen med $felt=$$field; //Hvis feltet har en værdi tilføjer vi denne betingelse i vores sql-sætning if ($felt) { $sql=$sql.\"$field=$felt and \"; } } //Her udskriver jeg bare hele sql-sætningen echo \"$sql<br>\"; //Her tæller jeg antal tegn i sql-sætningen $antal=strlen($sql); //Her fjerner jeg de sidste 4 tegn $sql=substr($sql,0,$antal-4); //Her udskriver jeg så den endelige sql-sætning, som kan bruges i en query. echo $sql; ?>
Jeg har testet det på en af mine egne tabeller og det virker fint. Iøvrigt har jeg lavet scriptet generelt før, så tak for at du satte mig igang. Jeg sender det også på mailen, in case at linierne brækker på en mærkelig måde her i experten.
->codebase ang: \"du fatter ikke en brik af det hele, og mit råd til dig, er at du ikke skal \'spamme\' alle mulige spg. som du ikke magter at besvare.......\"
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.