/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
OR/AND i url sætning.
Fra : Christoffer


Dato : 19-07-05 13:06

Hej!
Skidt overskrift, jeg ved det, men kunne ikke finde noget passende.

Problemet er som følger, jeg har lavet en lille database, jeg så gerne have
forskellige muligheder at sammensætte links på.
Indtil videre virker http://christoffer.buur.info/test/index.php?id=2 men
jeg vil også gerne have mulighed for at hente data hvis url er
http://christoffer.buur.info/test/index.php?navn=test2&emne=dhtml
Desuden har jeg 2 andre muligheder som jeg vi sammensætte på, men hvordan
gør jeg det praktisk? Det jo i mine øjne en if/else sætning jeg skal lave.

$res = mysql_query("SELECT * FROM christoffer where id='$_GET[id]' OR
...??...") or die("Fejl: ".mysql_error()."<br><br>SQL: $sql");
while($row = mysql_fetch_array($res)){
Print "<p>$row[navn]</p>
<p>$row[beskrivelse] <font size='-2'>$row[emne]</font></p>
<p>$row[indhold]</p>";
}

--
Christoffer



 
 
Tomasz Otap (19-07-2005)
Kommentar
Fra : Tomasz Otap


Dato : 19-07-05 15:03

Christoffer proclaimed as follows:
> Indtil videre virker http://christoffer.buur.info/test/index.php?id=2 men
> jeg vil også gerne have mulighed for at hente data hvis url er
> http://christoffer.buur.info/test/index.php?navn=test2&emne=dhtml
> Desuden har jeg 2 andre muligheder som jeg vi sammensætte på, men hvordan
> gør jeg det praktisk? Det jo i mine øjne en if/else sætning jeg skal lave.
>
> $res = mysql_query("SELECT * FROM christoffer where id='$_GET[id]' OR
> ..??...") or die("Fejl: ".mysql_error()."<br><br>SQL: $sql");

Det er et spørgsmål om sql-sætninger. Hvis du vil hente de data fra
tabellen christoffer hvor feltet id er lig det angivne ELLER feltet navn
er lig det angivne ELLER feltet emne er lig det angivne, så er det bare:

mysql_query("
SELECT * FROM christoffer WHERE
id='".mysql_real_escape_string($_GET['id'])."'
OR navn='".mysql_real_escape_string($_GET['navn'])."'
OR emne='".mysql_real_escape_string($_GET['emne'])."'
");

t

--
Aequitas sequitur funera

Christoffer (19-07-2005)
Kommentar
Fra : Christoffer


Dato : 19-07-05 15:21

> Det er et spørgsmål om sql-sætninger. Hvis du vil hente de data fra
> tabellen christoffer hvor feltet id er lig det angivne ELLER feltet navn
> er lig det angivne ELLER feltet emne er lig det angivne, så er det bare:
Ja, så langt er jeg med. Men hvordan sammensætter jeg 2 informationer? Altså
hvor emnet og navnet står i url. Problemet er er navnet ikke er unikt, og
vil komme til at optræde på i dhtml, css og php.



Tomasz Otap (19-07-2005)
Kommentar
Fra : Tomasz Otap


Dato : 19-07-05 16:46

Christoffer proclaimed as follows:
> Ja, så langt er jeg med. Men hvordan sammensætter jeg 2 informationer? Altså
> hvor emnet og navnet står i url. Problemet er er navnet ikke er unikt, og
> vil komme til at optræde på i dhtml, css og php.

Mener du, at du vil have:
- id lig med det valgte eller
- navn OG emne lig med det valgte?

Så grupperer du blot navn og emne-felter sammen og sætter et eller
mellem denne subquery og id-forespørgsel.

mysql_query("
SELECT * FROM christoffer WHERE
id='".mysql_real_escape_string($_GET['id'])."'
OR ( navn='".mysql_real_escape_string($_GET['navn'])."'
AND emne='".mysql_real_escape_string($_GET['emne'])."')
");

Hvis du ikke regner med at lave miksede søgninger (dvs hvis der altid
søges enten på id eller på navn og emne, men aldig på alle disse
præferencer samtidig), kan det måske være alternativet at separere disse
forespørgsler fra hinanden:

if (!empty($_GET['id']) {

// Der forespørges på ID
mysql_query("
SELECT * FROM christoffer WHERE
id='".mysql_real_escape_string($_GET['id'])."'
");

} else {

// Der forespørges på navn og emne
mysql_query("
SELECT * FROM christoffer WHERE
navn='".mysql_real_escape_string($_GET['navn'])."'
AND emne='".mysql_real_escape_string($_GET['emne'])."'
");

}


t

--
Aequitas sequitur funera

Christoffer (19-07-2005)
Kommentar
Fra : Christoffer


Dato : 19-07-05 17:44


"Tomasz Otap" <tomasz@otap.justRemoveThis.dk> skrev i en meddelelse
news:42dd2041$0$67260$157c6196@dreader2.cybercity.dk...
> mysql_query("
> SELECT * FROM christoffer WHERE
> id='".mysql_real_escape_string($_GET['id'])."'
> OR ( navn='".mysql_real_escape_string($_GET['navn'])."'
> AND emne='".mysql_real_escape_string($_GET['emne'])."')
> ");
Logisk .. tak!

> Hvis du ikke regner med at lave miksede søgninger (dvs hvis der altid
> søges enten på id eller på navn og emne, men aldig på alle disse
> præferencer samtidig), kan det måske være alternativet at separere disse
> forespørgsler fra hinanden
Lige hvad jeg har brug for! .. Det bliver copy-paste, tusind tak for
hjælpen!!

--
Christoffer



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste