/ 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
Hjælp til MySQL funktion
Fra : Brian Emilius


Dato : 20-02-04 11:31

Hej NG

Jeg leger lidt med at lave en funktion der returnerer en query
fra MySQL

function ask_reply($query){
$resultat = @mysql_query($query);
while($raekke = @mysql_fetch_array($resultat)){
extract($raekke);
RETURN $raekke;
}
}

men når jeg så kalder functionen, fx

$query = ask_reply("SELECT * FROM table");
extract($query);
print "$felt1, $felt2 osv...\n";

så printer det kun 1. række... og der er mange flere...
Nogen der har en løsning?

Venlig hilsen
Brian Emilius


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dan Molberg (20-02-2004)
Kommentar
Fra : Dan Molberg


Dato : 20-02-04 11:36

In news:c14nka$7ho$1@sunsite.dk,
Brian Emilius <brian@nospam.emilius.dk> typed:
> Hej NG
>
> Jeg leger lidt med at lave en funktion der returnerer en query
> fra MySQL
>
> function ask_reply($query){
> $resultat = @mysql_query($query);
> while($raekke = @mysql_fetch_array($resultat)){
> extract($raekke);
> RETURN $raekke;
> }
> }
Når du laver en return afslutter du funktionen....
så du må smide arrayet vidre.
function ask_reply($query){
$resultat = @mysql_query($query);
$raekke = @mysql_fetch_array($resultat);
RETURN $raekke;
}
}

--
MVH Dan Molberg
http://beyond.repair.dk/



Thomas Lindgaard (20-02-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 20-02-04 11:57

On Fri, 20 Feb 2004 11:35:36 +0100, Dan Molberg wrote:

>> Hej NG
>>
>> Jeg leger lidt med at lave en funktion der returnerer en query
>> fra MySQL
>>
>> function ask_reply($query){
>> $resultat = @mysql_query($query);
>> while($raekke = @mysql_fetch_array($resultat)){
>> extract($raekke);
>> RETURN $raekke;
>> }
>> }
> Når du laver en return afslutter du funktionen....
> så du må smide arrayet vidre.
> function ask_reply($query){
> $resultat = @mysql_query($query);
> $raekke = @mysql_fetch_array($resultat);
> RETURN $raekke;
> }
> }

Øhm - du afslutter da osse funktionen efter første række...

function ask_reply($query) {
$resultat = @mysql_query($query);
while ( $raekke = @mysql_fetch_array($resultat) ) {
$resultat_raekker[] = $raekke;
}
return $resultat_raekker;
}

Mvh.
/Thomas

Dan Molberg (20-02-2004)
Kommentar
Fra : Dan Molberg


Dato : 20-02-04 12:10

In news:pan.2004.02.20.10.56.51.650293@it-snedkeren.BLACK_HOLE.dk,
Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> typed:
> On Fri, 20 Feb 2004 11:35:36 +0100, Dan Molberg wrote:
>
>>> Hej NG
>>>
>>> Jeg leger lidt med at lave en funktion der returnerer en query
>>> fra MySQL
>>>
>>> function ask_reply($query){
>>> $resultat = @mysql_query($query);
>>> while($raekke = @mysql_fetch_array($resultat)){
>>> extract($raekke);
>>> RETURN $raekke;
>>> }
>>> }
>> Når du laver en return afslutter du funktionen....
>> så du må smide arrayet vidre.
>> function ask_reply($query){
>> $resultat = @mysql_query($query);
>> $raekke = @mysql_fetch_array($resultat);
>> RETURN $raekke;
>> }
>> }
>
> Øhm - du afslutter da osse funktionen efter første række...
>
> function ask_reply($query) {
> $resultat = @mysql_query($query);
> while ( $raekke = @mysql_fetch_array($resultat) ) {
> $resultat_raekker[] = $raekke;
> }
> return $resultat_raekker;
> }
Øhm, nej, men du tager et array og laver et nyt array hvor du så bare smider
keys fra det originale array væk.
--
MVH Dan Molberg
http://beyond.repair.dk/



Thomas Lindgaard (20-02-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 20-02-04 12:22

On Fri, 20 Feb 2004 12:09:45 +0100, Dan Molberg wrote:

>> Øhm - du afslutter da osse funktionen efter første række...
>>
>> function ask_reply($query) {
>> $resultat = @mysql_query($query);
>> while ( $raekke = @mysql_fetch_array($resultat) ) {
>> $resultat_raekker[] = $raekke;
>> }
>> return $resultat_raekker;
>> }
> Øhm, nej, men du tager et array og laver et nyt array hvor du så bare smider
> keys fra det originale array væk.

Øhm, nej igen :)

Jeg sender en query afsted til serveren, og så itererer jeg gennem alle
rækkerne i svaret og tilføjer dem en $resultat_raekker. Efter
while-løkken vil $resultat_raekker indeholde alle de rækker som query'en
gav, og disse returneres så til sidst.

Hver indgang i det returnerede array vil være et array, hvor keys fra
databasen er bevaret - altså:

$resultat_raekker = array(
0 => array('id' => 42, 'art' => 'Hyæne', 'lugt' => 'Ikke god'),
1 => ...
);

Disse kan man så iterere igennem og skrive ud efter kaldet til ask_query().

Mvh.
/Thomas

Dan Molberg (20-02-2004)
Kommentar
Fra : Dan Molberg


Dato : 20-02-04 12:48

In news:pan.2004.02.20.11.22.18.272914@it-snedkeren.BLACK_HOLE.dk,
Thomas Lindgaard <thomas@it-snedkeren.BLACK_HOLE.dk> typed:
> On Fri, 20 Feb 2004 12:09:45 +0100, Dan Molberg wrote:
>
>>> Øhm - du afslutter da osse funktionen efter første række...
>>>
>>> function ask_reply($query) {
>>> $resultat = @mysql_query($query);
>>> while ( $raekke = @mysql_fetch_array($resultat) ) {
>>> $resultat_raekker[] = $raekke;
>>> }
>>> return $resultat_raekker;
>>> }
>> Øhm, nej, men du tager et array og laver et nyt array hvor du så
>> bare smider keys fra det originale array væk.
> Øhm, nej igen :)
Sorry, du har ret, er desvære bruger jeg normalt ikke mysql_fetch_array, gør
mig mere i objektor:D
--
MVH Dan Molberg
http://beyond.repair.dk/



Brian Emilius (20-02-2004)
Kommentar
Fra : Brian Emilius


Dato : 20-02-04 11:59

Dan Molberg wrote in dk.edb.internet.webdesign.serverside.php:
> Når du laver en return afslutter du funktionen....
> så du må smide arrayet vidre.
> function ask_reply($query){
> $resultat = @mysql_query($query);
> $raekke = @mysql_fetch_array($resultat);
> RETURN $raekke;
> }
> }

Den er jeg ikke sikker på, jeg forstår helt...

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dan Molberg (20-02-2004)
Kommentar
Fra : Dan Molberg


Dato : 20-02-04 12:14

In news:c14p9a$m4o$1@sunsite.dk,
Brian Emilius <brian@nospam.emilius.dk> typed:
> Dan Molberg wrote in dk.edb.internet.webdesign.serverside.php:
>> Når du laver en return afslutter du funktionen....
>> så du må smide arrayet vidre.
>> function ask_reply($query){
>> $resultat = @mysql_query($query);
>> $raekke = @mysql_fetch_array($resultat);
>> RETURN $raekke;
>> }
>> }
>
> Den er jeg ikke sikker på, jeg forstår helt...
Sorry havde en } for meget med:
function ask_reply($query){
$resultat = @mysql_query($query);
$raekke = @mysql_fetch_array($resultat);
RETURN $raekke;
}
Så må du lave en:

foreach (ask_reply($query) as $arr) {
echo $arr['key1'].$arr['key2'];
}

--
MVH Dan Molberg
http://beyond.repair.dk/



Thomas Lindgaard (20-02-2004)
Kommentar
Fra : Thomas Lindgaard


Dato : 20-02-04 12:53

On Fri, 20 Feb 2004 12:13:54 +0100, Dan Molberg wrote:

> function ask_reply($query){
> $resultat = @mysql_query($query);
> $raekke = @mysql_fetch_array($resultat);
> RETURN $raekke;
> }
> Så må du lave en:
>
> foreach (ask_reply($query) as $arr) {
> echo $arr['key1'].$arr['key2'];
> }

Hvis query f.eks. er

SELECT * FROM tabel

hvor tabel indeholder 42 rækker, så vil ask_reply() returnere første
(og kun første) række.

Når man så kører

foreach (ask_reply($query) as $arr)

så vil det man drøner igennem være et array på formen

array('id' => 1, 'art' => 'Hyæne', 'lugt' => 'Ikke god')

I første iteration af foreach vil $arr indeholde værdien 1, og

echo $arr['key1'].$arr['key2'];

vil give fejl.

Mvh.
/Thomas



Brian Emilius (20-02-2004)
Kommentar
Fra : Brian Emilius


Dato : 20-02-04 13:15

Thomas Lindgaard wrote in dk.edb.internet.webdesign.serverside.php:
> foreach (ask_reply($query) as $arr) {
> echo $arr['key1'].$arr['key2'];
> }

Så, nu er den der!

Det var det der foreach, der narrede mig...
Jeg skriver bare også extract($arr), for det gør det lettere at
overskue, end $arr['feltnavn'] ... osv...

Mange tak skal I begge have :)

Venlig hilsen
Brian Emilius

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

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

Månedens bedste
Årets bedste
Sidste års bedste