webForumDet fria alternativet

Konstigheter med mySQL?

PHPur PHP

8 svar · 155 visningar · startad av Kosse

Medlem sedan juni 2000162 inlägg
Frågan#1

Följande kod verkar inte fungera som det ska och jag fattar inte varför. Letar inte scriptet nedan i alla samtliga rader i tabellen tavlanden och kollar om både användarnman och lösenord är rätt? Verkar helt slumpartat på vilket användarnamn scriptet accepterar eller inte, men oftast fungerar det översta i tabellen.

$link = mysql_connect ("server", "kosse", "lösenordet")
or die ("Kunde inte koppla upp mot databasen.");
mysql_select_db("kosse");

$resultat = mysql_query("SELECT * FROM tavlanden");

if (mysql_num_rows($resultat) > 0) {
while ($row = mysql_fetch_row($resultat)) {
if ($row[1]==$anvandarnamn && $row[2]==$losen)
{
setcookie("ianvandarnamn",$anvandarnamn,time()+157680000); //Kakor sättes.
setcookie("ilosen",$losen,time()+1800);
header("Location: index.php?ID=tavlandestartsida");
$finns=1;
break;
}
}
}

if (!$finns) {
echo "$stil Ditt användarnamn eller lösenord är fel, försök igen.";
}

Medlem sedan dec. 200012 464 inlägg
#2

Kan du inte lägga in sökningen direkt i sql-frågan? Då slipper du loopen i programmet.

$link = mysql_connect ("server", "kosse", "lösenordet")
or die ("Kunde inte koppla upp mot databasen.");
mysql_select_db("kosse");

$resultat = mysql_query("SELECT * FROM tavlanden where anvandarnamn = '$anvandarnamn' and losen = '$losen'");

if (mysql_num_rows($resultat) > 0) {
setcookie("ianvandarnamn",$anvandarnamn,time()+157680000); //Kakor sättes.
setcookie("ilosen",$losen,time()+1800);
header("Location: index.php?ID=tavlandestartsida");
$finns=1;
break;
}

if (!$finns) {
echo "$stil Ditt användarnamn eller lösenord är fel, försök igen.";
}

Använder du rätt arrayindex i ditt program?

------------------
essentitia preter non sans multiplicandum

Medlem sedan juni 2000162 inlägg
#3

Kunde man skriva så också?, där ser man. Är väldans ny på den hära med mySQL.

Jag tror jag vet vad som var fel innan, servern måste fått fnatt eftersom jag aldrig stängde kopplingen till databasen. När jag la till det fungerade det som det skulle...

Medlem sedan juni 2000162 inlägg
#4

Förresten, vad är ett arrayindex?

Medlem sedan dec. 200012 464 inlägg
#5

När du skriver $row[1] så är 1 ett arrayindex. Jag bara undrade om de arrayindex du använder när du jämför stämmer med de positioner som kolumnerna har i tabellen.

------------------
essentitia preter non sans multiplicandum

Medlem sedan juni 2000162 inlägg
#6

Ok, jo dom stämmer. Det har jag kollat.

Medlem sedan juni 2000162 inlägg
#7

Om jag skriver såhär utan whileloop verkar jag inte få några värden i resultat, varför inte? Blir inte $resultat en indexarray precis som $row blev med while loopen?

$resultat = mysql_query("SELECT * FROM tavlanden where anvandarnamn = '$anvandarnamn' and losen = '$losen'");

Medlem sedan dec. 200012 464 inlägg
#8

Nej, $resultat är bara ett värde (handle) som du använder för att få tag på posterna. För att hämta en post får man göra

$row = mysql_fetch_row($resultat);

------------------
essentitia preter non sans multiplicandum

Medlem sedan juni 2000162 inlägg
#9

Ok, då fattar jag den biten.
Tackar för hjälpen!

131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)