/ 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
Problem med link fra php og MySql-udtræk.
Fra : Claus Poulsen


Dato : 19-10-06 21:09

Hej.

Jeg sidder og tumler med et problem der truer med at gøre mig
ældre i en faretruende fart...

Jeg kører en sql forespørgsel:

"SELECT date_format(dato, '%e/%c %Y, %H:%i') as tiden, navn, id
FROM kunstnerinfo order by dato desc"

som bl.a. generer dette link :
<a href="kunstnerinfo.php?id=<? echo $id ?>"><? echo $navn ?></a>

Så langt så godt.Når jeg trykker på linket kommer jeg til en side
hvor denne sql forespørgsel køres:

"SELECT date_format(dato, '%e/%c %Y, %H:%i') as tiden, navn FROM
kunstnerinfo WHERE id=$id"

med henblik på bl.a. dette:
htmlkode... <? echo $tiden ?> - Navn: <? echo $navn ?> ...
htmlkode.

Men når jeg kører forespørgsel nr. 2 får jeg denne fejlbesked:
...SELECT date_format(dato, '%e/%c %Y, %H:%i') as tiden, navn
FROM kunstnerinfo WHERE id=
Fejlen er: You have an error in your SQL syntax. Check the manual
that corresponds to your MySQL server version for the right
syntax to use near '' at line 1

- og jeg kan ikke se hvorfor!
Kan nogen give mig et hint?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Peter Brodersen (19-10-2006)
Kommentar
Fra : Peter Brodersen


Dato : 19-10-06 21:19

On 19 Oct 2006 20:08:45 GMT, Claus Poulsen <clausp2@yahoo.dk> wrote:

>"SELECT date_format(dato, '%e/%c %Y, %H:%i') as tiden, navn FROM
>kunstnerinfo WHERE id=$id"

Er du sikker på at $id indeholder noget? Helt sikker? Hvad hvis du fx
afvikler:

print $id;

...?

>Men når jeg kører forespørgsel nr. 2 får jeg denne fejlbesked:
>..SELECT date_format(dato, '%e/%c %Y, %H:%i') as tiden, navn
>FROM kunstnerinfo WHERE id=
>Fejlen er: You have an error in your SQL syntax. Check the manual
>that corresponds to your MySQL server version for the right
>syntax to use near '' at line 1

MySQL-fejlen opstår, fordi $id er blank. Som du kan se:
WHERE id= (og så ikke mere)

Det betyder også, at dit script er usikker i forhold til at folk selv
kan tilføje SQL. I en standardopsat PHP kan du overveje at smide
pling'er rundt om $id:

"SELECT date_format(dato, '%e/%c %Y, %H:%i') as tiden, navn FROM
kunstnerinfo WHERE id='$id'"

Men sørg altså lige for at tjekke, om $id overhovedet eksisterer.
--
- Peter Brodersen
Kendt fra Internet

Claus Poulsen (19-10-2006)
Kommentar
Fra : Claus Poulsen


Dato : 19-10-06 22:02

Peter Brodersen wrote in dk.edb.internet.webdesign.serverside.php:
> On 19 Oct 2006 20:08:45 GMT, Claus Poulsen <clausp2@yahoo.dk> wrote:
>
> >"SELECT date_format(dato, '%e/%c %Y, %H:%i') as tiden, navn FROM
> >kunstnerinfo WHERE id=$id"
>
> Er du sikker på at $id indeholder noget? Helt sikker? Hvad hvis du fx
> afvikler:
>
> print $id;
>
> ...?
>
Du har ret. $id indeholder intet - men hvorfor ved jeg ikke.

Det sære er dog at jeg har genbrugt koden fra dette her - på samme måde
som før:
"SELECT date_format(dato, '%e/%c %Y, %H:%i') as tiden, tekst, kunstner,
overskrift, id FROM portfolio order by dato desc"

+

<a href="logbogside.php?id=<? echo $id ?>"><? echo $overskrift ?>

=>

Ny side med:
"SELECT date_format(dato, '%e/%c %Y, %H:%i') as tiden, tekst, kunstner,
overskrift FROM portfolio where id=$id"

Og her er der ingen problemer. $id indeholder en værdi og kan printes
på skærmen.


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Peter Brodersen (19-10-2006)
Kommentar
Fra : Peter Brodersen


Dato : 19-10-06 23:01

On 19 Oct 2006 21:02:08 GMT, Claus Poulsen <clausp2@yahoo.dk> wrote:

>Du har ret. $id indeholder intet - men hvorfor ved jeg ikke.

Tjek fx:
http://faq.php.dk/index.php/Globals

Prøv at indlede din kode med:
$id = $_GET['id'];

--
- Peter Brodersen
Kendt fra Internet

Claus Poulsen (19-10-2006)
Kommentar
Fra : Claus Poulsen


Dato : 19-10-06 23:07

Peter Brodersen wrote in dk.edb.internet.webdesign.serverside.php:
>
> Tjek fx:
> http://faq.php.dk/index.php/Globals
>
> Prøv at indlede din kode med:
> $id = $_GET['id'];
>
Det var LIGE det der skulle til! :)

Jeg takker for hjælpen, Peter.

Det med sikkerheden må jeg hellere få kigget på.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

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

Månedens bedste
Årets bedste
Sidste års bedste