Avatar billede codebase Praktikant
09. februar 2001 - 18:07 Der er 19 kommentarer og
1 løsning

muliti søgning, med op til 15 variabler

Hvordan gøres det, uden at jeg selv skal lave alle mulighederne ??

_codeb@se.
Avatar billede kenneth_jakel Nybegynder
09. februar 2001 - 18:08 #1
kan du specificerer lidt mere?
/kenneth
Avatar billede codebase Praktikant
09. februar 2001 - 18:18 #2
joo, hvis du har 15 felter der kan udfyldes ved en søgning, så skal jeg finde alle de rækker hvor mine felter passer :)  alias MULTISØGNING !

_codeb@se.
Avatar billede kenneth_jakel Nybegynder
09. februar 2001 - 18:24 #3
select * from \"din tabel\" where kolonne1=\'variabel1\' and kolonne2=\'variabel2\' and kolonne3=\'variabel3\'

jeg kan ikke helt gennemskue om det er det du mener..
/kenneth
Avatar billede codebase Praktikant
09. februar 2001 - 18:29 #4
så drop dit svar!
det er et spg. vedr. søgekriterier, dvs. at der kun bliver søgt ud fra de givet variabler, og ikke alle sammen som din funktion :)

:)

_codeb@se.

ps: tror du at man giver 50 points, for et så simpelt svar:?
Avatar billede codebase Praktikant
09. februar 2001 - 18:32 #5
eks.

WHERE
variabel1 = bla.. AND
variabel2 = bla.. AND
variabel3 = bla.. AND
variabel4 = bla..

Hvis nu der ikke er en variabel3, så finder den ingen rækker, selvom der måske er masser der matcher resten af søgekriterierne... you see ?

_codeb@se.
Avatar billede codebase Praktikant
09. februar 2001 - 18:39 #6
jeg tror det er noget med at lave array med en masse rækker, og så søge i samme array hvis en ny variabel vælges, osv.........


Men jeg er ikke sikker, derfor dette spg.:)

_codeb@se.
Avatar billede kenneth_jakel Nybegynder
09. februar 2001 - 18:49 #7
\" 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.
Avatar billede codebase Praktikant
09. februar 2001 - 18:54 #8
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.......


_codeb@se.
Avatar billede kenneth_jakel Nybegynder
09. februar 2001 - 18:57 #9
rigtigt nok, jeg fatter ikke meget af det..godt ord igen :)
Avatar billede mkelle1 Nybegynder
09. februar 2001 - 23:11 #10
Hej Codebase.

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 \";
}

$antal=strlen($sql);
$sql=substr($sql,0,$antal-3);
echo $sql;

?>

Hilsen

Mads
Avatar billede codebase Praktikant
09. februar 2001 - 23:18 #11
hvad sker der lige her:

$antal=strlen($sql);    // tæller antalet af variabler
$sql=substr($sql,0,$antal-3);  // her ??? :)
echo $sql;

_codeb@se.
Avatar billede codebase Praktikant
09. februar 2001 - 23:23 #12
er det så, at der kun står:
sql=\" bla.............

og ikke: sql=sql.. bla...\" ???

_codeb@se.
Avatar billede mkelle1 Nybegynder
09. februar 2001 - 23:39 #13
Hej Codebase

Det der sker tilsidst er at fjerne det sidste \'and\' da man jo ikke kan vide hvornår det stopper.

Hvis du laver en

echo $sql;

før

$antal=......

så vil du se at den slutter med et \'and\', og det er det der skal væk

Mads
Avatar billede codebase Praktikant
09. februar 2001 - 23:42 #14
ahh, oki :)

Jeg sender lige en mail til dig, med lidt mere info.
Har du et icq nr. ??

mit er 45706880

_codeb@se.
Avatar billede codebase Praktikant
09. februar 2001 - 23:52 #15
damm keyboard !!

mit icq nummer er:

45706865 sorry :)

_codeb@se.
Avatar billede mkelle1 Nybegynder
10. februar 2001 - 01:14 #16
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.

Mads
Avatar billede mkelle1 Nybegynder
10. februar 2001 - 01:15 #17
Nu har jeg rettet mailen

Mads
Avatar billede codebase Praktikant
10. februar 2001 - 01:18 #18
den er på vej :)
Avatar billede mkelle1 Nybegynder
10. februar 2001 - 02:22 #19
Hej Codebase

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.

Mads
Avatar billede spiri Nybegynder
13. februar 2001 - 17:54 #20
->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.......\"

En lidt hård dom fra dig:
http://www.eksperten.dk/spm/46469

Er det noget med sten og glashus...


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
Computerworld tilbyder specialiserede kurser i database-management

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