/ 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
mysql med foreach
Fra : Budde


Dato : 27-06-07 23:37

Jeg er ved at lave en admin funktion på min side og har brug for
at forbinde informationer fra en mysql database til et foreach
loop istedet for while, men jeg kan ikke få det til at virke.
Herunder ser i koden:


$result = mysql_query("SELECT * FROM person");
$row = mysql_fetch_array($result)

foreach($row as $brugere){

$navnErRigtigt = ($_POST["brugernavn"] ==
$brugere["BrugerNavn"])?true:false;

$kodenErRigtig = ($_POST["adgangskode"] ==
$brugere["BrugerPass"])?true:false;
if($navnErRigtigt && $kodenErRigtig){

bla bla bla
}
}

inden da har jeg connected korrekt med databasen.

Håber i kan hjælpe, på forhånd tak.

//budde

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

 
 
Michael Zedeler (27-06-2007)
Kommentar
Fra : Michael Zedeler


Dato : 27-06-07 23:49

Budde wrote:
> Jeg er ved at lave en admin funktion på min side og har brug for
> at forbinde informationer fra en mysql database til et foreach
> loop istedet for while, men jeg kan ikke få det til at virke.
> Herunder ser i koden: [klip]

Kig på det første bruger-skrevne eksempel i manualen.

http://dk2.php.net/manual/en/function.mysql-fetch-row.php

Mvh. Michael.

Budde (28-06-2007)
Kommentar
Fra : Budde


Dato : 28-06-07 08:52

Michael Zedeler wrote in dk.edb.internet.webdesign.serverside.php:
> Budde wrote:
> > Jeg er ved at lave en admin funktion på min side og har brug for
> > at forbinde informationer fra en mysql database til et foreach
> > loop istedet for while, men jeg kan ikke få det til at virke.
> > Herunder ser i koden: [klip]
>
> Kig på det første bruger-skrevne eksempel i manualen.
>
> http://dk2.php.net/manual/en/function.mysql-fetch-row.php
>
> Mvh. Michael.

Mange tak, det virker nu. : )

//budde

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

Birger (28-06-2007)
Kommentar
Fra : Birger


Dato : 28-06-07 06:44

"Budde" <budde_377@hotmail.com> skrev i en meddelelse
news:4682e699$0$90274$14726298@news.sunsite.dk...
> Jeg er ved at lave en admin funktion på min side og har brug for
> at forbinde informationer fra en mysql database til et foreach
> loop istedet for while, men jeg kan ikke få det til at virke.
> Herunder ser i koden:
>
>
> $result = mysql_query("SELECT * FROM person");
> $row = mysql_fetch_array($result)
>
> foreach($row as $brugere){
>
> $navnErRigtigt = ($_POST["brugernavn"] ==
> $brugere["BrugerNavn"])?true:false;
>
> $kodenErRigtig = ($_POST["adgangskode"] ==
> $brugere["BrugerPass"])?true:false;
> if($navnErRigtigt && $kodenErRigtig){
>
> bla bla bla
> }
> }
>
> inden da har jeg connected korrekt med databasen.
>
> Håber i kan hjælpe, på forhånd tak.
>

Du henter kun een række fra resourcen, så din foreach gør ingenting.
Ikke lige sikker på hvorfor du ikke vil bruge while, men

while ( $row = mysql_fetch_array($result) ) {
// brug $row i stedet for $brugere i din kode
}

burde gøre det rigtigt.

Birger



Dan Storm (28-06-2007)
Kommentar
Fra : Dan Storm


Dato : 28-06-07 08:46

Birger skrev:
> // brug $row i stedet for $brugere i din kode

Med hvilket formål?

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

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Birger (28-06-2007)
Kommentar
Fra : Birger


Dato : 28-06-07 19:18

"Dan Storm" <shadyz@_REMOVETHIS_err0r.dk> skrev i en meddelelse
news:4683672d$0$69235$edfadb0f@dread12.news.tele.dk...
> Birger skrev:
>> // brug $row i stedet for $brugere i din kode
>
> Med hvilket formål?
>


Fordi, hvis man undlader at klippe det væsentlige ud :
while ( $row = mysql_fetch_array($result) ) {
// brug $row i stedet for $brugere i din kode
}
så er det $row og ikke $brugere der indeholder data, og $brugere er tom.

Og så er det i øvrigt nøjagtigt det samme du giver..

Birger



