/ 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
max($etellerandet);
Fra : strix nebulosa


Dato : 02-12-01 10:39

Hej...

Jeg forsøger at finde frem til et maxtal, men kan ikke få følgende til
at fungere:

while ($row = mysql_fetch_array($query)) {
$række = $row["art_navn"];
$antal = $row["antal"];
}
print "<br><br>";
$a = array($antal);
$totalt = max($a);
print "$totalt<br><br>";
}

$antal indeholder en masse tal, trukket ud af en database. Det sidste
tal er 234, og det største tal er 873467. Ovenstående resulterer i at
print = 234 - hvorfor det!???

Fortsat go' søndag :)

MVH Steen Brølling
--
strix nebulosa <strix@mail.dk>


 
 
Hroi Sigurdsson (02-12-2001)
Kommentar
Fra : Hroi Sigurdsson


Dato : 02-12-01 11:02

strix nebulosa wrote:

> Jeg forsøger at finde frem til et maxtal, men kan ikke få følgende til
> at fungere:
>
> while ($row = mysql_fetch_array($query)) {
> $række = $row["art_navn"];
> $antal = $row["antal"];
> }

Her overskriver du $række (kan man bruge æ i et variabelnavn?) og $antal
for hver iteration.

> print "<br><br>";
> $a = array($antal);

Her opretter du et array med eet element med værdien $antal.
Hvorfor opretter du et nyt array?

> $totalt = max($a);

Det største tal i $a kan kun være det ene element ($a[0]). Hvorfor
kalder du resultet for $totalt? Mener du ikke $max?

> print "$totalt<br><br>";
> }

Du har en klamme i overskud.

> $antal indeholder en masse tal, trukket ud af en database.

Nej, $antal er eet tal.

> Det sidste tal er 234, og det største tal er 873467. Ovenstående
> resulterer i at print = 234 - hvorfor det!???

Ja, det skulle gerne give sig selv nu.

Din kode skal nok se sådan ud:

// deklaration
$raekke = array();
$antal = array();

while ($row = mysql_fetch_array($query)) {
// Vi appender ([]-operator)
$raekke[] = $row["art_navn"];
$antal[] = $row["antal"];
}
print "<br><br>";
$max = max($antal);

print "$max<br><br>";

--
Hroi Sigurdsson hroi@asdf.dk
Danske nyhedsfeeds i RSS-format: http://asdf.dk/rss/da/

Mogens Meier Christe~ (02-12-2001)
Kommentar
Fra : Mogens Meier Christe~


Dato : 02-12-01 11:22

> Din kode skal nok se sådan ud:
>
> // deklaration
> $raekke = array();
> $antal = array();
>
> while ($row = mysql_fetch_array($query)) {
> // Vi appender ([]-operator)
> $raekke[] = $row["art_navn"];
> $antal[] = $row["antal"];
> }
> print "<br><br>";
> $max = max($antal);

Hvis det *kun* er max(antal) man er interesseret i var det *meget*
nemmere at opnå med en
"select max(antal) as max from [tabel]" - og meget hurtigere og mere
"naturligt"!

Så slipper man for at overføre en masse irrellevante data fra databasen.

--
Mvh. Mogens
www.momech.dk
"If it works, ignore bugs and security holes"



strix nebulosa (02-12-2001)
Kommentar
Fra : strix nebulosa


Dato : 02-12-01 11:37


On Sun, 2 Dec 2001 11:22:15 +0100
"Mogens Meier Christensen" <mmc@nospam.dk> wrote with a touch of lunacy:

> Hvis det *kun* er max(antal) man er interesseret i var det *meget*
> nemmere at opnå med en
> "select max(antal) as max from [tabel]" - og meget hurtigere og mere
> "naturligt"!
>
> Så slipper man for at overføre en masse irrellevante data fra databasen.

Ja. Det har jeg også brugt. Men da jeg skal hente en masse andet på
samme tid, har jeg foretrukket PHP løsningen.

Steen Brølling
--
strix nebulosa <strix@mail.dk>


strix nebulosa (02-12-2001)
Kommentar
Fra : strix nebulosa


Dato : 02-12-01 11:36

Hej

On Sun, 02 Dec 2001 11:02:27 +0100
Hroi Sigurdsson <hroi@asdf.dk> wrote with a touch of lunacy:

> > Det sidste tal er 234, og det største tal er 873467. Ovenstående
> > resulterer i at print = 234 - hvorfor det!???
>
> Ja, det skulle gerne give sig selv nu.

Det gør det også nu. Det er lige med at gennemskue logikken i det hele :)

> Din kode skal nok se sådan ud:

> while ($row = mysql_fetch_array($query)) {
> // Vi appender ([]-operator)
> $raekke[] = $row["art_navn"];
> $antal[] = $row["antal"];
> }
> print "<br><br>";
> $max = max($antal);
>
> print "$max<br><br>";

Ja det hjalp gevaldigt kan man roligt antyde. Det absolut springende
punkt var, at jeg ikke anede, at man bare kunne tilføje [] når man
henter de forskellige $rows.
Men nu forstår jeg allerede en masse mere angående arrays - TAK!

Steen Brølling
--
strix nebulosa <strix@mail.dk>


Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408857
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste