AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Problem mit foreach

Ein Thema von fcg · begonnen am 29. Aug 2005 · letzter Beitrag vom 29. Aug 2005
Antwort Antwort
fcg

Registriert seit: 15. Apr 2003
98 Beiträge
 
#1

[PHP] Problem mit foreach

  Alt 29. Aug 2005, 22:27
Hi @ all

ich habe folgende Klasse geschrieben:

Code:
class explorer extends db{

 var $type;
 var $content;

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

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

 function getdata() {
  foreach ($this->sql("SELECT name FROM test") as $var) {
   $this->content .= '<tr><td width="18">[img]_backend/_images/explorer_folder.gif[/img]</td>
                      <td width="250">[url="admin.php?_file=explorer&_folder='.$var.'"]'.$var.'[/url]</td>
                      <td width="120">'.$var.'</td>
                      <td>[url="admin.php?_file=explorer&_folder='.$var.'"]'.$var.'[/url]</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 an alle Datensatz komme?

Gruß
philippo
.: Wer für alles offen ist, kann nicht ganz dicht sein! :.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: [PHP] Problem mit foreach

  Alt 29. Aug 2005, 23:04
Moin fcg,

du fuehrst jedes Mal das Query aus. Du darfst das Query aber nur einmal ausfuehren, und anschliessend jedes Mal mit mysql_fetch_assoc() den naechsten Datensatz auslesen, wenn ich das richtig in Erinnerung habe.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
fcg

Registriert seit: 15. Apr 2003
98 Beiträge
 
#3

Re: [PHP] Problem mit foreach

  Alt 29. Aug 2005, 23:13
ich führ as doch nur ein mal aus, oder!?
.: Wer für alles offen ist, kann nicht ganz dicht sein! :.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: [PHP] Problem mit foreach

  Alt 29. Aug 2005, 23:14
Zitat von fcg:
ich führ as doch nur ein mal aus, oder!?
Naja:
Code:
function sql($sql) { 
  if (!$this->erg = mysql_query($sql, $this->connid)) { 
   echo "Fehler beim Senden der Abfrage.";
  } 
  return mysql_fetch_assoc($this->erg);
}
Also das sieht mir ganz nach mehrfachem Ausfuehren des Query aus

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#5

Re: [PHP] Problem mit foreach

  Alt 29. Aug 2005, 23:31
Also ohne die Klasse würdest du das so machen:
Code:
$result =mysql_query('SELECT ...');
while($row =mysql_fetch_assoc($result))
{
  //do something
}
also ksnnst du dir die sql-Funktion in deiner Klasse eigentlich sparen. Und getData schreibst du dann so um:
Code:
function getdata() { 
  $result =mysql_query("SELECT name FROM test");
  while($row =mysql_fetch_assoc($result))
  {
    foreach ($row as $var) { 
      $this->content .= '<tr><td width="18">[img]_backend/_images/explorer_folder.gif[/img]</td>
                        <td width="250">[url="admin.php?_file=explorer&_folder='.$var.'"]'.$var.'[/url]</td>
                        <td width="120">'.$var.'</td>
                        <td>[url="admin.php?_file=explorer&_folder='.$var.'"]'.$var.'[/url]</td><tr>';
    } 
  }
}
Noch ein Tipp: Wenn du den array nicht assoziativ brauchst, dann nimm doch mysql_fetch_row statt mysql_fetch_assoc. Das ist geringfühgig schneller...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz