/ 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
Postgresql og PHP
Fra : Mickey


Dato : 14-06-01 22:24

Jeg har et script der (helst) skulle kunne hente 4 variabler ud fra en
postgres database.

<?
$conn=pg_pconnect("user=username dbname=database");
if(!$conn){echo "der opstod en fejl";}
else {
query("BEGIN WORK");
$uge = "01"; // strftime('%W');
echo pg_errormessage($conn);
$pred = pg_exec($conn,"SELECT praed FROM program WHERE uge='$uge'");
$emne = pg_exec($conn,"SELECT emne FROM program WHERE uge='$uge'");
$teaser = pg_exec($conn,"SELECT teaser FROM program WHERE uge='$uge'");
$ekstra = pg_exec($conn,"SELECT ekstra FROM program WHERE uge='$uge'");
query("END WORK");
pg_close($conn);
}

Der kommer ingen fejl, men en "echo $ekstra" giver "Resource id #6"

Hvorfor kommer det korrekte resultat ikke frem ?


--
|-|$235-|)k - Mickey
http://susie.dk - mickey(at)susie.dk
http://susie.dk/www.tv3.dk.26.05.2001.html





 
 
Morten Winther (14-06-2001)
Kommentar
Fra : Morten Winther


Dato : 14-06-01 22:59


"Mickey" <news002@susie.dk> wrote in message
news:9gba29$9m7$1@egon.worldonline.dk...

<snip>

> $pred = pg_exec($conn,"SELECT praed FROM program WHERE uge='$uge'");
> $emne = pg_exec($conn,"SELECT emne FROM program WHERE uge='$uge'");
> $teaser = pg_exec($conn,"SELECT teaser FROM program WHERE uge='$uge'");
> $ekstra = pg_exec($conn,"SELECT ekstra FROM program WHERE uge='$uge'");

Hvorfor laver du ikke én select i stedet for 4?

> Der kommer ingen fejl, men en "echo $ekstra" giver "Resource id #6"

Ja, pg_exec giver dig jo ingen data men kun et result index.

> Hvorfor kommer det korrekte resultat ikke frem ?

Du skal hente dataen med f.eks.: pg_fetch_array

Der er gode ting og eksempler i manualen:

<?php
$conn = pg_pconnect ("dbname=publisher");
if (!$conn) {
echo "An error occured.\n";
exit;
}

$result = pg_Exec ($conn, "SELECT * FROM authors");
if (!$result) {
echo "An error occured.\n";
exit;
}

$arr = pg_fetch_array ($result, 0);
echo $arr[0] . " <- array\n";

$arr = pg_fetch_array ($result, 1);
echo $arr["author"] . " <- array\n";
?>

http://www.php.net/manual/en/ref.pgsql.php

/ morten



Mickey (14-06-2001)
Kommentar
Fra : Mickey


Dato : 14-06-01 23:38

"Morten Winther" <mw@get2net.dk> skrev:
>
> "Mickey" <news002@susie.dk> wrote in message
> news:9gba29$9m7$1@egon.worldonline.dk...
>
> <snip>
>
> > $pred = pg_exec($conn,"SELECT praed FROM program WHERE uge='$uge'");
> > $emne = pg_exec($conn,"SELECT emne FROM program WHERE uge='$uge'");
> > $teaser = pg_exec($conn,"SELECT teaser FROM program WHERE uge='$uge'");
> > $ekstra = pg_exec($conn,"SELECT ekstra FROM program WHERE uge='$uge'");
>
> Hvorfor laver du ikke én select i stedet for 4?

fordi jeg aldrig har lavet noget med SQL før - forsøgte mig frem ved at
kigge på et script på phpbuilder...

> > Der kommer ingen fejl, men en "echo $ekstra" giver "Resource id #6"
>
> Ja, pg_exec giver dig jo ingen data men kun et result index.

hm...

> > Hvorfor kommer det korrekte resultat ikke frem ?
>
[snip - noget der virker]

takker - nu fandt jeg da ud af at få det til at virke!
- så mangler jeg bare at kunne skrive i databasen...


--
|-|$235-|)k - Mickey
http://susie.dk - mickey(at)susie.dk
http://susie.dk/www.tv3.dk.26.05.2001.html



Mickey (14-06-2001)
Kommentar
Fra : Mickey


Dato : 14-06-01 23:43

"Morten Winther" <mw@get2net.dk> skrev:

> $arr = pg_fetch_array ($result, 0);
> echo $arr[0] . " <- array\n";
>
> $arr = pg_fetch_array ($result, 1);
> echo $arr["author"] . " <- array\n";

btw, hva er egentlig forskellen på de to der ?
- syns ikke manualen forklarer det...


--
|-|$235-|)k - Mickey
http://susie.dk - mickey(at)susie.dk
http://susie.dk/www.tv3.dk.26.05.2001.html



Jonas Delfs (15-06-2001)
Kommentar
Fra : Jonas Delfs


Dato : 15-06-01 00:32

"Mickey" <news002@susie.dk> skrev i en meddelelse
news:9gbeo2$c0t$1@egon.worldonline.dk...