Dan Storm (29-06-2007)
Kommentar
Fra : Dan Storm


Dato : 29-06-07 07:15

Birger skrev:
> Fordi, hvis man undlader at klippe det væsentlige ud :
> while ( $row = mysql_fetch_array($result) ) {
> // brug $row i stedet for $brugere i din kode
> }
> så er det $row og ikke $brugere der indeholder data, og $brugere er tom.
>
> Og så er det i øvrigt nøjagtigt det samme du giver..

Umiddelbart kunne linien bare godt indikere at det var nødvendigt at
bruge $row for at få scriptet til at virke.

Så jeg kunne ikke se noget formål i at omdøbe variablen, blot fordi man
måske er i den overbevisning at $row er et visuelt pænere variabelnavn
end $brugere.

For mig giver det mere mening at give variablerne navne som passer til
deres funktionalitet istedet for at bruge gængse foo, bar og lignende navne.

Men det er jo også bare en holdning...

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

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Birger (29-06-2007)
Kommentar
Fra : Birger


Dato : 29-06-07 09:38


"Dan Storm" <shadyz@_REMOVETHIS_err0r.dk> skrev i en meddelelse
news:4684a36f$0$2680$edfadb0f@dread12.news.tele.dk...
> Birger skrev:
>> Fordi, hvis man undlader at klippe det væsentlige ud :
>> while ( $row = mysql_fetch_array($result) ) {
>> // brug $row i stedet for $brugere i din kode
>> }
>> så er det $row og ikke $brugere der indeholder data, og $brugere er tom.
>>
>> Og så er det i øvrigt nøjagtigt det samme du giver..
>
> Umiddelbart kunne linien bare godt indikere at det var nødvendigt at bruge
> $row for at få scriptet til at virke.
>
> Så jeg kunne ikke se noget formål i at omdøbe variablen, blot fordi man
> måske er i den overbevisning at $row er et visuelt pænere variabelnavn end
> $brugere.
>
> For mig giver det mere mening at give variablerne navne som passer til
> deres funktionalitet istedet for at bruge gængse foo, bar og lignende
> navne.
>
> Men det er jo også bare en holdning...
>
> --

Det er jeg da helt enig med dig i.

$row er det navn Budde selv brugte til arrayet.
Og hvis vi skal gå helt i detalier, ville et navn som $bruger være en god
beskrivelse - $brugere er i virkeligheden ret misvisende.

Hvis _jeg_ skulle vælge, ville det blive noget i retning af
$res_brugere = mysql_query("SELECT * FROM person");
while ( $bruger = mysql_fetch_array($res_brugere)) { .....

Birger



Dan Storm (28-06-2007)
Kommentar
Fra : Dan Storm


Dato : 28-06-07 08:41

Budde skrev:
> $result = mysql_query("SELECT * FROM person");
> $row = mysql_fetch_array($result)
>
> foreach($row as $brugere){
>
> $navnErRigtigt = ($_POST["brugernavn"] ==
> $brugere["BrugerNavn"])?true:false;
>
> $kodenErRigtig = ($_POST["adgangskode"] ==
> $brugere["BrugerPass"])?true:false;
> if($navnErRigtigt && $kodenErRigtig){
>
> bla bla bla
> }
> }
>
> inden da har jeg connected korrekt med databasen.
>
> Håber i kan hjælpe, på forhånd tak.

Jeg kan ikke lige komme i tanke om en måde at bruge foreach på i den
forbindelse du gerne vil der.

Problemet er at
$row = mysql_fetch_array($result);
henter et array med værdierne fra den pågældende række.
Foreach gør faktisk lige præcis hvad du har bedt den om. Men skal den
tjekke næste række skal du køre
$row = mysql_fetch_array($result);
igen.

Derfor virker det ikke efter hensigten.

Når der ikke er flere rækker tilbage at tage af, returner
mysql_fetch_array FALSE. Det bevirker while() til at breake. Derfor er
det nemmere at benytte sig af while.

while($brugere = mysql_fetch_array($result)
{
$navnErRigtigt = ($_POST["brugernavn"] == $brugere["BrugerNavn"]) ? TRUE
: FALSE;

$kodenErRigtig = ($_POST["adgangskode"]== $brugere["BrugerPass"]) ? TRUE
: FALSE;

   if($navnErRigtigt && $kodenErRigtig)
   {
      // kode
   }
}

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

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

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

Månedens bedste
Årets bedste
Sidste års bedste