philippo: Problem mit foreach

Hi @ all

ich habe folgende Klasse geschrieben:

class explorer extends db{

var $type;
 var $content;

function explorer ( $type ){
  $this->type = $type;
  $this->db();
 }

function getdata() {
  foreach ($this->sql("SELECT name FROM test") as $var) {
   $this->content .= '<tr><td width="18"><img src="_backend/_images/explorer_folder.gif"></td>
                      <td width="250"><a href="admin.php?_file=explorer&_folder='.$var.'">'.$var.'</a></td>
                      <td width="120">'.$var.'</td>
                      <td><a href="admin.php?_file=explorer&_folder='.$var.'">'.$var.'</a></td><tr>';
  }
 }

function render() {
  $this->content .= '<table width="100%" border="0" cellspacing="0" cellpadding="7">';
  $this->getdata();
  $this->content .= '</table>';
 }

function show() {
  $this->render();
  echo $this->content;
 }

}

Nun ist mein Problem, das immer nur der erste Datensatz der DB ausgelesen wird. Hat jemand eine Idee, wie ich analle Datensatz komme?

Gruß
philippo

  1. Nun ist mein Problem, das immer nur der erste Datensatz der DB ausgelesen wird. Hat jemand eine Idee, wie ich analle Datensatz komme?

    offensichtlich liefert deine methode nur ein element.
    die weiteren sätze werden mit fetch abgeholt.

    ein muster einer db-klasse bezogen auf entities kannst du dir auf
    http://fanelf.de/Dokumentation/Persistenz.htm
    ansehen.

    1. function sql($sql) {
        if (!$this->erg = mysql_query($sql, $this->connid)) {
         echo "Fehler beim Senden der Abfrage.";
        }
        return mysql_fetch_assoc($this->erg);
      }

      Meine SQL Funktion

      1. Ahoi philippo,

        Meine SQL Funktion

        erweitere die mal auf:

        function sql($sql)
        {
          if (!$this->erg = mysql_query($sql, $this->connid))
          {
            echo "Fehler beim Senden der Abfrage.";
          }
          while($datensatz = mysql_fetch_assoc($this->erg))
          {
            $daten[] = $datensatz;
          }
          return $daten;
        }

        MfG

        --
        Alle Angaben wie immer ohne Gewähr
  2. echo $begrüßung;

    Nun ist mein Problem, das immer nur der erste Datensatz der DB ausgelesen wird. Hat jemand eine Idee, wie ich analle Datensatz komme?

    Das kommt ganz drauf an, wie die Klasse db aussieht, von der du ja die eigentliche Datenbankfunktionalität erbst.

    echo "$verabschiedung $name";