webForumDet fria alternativet

Konstigheter med mySQL?

PHPur PHP

8 svar · 155 visningar · startad av Kosse

KosseMedlem sedan juni 2000162 inlägg
#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.";
}

LarsGMedlem 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

KosseMedlem 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...

KosseMedlem sedan juni 2000162 inlägg
#4

Förresten, vad är ett arrayindex?

LarsGMedlem 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

KosseMedlem sedan juni 2000162 inlägg
#6

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

KosseMedlem 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'");

LarsGMedlem 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

KosseMedlem sedan juni 2000162 inlägg
#9

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

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