tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
453
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    TJ22 TJ22 ist offline Rookie
    Registriert seit
    Oct 2005
    Beiträge
    8
    Hi!

    Beim proggen bin ich auf folgendes Problem gestoßen:
    Nachdem ich durch eine folgende for-Schleife alle Datensätze meiner Tabelle einlese:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    $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 :
    1
    
    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.
     

  2. #2
    Registriert seit
    May 2005
    Beiträge
    285
    Tag Tag

    guck dir mal das hier an:

    PHP-Code:
    $sql 'SELECT COUNT( * ) FROM tj22_isles WHERE 1'
    ist falsch, da musst du npch die spalte angeben

    PHP-Code:
    $sql 'SELECT COUNT( * ) FROM tj22_isles WHERE spaltenname = 1'
    hilfts?
     

  3. #3
    TJ22 TJ22 ist offline Rookie
    Registriert seit
    Oct 2005
    Beiträge
    8
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    +--------+--------+------+----------------------------+
    |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.
    Geändert von TJ22 (21.10.05 um 14:04 Uhr)
     

  4. #4
    TommyMo TommyMo ist offline Mitglied Brokat
    Registriert seit
    Nov 2003
    Beiträge
    261
    Hi!

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

    Code :
    1
    2
    
    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
     
    alles Gute kommt von ...

  5. #5
    TJ22 TJ22 ist offline Rookie
    Registriert seit
    Oct 2005
    Beiträge
    8
    Hi!

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

    Gruß, Tj.
     

  6. #6
    German German ist offline Mitglied Brokat
    Registriert seit
    Jul 2004
    Ort
    (Bayern)
    Beiträge
    464
    Zitat Zitat von TJ22
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    $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-Code:
    $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

     
    Gruß German

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 30.07.08, 10:15
  2. Antworten: 4
    Letzter Beitrag: 27.03.08, 21:36
  3. txt einlesen und als Variable mit Schleife abarbeiten
    Von gpsscout im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 14.07.07, 22:46
  4. Tabelle/Bild durch Tabelle ersetzen
    Von raideNinfinity im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 03.06.07, 11:28
  5. Datei einlesen in einer For-Schleife
    Von dspicher im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 25.09.06, 21:22