25. november 2004 - 19:04
Der er
9 kommentarer og 1 løsning
returnere mysql resultat til anden fil
Hej har 2 filer : funktioner.php og skod.php. funktioner.php indeholder : <? mysql_pconnect("xxx","yyy","zzz") or die(mysql_error()); function SelectAll() { $sql = "select * from articles"; $res = mysql_db_query($es["db"], $sql); return $res; } ?> Hvad skal jeg gøre i filen skod.php for at modtage resultatet ? Jeg troede dette var nok : <? include("$DOCUMENT_ROOT/skod.php"); ?> <html> <head> <link rel="stylesheet" href="styles.css" type="text/css"> <title>Welcome to es-engros.com</title> </head> <body bgcolor="#ddf194"> <p><?php print "<table>"; $skod = SelectAll(); while($row = mysql_fetch_array($skod)) { $vnr = $row[0]; print "<tr><td rowspan=3><img src=/pictures/" . $vnr . ".jpg height=80 width=110></td>"; print "<td>" . $row[0] . "<br>" . $row[0] . "<br>" . $row[0] . "<br>" . $row[0] . "</td></tr>"; } print "</table>"; ?></p> </body> </html>
Annonceindlæg fra Computerworld
25. november 2004 - 19:16
#1
Hvordan skal funktionen vide hvad $es["db"] er?? I øvrigt skriver de på php.net at mysel_db_query er forældet, og anbefaler denne vinkel. function SelectAll() { mysql_connect("xxx", "yyy", "zzz"); mysql_select_db("databasenavn"); $sql = "select * from articles"; $res = mysql_query($sql); return $res; } Håber det virker lidt bedre :)
Slettet bruger
25. november 2004 - 19:20
#2
Du kan heller ikke være sikker på at $DOCUMENT_ROOT indeholder din dokumentrod. Prøv med $_SERVER['DOCUMENT_ROOT'] eller bare ingenting.. (da det ser ud til at dokumenter ligger i samme bibliotek?)
25. november 2004 - 19:32
#3
Hej og tak for de hurtige svar. Det er ikke noget af ovenstående som er problemet. Problemet er at jeg ikke kan modtage et resultat fra et databasekald. Hvis jeg sender simple værdier virker det fint. Kan det være fordi det er et array jeg forsøger at returnere ??? /WetDog
25. november 2004 - 19:47
#4
Som legende skriver: Du kan ikke bruge: $es["db"] uden den er defineret i funktionen.
25. november 2004 - 19:53
#5
Det er et resultset du returnerer. Du kan evt. fylde dem i et array og returnere det. Der er et eller andet med et resultset's levetid ?!? function SelectAll() { mysql_connect("xxx", "yyy", "zzz"); mysql_select_db("databasenavn"); $sql = "select * from articles"; $res = mysql_query($sql); $resultat = array(); while($row = mysql_fetch_assoc($res)) { array_push($resultat, $row[0]); } return $resultat; } og så behandle det med foreach-løkke :) Prøv evt. det
25. november 2004 - 19:55
#6
<? mysql_pconnect("xxx","yyy","zzz") or die(mysql_error()); session_register("es"); $es["db"] = "xxx"; function SelectAll() { global $es; $sql = "select * from articles"; $res = mysql_db_query($es["db"], $sql); return $res; } ?> denne virker heller ikke - jeg modtager intet resultat i skod.php /WetDog
25. november 2004 - 20:07
#7
legende.dk har jo svaret: 19:16:48, hvad med at prøve det?
25. november 2004 - 20:51
#8
Hej Jeg er igang med at teste de forskellige løsningsforslag og har nu prøvet : <? mysql_pconnect("xxx","yyy","zzz") or die(mysql_error()); session_register("es"); $es["db"] = "yyy"; function SelectAll() { global $es; mysql_select_db($es["db"]); $sql = "select * from articles"; $res = mysql_query($sql); $resultat = array(); while($row = mysql_fetch_assoc($res)) { array_push($resultat, $row[0]); } return $resultat; } ?> og forsøger at bruge resultatet i den anden fil : <? include("$DOCUMENT_ROOT/tst/dbcon.inc"); ?> <html> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> <meta name="generator" content="Adobe GoLive 6"> <link rel="stylesheet" href="styles.css" type="text/css"> <title>Welcome to es-engros.com</title> </head> <body bgcolor="#ddf194"> <p><?php print "<table>"; $res = SelectAll(); foreach($res as $row) { echo $row . "/n"; } print "</table>"; ?></p> </body> </html> Men dette virker ikke - nogen forslag. Jeg er ikke så bekendt med brugen af arrays.... /WetDog
25. november 2004 - 22:05
#9
så virker det - så lidt på legende.dk´s svar kl 19.53 og fandt yderligere info på php.net : <?php mysql_pconnect("xxx","yyy","zzz") or die(mysql_error()); session_register("es"); $es["db"] = "yyy"; function SelectAll() { global $es; mysql_select_db($es["db"]); $sql = "select * from articles"; $res = mysql_query($sql); $data = array(); while($row = mysql_fetch_row($res)) { $data[] = $row; } return $data; } ?> <? include("$DOCUMENT_ROOT/tst/dbcon.inc"); ?> <html> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> <meta name="generator" content="Adobe GoLive 6"> <link rel="stylesheet" href="styles.css" type="text/css"> <title>Welcome to es-engros.com</title> </head> <body bgcolor="#ddf194"> <p><?php print "<table>"; $res = SelectAll(); foreach($res as $row) { print $row[0] . "<br>"; } print "</table>"; ?> </p> </body> </html> så tak for det legende.dk
26. november 2004 - 01:56
#10
Selv tak... :)
Vi tilbyder markedets bedste kurser inden for webudvikling