Avatar billede drinkit Praktikant
12. februar 2006 - 23:11 Der er 23 kommentarer og
2 løsninger

kan der ikke bruges variabler når man laver limit på select?

Hvis jeg laver et link som ser sådan ud:
<a href="?limit=100">LIMIT: 100</a>

og en select således:
$sel = mysql_query("select * from nyheder order by ID DESC limit 0,$limit");

hvorfor giver det så fejl? hvordan kan det istedet laves?
Avatar billede olebole Juniormester
12. februar 2006 - 23:18 #1
<ole>

Det her fejler da ikke, gør det?

$limit = 10;
$sql = "select * from nyheder order by ID DESC limit 0,".$limit;
$sel = mysql_query($sql);

/mvh
</bole>
Avatar billede nielle Nybegynder
12. februar 2006 - 23:18 #2
Prøv med:

$sel = mysql_query("select * from nyheder order by ID DESC limit 0," . $_GET["limit"]) or die(mysql_error());
Avatar billede drinkit Praktikant
12. februar 2006 - 23:18 #3
så var det jo bare anførselstegn der skulle flyttes..
kan jeg godt se nu =)

tak ole / bole :P
Avatar billede olebole Juniormester
12. februar 2006 - 23:19 #4
Henter du limit-værdien i $_GET["limit"] i dit eksempel?
Avatar billede lolman Nybegynder
12. februar 2006 - 23:19 #5
er det fordi at $limit er sat til "" når du går ind på siden.. prøv evt. at tilføje oppe i toppen af siden.. <?if(!$limit)$limit=0;?>
Avatar billede olebole Juniormester
12. februar 2006 - 23:19 #6
oki ... hjalp det?
Avatar billede drinkit Praktikant
12. februar 2006 - 23:20 #7
nej. ole..
prøver lige lolmans forslag
Avatar billede drinkit Praktikant
12. februar 2006 - 23:21 #8
http://80.160.105.149/ny

lolman.. nopes, virker ik
Avatar billede drinkit Praktikant
12. februar 2006 - 23:21 #9
ligenu bruger jeg:
<?
$sel = mysql_query("select * from nyheder order by ID DESC limit 0,"$limit);
while ($res = mysql_fetch_array($sel)){
?>
og har så et link der siger
<a href="?limit=100">
Avatar billede olebole Juniormester
12. februar 2006 - 23:25 #10
Alt efter, hvordan din Register_Globals er sat - prøv med $_GET["limit"]
Avatar billede drinkit Praktikant
12. februar 2006 - 23:26 #11
har prøvet.. virker ligeså skidt!
Avatar billede drinkit Praktikant
12. februar 2006 - 23:26 #12
virker det hos jer?
hverken
<?
$sel = mysql_query("select * from nyheder order by ID DESC limit 0,"$limit);
while ($res = mysql_fetch_array($sel)){
?>
eller
<?
$sel = mysql_query("select * from nyheder order by ID DESC limit 0,"$_GET["limit"]);
while ($res = mysql_fetch_array($sel)){
?>
virker
Avatar billede drinkit Praktikant
12. februar 2006 - 23:26 #13
med et <a href="?limit=10">10</a>
link
Avatar billede olebole Juniormester
12. februar 2006 - 23:27 #14
Prøv:
  $sel = mysql_query("select * from nyheder order by ID DESC limit 0,".$_GET["limit"]) or die (mysql_error());

- og du manglede iøvrigt et punktum før $limit  ;o)
Avatar billede drinkit Praktikant
12. februar 2006 - 23:28 #15
det kører sgu =)

nogen forklaring?
Avatar billede nielle Nybegynder
12. februar 2006 - 23:28 #16
... og hvis det ikke virker, så prøv lige også dette:

$sql = "select * from nyheder order by ID DESC limit 0," . $_GET["limit"];
echo "DEBUG: " . $sql . "<br>";
$sel = mysql_query($sql) or die(mysql_error());
Avatar billede drinkit Praktikant
12. februar 2006 - 23:28 #17
det virker nu.. tak for det..
smid svar, hvem der nu var først med den rigtige løsning=)
Avatar billede olebole Juniormester
12. februar 2006 - 23:29 #18
I eksemplet (12/02-2006 23:26:35) manglede du et punktum til at konkatenere SQL-strengen med variablen. Mon ikke, det var det?
Avatar billede olebole Juniormester
12. februar 2006 - 23:30 #19
nielle >> Hvad siger du? Er det mon ikke en deler?
Avatar billede nielle Nybegynder
12. februar 2006 - 23:30 #20
Forklaring: Pga. din servers sikkerhedsopsætning (værdien af register_globals) så bliver værdien i URL'et ikke automatisk læsbart via $limit, men skal hentes som $_GET["limit"];
Avatar billede olebole Juniormester
12. februar 2006 - 23:30 #21
:)
Avatar billede nielle Nybegynder
12. februar 2006 - 23:30 #22
Fint :^)
Avatar billede drinkit Praktikant
12. februar 2006 - 23:31 #23
tak for det gutter :)

god aften herfra.
Avatar billede olebole Juniormester
12. februar 2006 - 23:35 #24
Selvtak ... og tak for points  :)
Avatar billede morhan Novice
12. februar 2006 - 23:45 #25
Af sikkerhedsmæssige årsager, bør du nok caste værdien til en integer. Ellers åbner du op for sql injektion

.(int)$_GET["limit"]
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

IT-JOB

Capgemini Danmark A/S

AI/Data Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Politiets Efterretningstjeneste

IT-løsningsarkitekt i PET