> > $arr = pg_fetch_array ($result, 0);
> > echo $arr[0] . " <- array\n";
> >
> > $arr = pg_fetch_array ($result, 1);
> > echo $arr["author"] . " <- array\n";
>
> btw, hva er egentlig forskellen på de to der ?
> - syns ikke manualen forklarer det...

Det gør den da ganske fint ?
Hvis du sætter andet argument i pg_fetch_array til 0 får du resultaterne i
en nummerisk array - hvis du derimod sætter andet argument til 1, får du et
array med feltnavnene som keys, som resultat.

--
Mvh. Jonas Delfs, http://delfs.dk

"Rigtige mænd scorer på ICQ" - Christian Jørgensen



Michael Sig Birkmose (15-06-2001)
Kommentar
Fra : Michael Sig Birkmose


Dato : 15-06-01 08:22

>hvis du derimod sætter andet argument til 1, får du et
> array med feltnavnene som keys, som resultat.

Et såkaldt associativt array :)

Du kan se mere om arrays på
http://www.dk.php.net/manual/en/function.array.php

--
Michael Birkmose
Department of Control Engineering
Fr. Bajersvej 7 - C4-221.

Mickey (15-06-2001)
Kommentar
Fra : Mickey


Dato : 15-06-01 17:22

"Jonas Delfs" <nospam@delfs.dk> skrev:
> "Mickey" <news002@susie.dk> skrev i en meddelelse
> news:9gbeo2$c0t$1@egon.worldonline.dk...
>
> > > $arr = pg_fetch_array ($result, 0);
> > > echo $arr[0] . " <- array\n";
> > >
> > > $arr = pg_fetch_array ($result, 1);
> > > echo $arr["author"] . " <- array\n";
> >
> > btw, hva er egentlig forskellen på de to der ?
> > - syns ikke manualen forklarer det...
>
> Det gør den da ganske fint ?
> Hvis du sætter andet argument i pg_fetch_array til 0 får du resultaterne i
> en nummerisk array - hvis du derimod sætter andet argument til 1, får du
et
> array med feltnavnene som keys, som resultat.

så var det altså bare mig der var træt... *G*
og dog...
Jeg har sat det til 0, og kan da sagtens bruge det feltnavnene som
array-værdi...


--
|-|$235-|)k - Mickey
http://susie.dk - mickey(at)susie.dk
http://susie.dk/www.tv3.dk.26.05.2001.html



Nezar Nielsen (15-06-2001)
Kommentar
Fra : Nezar Nielsen


Dato : 15-06-01 17:53

"Mickey" <news002@susie.dk> skrev i en meddelelse
news:9gba29$9m7$1@egon.worldonline.dk...
> Jeg har et script der (helst) skulle kunne hente 4 variabler ud fra en
> postgres database.
>
....
> $pred = pg_exec($conn,"SELECT praed FROM program WHERE uge='$uge'");

Hej Mickey,

pg_exec returnerer (ifølge http://dk.php.net/manual/en/function.pg-exec.php)
en resultat-pointer, dvs. du skal gøre noget i stil med:

$res=pg_exec($conn,"select praed,emne,teaser,ekstra from program WHERE
uge='$uge'"); //hvorfor har du uge i en streng?
if(!$res){
die(pg_ErrorMessage());
}
my $row=pg_fetch_array($res,0,PGSQL_ASSOC);
print $row["praed"].' '.$row["emne"].' '.$row["teaser"].'
'.$row["ekstra"]."\n";

--
Mvh. Nezar Nielsen
http://fez.dk/




Mickey (15-06-2001)
Kommentar
Fra : Mickey


Dato : 15-06-01 18:17

"Nezar Nielsen" <tumpen@fez.dk> skrev:
> "Mickey" <news002@susie.dk> skrev i en meddelelse
> news:9gba29$9m7$1@egon.worldonline.dk...
> > Jeg har et script der (helst) skulle kunne hente 4 variabler ud fra en
> > postgres database.
> >
> ...
> > $pred = pg_exec($conn,"SELECT praed FROM program WHERE uge='$uge'");
>
> Hej Mickey,
>
> pg_exec returnerer (ifølge
http://dk.php.net/manual/en/function.pg-exec.php)
> en resultat-pointer, dvs. du skal gøre noget i stil med:
>
> $res=pg_exec($conn,"select praed,emne,teaser,ekstra from program WHERE
> uge='$uge'"); //hvorfor har du uge i en streng?

den skal sættes med strftime('%W'); - derfor...

> if(!$res){
> die(pg_ErrorMessage());
> }
> my $row=pg_fetch_array($res,0,PGSQL_ASSOC);
> print $row["praed"].' '.$row["emne"].' '.$row["teaser"].'
> '.$row["ekstra"]."\n";

har fået lavet noget der ligner - det virker nu ;)


--
|-|$235-|)k - Mickey
http://susie.dk - mickey(at)susie.dk
http://susie.dk/www.tv3.dk.26.05.2001.html



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

Månedens bedste
Årets bedste
Sidste års bedste