/ 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
Resource ID#
Fra : Britt Malka


Dato : 14-04-04 20:00

Goddag

Jeg blev smidt herover fra databasegruppen. Håber, at det er rigtigt
denne gang:

Så er jeg stødt på problemet igen.

Når jeg kører min mysql-query, får jeg resultatet "resource id #3".

Jeg ved godt, at problemet kan løses ved at bruge mysql_fetch_array og
så en for-løkke, men det bliver lidt klodset, da jeg skal bruge koden
mange steder i et script.

Min kode lige nu ser sådan her ud:

<? $ialtpsyken1 = mysql_query("select pris from varer where
vareID='$psyken1'"); print $ialtpsyken1*$psyken1; ?>

Jeg har prøvet et alternativ:

$pris = mysql_query("select pris from varer");
while ($ialt = mysql_fetch_array($pris)){
print " osv.
men når jeg skal udskrive: ".$ialt['pris']."

Så bliver prisen hver gang den samme, uanset vare.

Så jeg er lidt kørt fast lige nu.

Nogen idéer?
--
Britt Malka
Tilmeld dig nyhedsbrev og få gratis ebog om html - http://www.tips-og-tricks.com/ebog.html
(Svar ikke til denne e-mail-adresse. Mail slettes på serveren p.g.a. spam)

 
 
Thomas Lindgaard (14-04-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 14-04-04 21:07

On Wed, 14 Apr 2004 21:00:05 +0200, Britt Malka wrote:

> Når jeg kører min mysql-query, får jeg resultatet "resource id #3".
>
> Jeg ved godt, at problemet kan løses ved at bruge mysql_fetch_array og
> så en for-løkke, men det bliver lidt klodset, da jeg skal bruge koden
> mange steder i et script.

Der er ikke noget alternativ til en løkke hvis din query returnerer mere
end een række! Det som mysql_query returnerer er en reference til et
resource - ikke noget fint formateret HTML som man blot kan skrive ud.

> Min kode lige nu ser sådan her ud:
>
> <? $ialtpsyken1 = mysql_query("select pris from varer where
> vareID='$psyken1'"); print $ialtpsyken1*$psyken1; ?>

Det er det samme som

print "resouce id 3" * [et tal];

og det giver jo ikke så megen mening (ikke den rigtige mening i hvert
fald). (Jeg kan i det hele taget ikke se at det skulle give ret megen
mening at gange varens ID med noget...)

> Jeg har prøvet et alternativ:
>
> $pris = mysql_query("select pris from varer"); while ($ialt =
> mysql_fetch_array($pris)){ print " osv. men når jeg skal udskrive:
> ".$ialt['pris']."
>
> Så bliver prisen hver gang den samme, uanset vare.

"select pris from varer" henter _hele_ dit varekatalog... jeg er ikke helt
sikker på hvad det er du vil, men jeg tror det er noget i stil med
følgende:

<?php
mysql_query("select pris from varer where vareID='$psyken1'");
while ( $vare = mysql_fetch_array() )
{
$ialt += $vare['pris'];
}
print "Prisen i alt er $ialt kroner";
?>

Bemærk, det er ikke nødvendigt at bruge retur-værdien fra mysql_query i
kaldet til mysql_fetch_array - hvis den kaldes uden argument så bruges
automagisk den sidst fundne resource.

Men! Hvis det er hvad du ønsker (altså at finde totalprisen for alle
varer med et givent ID) så kan du nok klare dig med noget i retning af
følgende:

<?php
mysql_query("select sum(pris) as pris from varer where
vareID='$psyken1'");
$pris_array = mysql_fetch_array();
print "Prisen i alt er {$pris_array['pris']} kroner";
?>

NB. Dette er skrevet ud fra en antagelse om at vareID faktisk ikke
entydigt identificerer een enkelt vare men derimod en gruppe af varer.
Hvis dette ikke er tilfældet så kan du ikke bruge koden til noget :)

Mvh.
/Thomas

Britt Malka (16-04-2004)
Kommentar
Fra : Britt Malka


Dato : 16-04-04 10:58

On Wed, 14 Apr 2004 22:07:18 +0200, Thomas Lindgaard
<thomas@it-snedkeren.BLACK_HOLE.dk> wrote:

>Der er ikke noget alternativ til en løkke hvis din query returnerer mere
>end een række!

Ah, okay. Så er det derfor, jeg ikke har fundet en anden løsning

> print "resouce id 3" * [et tal];

Ja, lige præcis, og så ganger den 3 med tallet.

>og det giver jo ikke så megen mening (ikke den rigtige mening i hvert
>fald).

Nej

>(Jeg kan i det hele taget ikke se at det skulle give ret megen
>mening at gange varens ID med noget...)

Mjøf, dårlig navngivning fra min side. Den ganger varens pris med
antallet.

>Bemærk, det er ikke nødvendigt at bruge retur-værdien fra mysql_query i
>kaldet til mysql_fetch_array - hvis den kaldes uden argument så bruges
>automagisk den sidst fundne resource.

Ah, smart tip. Tak


>Men! Hvis det er hvad du ønsker (altså at finde totalprisen for alle
>varer med et givent ID) så kan du nok klare dig med noget i retning af
>følgende:

Nej, jeg skulle finde varens pris ganget med det valgte antal.

Tak for din hjælp
--
Britt Malka
Tilmeld dig nyhedsbrev og få gratis ebog om html - http://www.tips-og-tricks.com/ebog.html
(Svar ikke til denne e-mail-adresse. Mail slettes på serveren p.g.a. spam)

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

Månedens bedste
Årets bedste
Sidste års bedste