Avatar billede wetdog Nybegynder
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>
Avatar billede baitianlong Nybegynder
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 :)
Avatar billede 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?)
Avatar billede wetdog Nybegynder
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
Avatar billede detox Nybegynder
25. november 2004 - 19:47 #4
Som legende skriver: Du kan ikke bruge: $es["db"] uden den er defineret i funktionen.
Avatar billede baitianlong Nybegynder
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
Avatar billede wetdog Nybegynder
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
Avatar billede detox Nybegynder
25. november 2004 - 20:07 #7
legende.dk har jo svaret: 19:16:48, hvad med at prøve det?
Avatar billede wetdog Nybegynder
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
Avatar billede wetdog Nybegynder
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
Avatar billede baitianlong Nybegynder
26. november 2004 - 01:56 #10
Selv tak... :)
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