Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ny bruger hjælp til variabel

0 views
Skip to first unread message

Dolomito

unread,
Jul 7, 2009, 6:58:09 AM7/7/09
to
Hej

Jeg fors�get at lave et sql kald med en variabel.

N�r jeg laver en echo p� $test f�r jeg et nummer.

Hvis jeg udskrifter variablen med dette nummer i mysql foresp�rgslen virker
det fint.

Men hvis jeg blot bruger variabelen (Som er et brugernr. for en person der
er logget p� siden) s� fejler scriptet.

Kan nogen hj�lpe en newbee ?

Mvh Dolomito
--------------------------------

$test = $req_user_info['username'];

function displayResults(){
global $database;
$q = "SELECT username,dato,klasse,resultat "
."FROM ".TBL_RESULTS." WHERE username = $test";
$result = $database->query($q);
/* Error occurred, return given name by default */
$num_rows = mysql_numrows($result);
if(!$result || ($num_rows < 0)){
echo "Error displaying info";
return;
}


Birger Sørensen

unread,
Jul 7, 2009, 7:29:57 AM7/7/09
to
Dolomito formulerede tirsdag:
> Hej
>
> Jeg forsï¿œget at lave et sql kald med en variabel.
>
> Nᅵr jeg laver en echo pᅵ $test fᅵr jeg et nummer.
>
> Hvis jeg udskrifter variablen med dette nummer i mysql forespï¿œrgslen virker
> det fint.
>
> Men hvis jeg blot bruger variabelen (Som er et brugernr. for en person der er
> logget pᅵ siden) sᅵ fejler scriptet.
>
> Kan nogen hjï¿œlpe en newbee ?

>
> Mvh Dolomito
> --------------------------------
>
> $test = $req_user_info['username'];
>
> function displayResults(){
> global $database;
> $q = "SELECT username,dato,klasse,resultat "
> ."FROM ".TBL_RESULTS." WHERE username = $test";
> $result = $database->query($q);
> /* Error occurred, return given name by default */
> $num_rows = mysql_numrows($result);
> if(!$result || ($num_rows < 0)){
> echo "Error displaying info";
> return;
> }

Prᅵv med '$test' i stedet - altsᅵ med enkelte anfᅵrselstegn om
variablen.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk


Dan Storm

unread,
Jul 7, 2009, 7:33:08 AM7/7/09
to
Dolomito skrev:

> Kan nogen hj�lpe en newbee ?

Udover at 'det ikke virker' hvilken fejl f�r du s�?


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

Dolomito

unread,
Jul 7, 2009, 7:43:19 AM7/7/09
to

"Dan Storm" <shadyz_RE...@err0r.dk> skrev i en meddelelse
news:4a533274$0$15889$edfa...@dtext01.news.tele.dk...

> Dolomito skrev:
>> Kan nogen hj�lpe en newbee ?
>
> Udover at 'det ikke virker' hvilken fejl f�r du s�?
>

Hej Begge

Jeg har pr�vet at s�tte $test mellem to plinger og f�r s� denne besked:
Database table empty

Echo @test giver 8112 , som er det brugernummer brugeren er logget ind med.

Skriver jeg 8112 i foresp�rgslen s� f�r jeg det �nskede resultat.

Er det fordi jeg sql foresp�rgslen p� en tabel som hedder "results" men
henter variablen fra tabellen "user" , s� selvom det begge steder st�r 8112
opfatter den det som forskellige og tror derfor databasen er tom for denne
user ?

De er begge sat ens op i hver sin tabel. (Varchar 30)

Mvh Dolomito


Birger Sørensen

unread,
Jul 7, 2009, 7:53:09 AM7/7/09
to
Fï¿œlgende er skrevet af Dolomito:

> "Dan Storm" <shadyz_RE...@err0r.dk> skrev i en meddelelse
> news:4a533274$0$15889$edfa...@dtext01.news.tele.dk...
>> Dolomito skrev:
>>> Kan nogen hjï¿œlpe en newbee ?
>>
>> Udover at 'det ikke virker' hvilken fejl fᅵr du sᅵ?
>>
>
> Hej Begge
>
> Jeg har prᅵvet at sᅵtte $test mellem to plinger og fᅵr sᅵ denne besked:
> Database table empty
>
> Echo @test giver 8112 , som er det brugernummer brugeren er logget ind med.
>
> Skriver jeg 8112 i forespᅵrgslen sᅵ fᅵr jeg det ᅵnskede resultat.
>
> Er det fordi jeg sql forespᅵrgslen pᅵ en tabel som hedder "results" men
> henter variablen fra tabellen "user" , sᅵ selvom det begge steder stᅵr 8112
> opfatter den det som forskellige og tror derfor databasen er tom for denne
> user ?
>
> De er begge sat ens op i hver sin tabel. (Varchar 30)
>
> Mvh Dolomito

Det er mï¿œske fordi $test ikke kendes i din funktion.
Ved ikke om det er hele funktionen eller om der er mere. Den del du har
gengivet, mangler i hvert fald en tildeling til $test - eller $test som
parameter eller global variabel..
og du har formentlig ikke en rï¿œkke for 'undefined' eller '' :-Z

Nï¿œr du bruger strenge, skal der vï¿œre '' om variablen. (en streng kan
have mellemrum, og du er nï¿œdt til at fortï¿œlle SQL hvor den starter og
slutter - ogsᅵ nᅵr den er i en variabel)

Dolomito

unread,
Jul 7, 2009, 8:06:39 AM7/7/09
to

"Birger S�rensen" <s...@bbsorensen.com> skrev i en meddelelse
news:4a533724$0$48234$1472...@news.sunsite.dk...

>
> N�r du bruger strenge, skal der v�re '' om variablen. (en streng kan have
> mellemrum, og du er n�dt til at fort�lle SQL hvor den starter og slutter -
> ogs� n�r den er i en variabel)


>
> Birger
>
> --
> http://varmeretter.dk - billig, sund og hurtig mad
> http://bbsorensen.dk
>
>

Ok , tak for hj�lpen. Jeg m� hellere l�se mere op p� variable ;-)

Jeg h�bede det blot var en hurtigt l�sning jeg manglede.

Mvh
Dolomito

Birger Sørensen

unread,
Jul 7, 2009, 8:17:17 AM7/7/09
to
Dolomito forklarede den 07-07-2009:
> "Birger Sï¿œrensen" <s...@bbsorensen.com> skrev i en meddelelse
> news:4a533724$0$48234$1472...@news.sunsite.dk...
>
>>

>> Nï¿œr du bruger strenge, skal der vï¿œre '' om variablen. (en streng kan have
>> mellemrum, og du er nï¿œdt til at fortï¿œlle SQL hvor den starter og slutter -
>> ogsᅵ nᅵr den er i en variabel)

>>
>> Birger
>>
>> -- http://varmeretter.dk - billig, sund og hurtig mad
>> http://bbsorensen.dk
>>
>>
> Ok , tak for hjᅵlpen. Jeg mᅵ hellere lᅵse mere op pᅵ variable ;-)
>
> Jeg hï¿œbede det blot var en hurtigt lï¿œsning jeg manglede.
>
> Mvh
> Dolomito

