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 :-)
Annonceindlæg fra Pax8
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>"; } } ?>
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?
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.
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å!
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");
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
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.
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???
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
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å? :-)
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....
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!!!!
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.
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!!! :-)
15. marts 2005 - 14:41
#15
Yesh yesh :)
15. marts 2005 - 15:04
#16
jamen så må svar smides så points kan ydes*G*
15. marts 2005 - 15:08
#17
Damn :/
15. marts 2005 - 15:08
#18
*G*
Vi tilbyder markedets bedste kurser inden for webudvikling