![]() |
[PHP] Problem mit foreach
Hi @ all
ich habe folgende Klasse geschrieben:
Code:
Nun ist mein Problem, das immer nur der erste Datensatz der DB ausgelesen wird. Hat jemand eine Idee, wie ich an alle Datensatz komme?
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; } } Gruß philippo |
Re: [PHP] Problem mit foreach
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 |
Re: [PHP] Problem mit foreach
ich führ as doch nur ein mal aus, oder!?
|
Re: [PHP] Problem mit foreach
Zitat:
Code:
Also das sieht mir ganz nach mehrfachem Ausfuehren des Query aus ;)
function sql($sql) {
if (!$this->erg = mysql_query($sql, $this->connid)) { echo "Fehler beim Senden der Abfrage."; } return mysql_fetch_assoc($this->erg); } Greetz alcaeus |
Re: [PHP] Problem mit foreach
Also ohne die Klasse würdest du das so machen:
Code:
also ksnnst du dir die sql-Funktion in deiner Klasse eigentlich sparen. Und getData schreibst du dann so um:
$result =mysql_query('SELECT ...');
while($row =mysql_fetch_assoc($result)) { //do something }
Code:
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...
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>'; } } } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz