Einlesen von Tabelle durch For-Schleife

TJ22

Grünschnabel
Hi!

Beim proggen bin ich auf folgendes Problem gestoßen:
Nachdem ich durch eine folgende for-Schleife alle Datensätze meiner Tabelle einlese:
Code:
$sql = 'SELECT COUNT( * ) FROM tj22_isles WHERE 1';
$result = mysql_query($sql);
$sum = mysql_result($result,0,0);

for ($i=1;$i<=$sum;$i++) {
$daten = 'isle' . $i;
$query = "SELECT *
FROM `tj22_isles`
WHERE (
`isle_id` =".$i."
)";
$result = mysql_query($query);
$$daten = mysql_fetch_array($result, MYSQL_ASSOC);
}

und dann durch echo ausgebe (der assoziative key ist sicher richtig):
Code:
echo $isle2["jb"];

wird ÜBERHAUPT NICHTS ausgegeben.

Der Tabellenname ist sicher richtig, eine MySQL-Verbindung mit der richtigen Datenbank besteht auch.
Wo kann der Fehler liegen?


THX, Tj.
 
Tag Tag

guck dir mal das hier an:

PHP:
$sql = 'SELECT COUNT( * ) FROM tj22_isles WHERE 1';

ist falsch, da musst du npch die spalte angeben

PHP:
$sql = 'SELECT COUNT( * ) FROM tj22_isles WHERE spaltenname = 1';

hilfts?
 
Hi,

Mit der Zeile wollte ich die Anzahl der Datensätze in der Tabelle berechnen. Es soll irgentwann mal ein Online-Game werden (naja, mit meinen PHP- und MySQL-Kenntnissen wirds wohl noch dauern... eigentlich möchte ich dadurch nur proggen lernen...)
In meiner Datenbank habe ich eine Tabelle "TJ22_isles". Die sieht so aus:
Code:
+--------+--------+------+----------------------------+
|isle_id |name....|number| weitere Merkmale...........|....hier geht's noch weiter
+--------+--------+------+----------------------------+
|00001...|Rom.... |23....| irgendwas..................|....hier geht's noch weiter
+--------+--------+------+----------------------------+
|00002...|Athen.. |25....| irgendwas..................|....hier geht's noch weiter
+--------+--------+------+----------------------------+
|00003...|Carth.. |34....| irgendwas..................|....hier geht's noch weiter
+--------+--------+------+----------------------------+
Die Spalte "isle_id" ist der primary key.
Und um die Inseln zu zählen, wollte ich die Datensätze zählen...

Gruß, Tj.
 
Zuletzt bearbeitet:
Hi!

Wenn du nur die Inseln zählen willst, also die Anzahl, dann würde dir vielleicht die SQL Anweisung COUNT weiterhelfen.

Code:
SELECT COUNT("column_name")
FROM "table_name"

Du würdest dir dadurch auch die for-Schleife sparen. Gefunden hab ich die Info übrigens hier. Auf der Site sind noch ein paar andere grundlegende SQL Anweisungen angeführt.

Hoffe dir hilfts :)

Gruß
TOM
 
Hi!

Danke, der Link ist sehr nützlich. Das Problem ist aber wo anders... hat sich schon erledigt... aber trotzdem danke! :)

Gruß, Tj.
 
TJ22 hat gesagt.:
Code:
$sql = 'SELECT COUNT( * ) FROM tj22_isles WHERE 1';
$result = mysql_query($sql);
$sum = mysql_result($result,0,0);

for ($i=1;$i<=$sum;$i++) {
$daten = 'isle' . $i;
$query = "SELECT *
FROM `tj22_isles`
WHERE (
`isle_id` =".$i."
)";
$result = mysql_query($query);
$$daten = mysql_fetch_array($result, MYSQL_ASSOC);
}
Erst die Anzahl der Datensätze feststellen und dann für jeden ein eigenes SELECT absetzen ist absoluter Unsinn!
Was glaubst du wie lang das dauert wenns mal 100.000 DS sind?

PHP:
$sql = "SELECT *  FROM tj22_isles";
$result = mysql_query($sql);
$sum = mysql_num_rows($result);
while($row = mysql_fetch_array($result)){
   // zeig $row['spaltenname'] an oder mach sonst was damit
}
 
Zurück