Avatar billede nyst Nybegynder
15. marts 2005 - 13:23 Der er 17 kommentarer og
1 løsning

funktionsfil og gem før body og så vis

hej,

jeg har brugt den sædvanlige funktionsfil fra webcafe, men vil gerne have at felter fra databasen hentes først og så senere i body hentes frem - altså hente alt og gemme og så bruge hist og her på siden.

funktioner:

<?php
# diverse funktioner

function aaben_db() {
  $server = "localhost";
  $bruger = "";
  $kodeord = "";
  $database = "";

if (!mysql_connect("$server","$bruger","$kodeord")) {
  udskriv_fejl("Kunne ikke oprette en forbindelse til MySQL.");
}

if(!mysql_select_db("$database")) {
  udskriv_fejl("Kunne ikke vælge databasen: $database");
}
}

function spoerg_svar($query) {
  $resultat = mysql_query($query);

if(!$resultat) {
  udskriv_fejl("Kunne ikke udføre: $query");
}

while($data = mysql_fetch_array($resultat)) {
  $resultat_array[] = $data;
}

return $resultat_array;
}

function spoerg($query) {
  $resultat = mysql_query($query);

if(!$resultat) {
  udskriv_fejl("Kunne ikke udføre: $query");
}
}

function luk_db() {
  if(!mysql_close()) {
    udskriv_fejl("Kunne ikke lukke forbindelsen til MySQL.");
  }
}

function udskriv_fejl($fejl) {
  echo "<br><br>$fejl";

if ($mysql_fejl = mysql_error()) {
  echo "<br>Fejlen er: $mysql_fejl";
}

exit;
}
?

-------------------------------------------------------


siden - før body:

<?php
require("db_funk.php");
aaben_db();
$array = spoerg_svar("SELECT afdeling, overskrift, indhold, kopi, dag FROM `sider`WHERE indeks=040000");
luk_db();
?>

siden i body:

<body>

<?php
if ($array); {
echo "<table border=0 cellpadding=0 cellspacing=0>";
echo "<tr><td>";
echo "<h3>$data[afdeling]</h3>";
echo "<h1>$data[overskrift]</h1>";
echo "$data[indhold]<br><br>";
echo "$data[kopi] $data[dag]";
echo "<br><br></td></tr></table>";
}
?>

</body>
----------------------------------------------

denne skriver intet??

og kan man i det hele taget gemme det man ønkser fra en database 'øverst' og så hente det med $hist-og-her på siden, det ville være ret smart

:-)
Avatar billede Slettet bruger
15. marts 2005 - 13:27 #1
<?php
if ($array) {
while($data = mysql_fetch_array($array))
    {
    echo "<table border=0 cellpadding=0 cellspacing=0>";
    echo "<tr><td>";
    echo "<h3>$data[afdeling]</h3>";
    echo "<h1>$data[overskrift]</h1>";
    echo "$data[indhold]<br><br>";
    echo "$data[kopi] $data[dag]";
    echo "<br><br></td></tr></table>";
    }
}
?>
Avatar billede Slettet bruger
15. marts 2005 - 13:27 #2
i stedet for det andet ud har i body.

1. du kan ikke skrive if(noget); (altså afslutte med semikolon)

2. hvor får du $data fra?
Avatar billede barklund Nybegynder
15. marts 2005 - 13:28 #3
Da $array ikke er en mysql-ressource, skal det bare skrives:

foreach($array as $data)

I stedet for ovenstående while.
Avatar billede Slettet bruger
15. marts 2005 - 13:30 #4
nå ja.. troede at det var mysql_query i stedet for spoerg_svar..

spoerg_svar skal lige defineres først også!
Avatar billede Slettet bruger
15. marts 2005 - 13:32 #5
det er den allered..
men prøv at skrive
$array = mysql_query("SELECT afdeling, overskrift, indhold, kopi, dag FROM `sider`WHERE indeks=040000");

i stedet for

$array = spoerg_svar("SELECT afdeling, overskrift, indhold, kopi, dag FROM `sider`WHERE indeks=040000");
Avatar billede nyst Nybegynder
15. marts 2005 - 13:41 #6
hejsa,
$data kommer fra funktion-fil

while($data = mysql_fetch_array($resultat)) {
  $resultat_array[] = $data;

-----------------------

så jeg har prøvet med:

while($data = mysql_fetch_array($resultat)) {
echo osv

men virker ikke
Avatar billede barklund Nybegynder
15. marts 2005 - 13:43 #7
Jamen dine data samles jo i dit $array - som du så bare kan gennemløbe og printe ud fra, som forklaret ovenover.
Avatar billede nyst Nybegynder
15. marts 2005 - 13:43 #8
funktionfilen har jo

function spoerg_svar($query) {
  $resultat = mysql_query($query);

if(!$resultat) {
  udskriv_fejl("Kunne ikke udføre: $query");
}

while($data = mysql_fetch_array($resultat)) {
  $resultat_array[] = $data;
}

return $resultat_array;
}

så denne skal vel ikke skrives igen???
Avatar billede barklund Nybegynder
15. marts 2005 - 13:46 #9
Nej, derfor se min første kommentar - du skal blot erstatte din lille smule php:

if ($array); {
...
}

Med:

if ($array) {
  foreach($array as $data) {
  ...
  }
}

Og så burde det virke.

--
Morten Barklund
Avatar billede nyst Nybegynder
15. marts 2005 - 13:53 #10
det virker med

--------
<?php
require("db_funk.php");
aaben_db();
$array = spoerg_svar("SELECT afdeling, overskrift, indhold, kopi, dag FROM `sider`WHERE indeks=040000");
luk_db();
?>
------------------

<?php
foreach($array as $data) {
echo "$data[indhold";
osv
}
?>
---------------------
men er det den rigtige måde at udnytte funktionfilen på?

:-)
Avatar billede nyst Nybegynder
15. marts 2005 - 13:55 #11
og vil det sige at de steder jeg vil bruge felter fra $array så skal jeg bruge

<?php
foreach($array as $data) {
echo "$data[indhold";
osv
}
?>

denne hver gang....
Avatar billede nyst Nybegynder
15. marts 2005 - 13:57 #12
funktion laver jo faktisk

while($data = mysql_fetch_array($resultat)) {
  $resultat_array[] = $data;
}

så jeg tænkte man bare kunne skrive echo "$data[indhold]"; og echo "$data[osv]"; hvor man ville på siden i body!!!!
Avatar billede barklund Nybegynder
15. marts 2005 - 14:11 #13
Nejnej, du har nemlig ikke $data til rådighed uden for funktionen - derudover kan der jo også være mange rækker, og hvis du kun skal bruge en række, så er det jo bare $array[0]['indhold'] - som jo er første række.
Avatar billede nyst Nybegynder
15. marts 2005 - 14:29 #14
ja så er foreach($array as $data) {
nok mere smart ellers skal man jo tælle osv *G*

men takker for lidt mere forståelse

points!!!

:-)
Avatar billede barklund Nybegynder
15. marts 2005 - 14:41 #15
Yesh yesh :)
Avatar billede nyst Nybegynder
15. marts 2005 - 15:04 #16
jamen så må svar smides så points kan ydes*G*
Avatar billede barklund Nybegynder
15. marts 2005 - 15:08 #17
Damn :/
Avatar billede nyst Nybegynder
15. marts 2005 - 15:08 #18
*G*
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester