Just nu i M3-nätverket
Jump to content

mysql_result, konstigt felmeddelande


Andreas

Recommended Posts

Jag har gjort en objektorienterad inloggning som ska kolla man har skrivit in ratt losenord. Problemet ar att jag far ett felmeddelande som jag inte forstar. Det ser ut sa har: Warning: Unable to jump to row 0 on MySQL result index 2

 

Koden ser ut sa har:

 

$sqlQuery = "

SELECT userPwd

FROM $this->dbUserTable

WHERE userName = \"$this->userName\"";

 

$sqlResult = mysql_query($sqlQuery);

if(!$sqlResult) {

die("Något blev fel när frågan ställdes till databasen ..." . mysql_error());

}

$correctPwd = mysql_result($sqlResult, 0);

if($correctPwd != $this->userPwd) {

die("Fel lösenord!");

}

 

Ar problemet att jag inte lyckats hamta nagra rader fran databasen eller? Resultatet borde bara var en rad.

Link to comment
Share on other sites

Utan att ha testat din kod så är jag ganska säker på att du inte får ut något resultat. Detta eftersom denna rad måste vara utanför citattecken:

 

WHERE userName = \"$this->userName\"";

 

dvs:

 

WHERE userName = '" . $this->userName . "'";

 

Testa att köra på det sättet så får vi se om det funkar. Ett annat tips då du hämtar ut data med mysql_result är att alltid kolla så att du verkligen får ut nåt data från databasen med hjälp av funktionen mysql_num_rows (http://www.php.net/manual/en/function.mysql-num-rows.php)

 

<redigerat>Glömde visst ett dollartecken....</redigerat>

 

--

Some say I am crazy.. but the Voices in my head disagree...

 

[inlägget ändrat 2002-12-05 10:18:40 av Bj0rN]

Link to comment
Share on other sites

Det är prics som Bj0rn säger.

Sedan tycker jag du ska läsa under rubriken 1. MySQL-frågor i följande tråd:

//eforum.idg.se/viewmsg.asp?EntriesId=368153

 

Link to comment
Share on other sites

Fredrik Stark

testa det här:

$sqlQuery = "

SELECT userPwd

FROM $this->dbUserTable

WHERE userName = ".$this->userName;

 

$sqlResult = mysql_query($sqlQuery);

if(!$sqlResult) {

die("Något blev fel när frågan ställdes till databasen ..." . mysql_error());

}

$correctPwd = mysql_result($sqlResult, 0);

if($correctPwd != $this->userPwd) {

die("Fel lösenord!");

}

 

Link to comment
Share on other sites

Man bör också ta för vana att antingen inte lägga variabelnamn inuti en sträng, eller i så fall omge dem med {}.

Så här skulle jag skriva SQL-frågan:

$sqlQuery = "

SELECT userPwd

FROM {$this->dbUserTable}

WHERE userName = '".addcslashes($this->userName, "\\'")."'";

 

 

Link to comment
Share on other sites

Bra initiativ till den tråden tycker jag, gav ett poäng på den. Dock vore det bättre om det kunde finnas ett FAQ system i nästa version av Eforum, där man som Eforum användare skulle ha chansen att skriva en artikel om såna saker som dessutom ligger utanför själva forum delen.

 

Har för mig att vi redan har tagit upp det i någon tråd till herr Junesjö, men det är alltid värt att ta upp det igen så att det kanske blir så till nästa version! :)

 

--

Some say I am crazy.. but the Voices in my head disagree...

 

Link to comment
Share on other sites

Ja, det skulle verkligen vara bra. Eller att man kan, som i vissa forum, göra en tråd "klistrig" så att den alltid ligger högst upp.

 

Alternativt kan man ju starta ett forum till som heter typ PHP-FAQ, där en moderator tar bort alla inlägg som är frågor, och bara tillåter tips-inlägg.

 

 

Link to comment
Share on other sites

Dock vore det bättre om det kunde finnas ett FAQ system i nästa version av Eforum, där man som Eforum användare skulle ha chansen att skriva en artikel om såna saker som dessutom ligger utanför själva forum delen.

Ett FAQ-system kommer att finnas i nästa version av Eforum, men där kommer "svaren" bestå av existerande trådar. Det kommer alltså inte finnas möjlighet för speciella "FAQ-artiklar".

 

 

Almir - ...

____________________________________________________________

-Läser Programmet för Informatik med Systemvetenskap på MDH, Västerås.-

 

Link to comment
Share on other sites

Mm, har för mig att det var nåt sånt jag oxå... tycker inte riktigt det är den bästa lösningen eftersom man ändå kan söka i det forumet som man vill ha svar på en fråga i (konstig mening blev det).

 

Jag röstar på mitt förslag! :)

 

--

Some say I am crazy.. but the Voices in my head disagree...

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...