Velbekomme ^^

Hvis

> function displayResults(){
> global $database;
> $q = "SELECT username,dato,klasse,resultat "
> ."FROM ".TBL_RESULTS." WHERE username = $test";
> $result = $database->query($q);
> /* Error occurred, return given name by default */
> $num_rows = mysql_numrows($result);
> if(!$result || ($num_rows < 0)){
> echo "Error displaying info";
> return;
> }

er hvad du har i den funktion du bruger, skal du mᅵske (evt. ogsᅵ) lᅵse
lidt om scope af variable.
http://dk2.php.net/variables.scope
I ovenstï¿œende kendes $test ikke.

Leif Neland

unread,
Jul 7, 2009, 11:34:19 AM7/7/09
to
Dolomito skrev:
> Hej
>

> Jeg fors�get at lave et sql kald med en variabel.

> Kan nogen hj�lpe en newbee ?
>

> --------------------------------
>
> $test = $req_user_info['username'];
>
> function displayResults(){
> global $database;
> $q = "SELECT username,dato,klasse,resultat "
> ."FROM ".TBL_RESULTS." WHERE username = $test";
> $result = $database->query($q);

N�r du nu er selverkl�ret newbie, s� kan du lige s� godt l�re at g�re
det rigtigt fra starten af med parameterized queries :-)
S� f�r du fjernet en stor del (al?) risikoen med at blive hacket med
sql-injects.

$database = new mysqli("localhost", "my_user", "my_password", "world");
...

$q = "SELECT username,dato,klasse,resultat "
."FROM ".TBL_RESULTS." WHERE username = ?";

if ($stmt = $database->prepare($q) {
$stmt->bind_param("s",$test);
$stmt->execute();
$stmt->bind_result($username,$dato,$klasse,$resultat);
if (!$stmt->fetch()) {


echo "Error displaying info";
return;

};
...
};


Leif

Bertel Lund Hansen

unread,
Jul 12, 2009, 6:24:38 PM7/12/09
to
Dolomito skrev:

> Ok , tak for hj�lpen. Jeg m� hellere l�se mere op p� variable ;-)
>
> Jeg h�bede det blot var en hurtigt l�sning jeg manglede.

Du kan g�re $test kendt i din funktion s�dan:

function displayResults ($test) {
blablabla

og s� kalde den med:

displayResults($test);

fra en blok hvor $test er kendt

--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/

0 new messages