kostenloser Webspace werbefrei: lima-city


Zeilenanzahl von Tabelle durch Variable bestimmen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Hallo.

    Es geht um ein kleines Spiel. Über ein Textfeld kann man Mitspieler bei dem Spiel anmelden. Diese Mitspieler werden in einem Textdokument gespeichert. Jetzt möchte ich die Mitspieler aus dem Textdokument in einer Tabelle ausgeben. Jeder Mitspieler soll eine eigene Zeile haben und sie sollen alle untereinander in einer Spalte stehen. Neben der einen Spalte soll noch eine zweite Spalte sein. Was darin steht ist erstmal unwichtig.

    1. Frage: Wie kann ich die einzelnen Mitspieler aus der Textdatei Filtern? Also das ich beispielsweise jeden einzelnen Mitspieler ausgeben könnte.

    2. Frage: Wie kann ich die Anzahl der Zeilen der Tabelle an die Anzahl der Mitspieler anpassen? Die Anzahl der Mitspieler habe ich so ermittelt:

    $file = file("textdateien/m_spieler.txt");
    $anzahl_mitspieler = count($file);


    Also die Zeilenanzahl der Tabelle soll = $anzahl_mitspieler sein. Die Spaltenzahl soll 2 sein. In jeder Zeile soll dann halt der jeweilige Mitspieler stehen. Und in die 2. Spalte daneben soll auch noch ein bestimmter Wert hin.

    Wie kann ich das realisieren?
    Freue mich über Hilfe.
    Liebe Grüße

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Gibt es einen bestimmten Grund warum du das mit einem Textfile lösen möchtest?

    Für solche Sachen eignet sich eine Datenbank eindeutig besser!
  4. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    Ja gibt es ;) Ich hab mysql noch nie gemacht und weiß nicht wie es geht ;)
  5. dann mach lieber datenbanken als files. Ich kam immer durcheinander mit dem w,w+,r,r+,x ect. ect.

    möglichkeit 1:
    für jedes eine eigene datei anlegen
    möglichkeit 2:
    mit dem pointer zur bestimmten stelle springen und über eine bestimmte länge alles ausgeben. Dateien sind für sowas nicht wirklich gut geeignet.

    zu frage 2: grenzt du es zur Zeit schon etwas ein. Also, dass du z.B. sagst: benutzer1;benutzer2? dann kannst du mit dem phpbefehlen implode und explode arbeiten und danach ein count von dem array nehmen.
  6. Hallo

    Daten als Zeilen mit Spalten ....
    ... wie schon gesagt wurde, für sowas ist eigentlich Datenbank viel besser (MySQL)

    aber wenn es unbedingt .txt sein soll, dann ist hier das Stichwort: CSV !!!

    hier mal Beispiel für m_spieler.txt mit 3 Spalten:

    "Name";"Punkte";"Datum"
    "Supersonic","131","2012-06-27"
    "Donald","44","2012-06-21"
    "Horst","89","2012-05-22"
    "Jonny","131","2012-06-26"


    und als PHP in etwa so:
    // --------------------------------------------------------- 
    
    $filename = 'textdateien/m_spieler.txt';   // --- Pfad und Datei-Name der CSV 
    $strenner = ';';                // --- Spalten-Trenner-Zeichen der CSV
    $prozeile = '1024';             // --- maximale Zeichen pro Zeile 
    
    // --------------------------------------------------------- 
    
    $handle = fopen($filename, "r"); 
    
    while (($data = fgetcsv($handle, $prozeile, $strenner)) !== FALSE) {
       $zeilen_data[]=$data;  
       }
       
    fclose($handle);
    
    // ---------------------------------------------------------



    dann hast Du $zeilen_data als Array und kannst es mit foreach() ausgeben

    zum Beispiel so:


    $nbr = "\n"; 
    
    echo '<table border="0" cellspacing="0" cellpadding="3" width="320">'.$nbr; 
    $n=0; 
    
    foreach($zeilen_data as $zeile) { 
    $nr = $n; 
    if ($n == 0) { $bgcol = '#CCCCCC'; $nr = '&nbsp;'; } 
    elseif (($n%2) == 0) { $bgcol = '#EFEFEF'; } else { $bgcol = '#FFFFEE'; } 
    
    echo ' <tr style="background:'.$bgcol.';">'.$nbr; 
    echo '   <td width="20">'.$nr.'</td>'.$nbr; 
    echo '   <td width="120">'.$zeile['0'].'</td>'.$nbr; 
    echo '   <td width="80">'.$zeile['1'].'</td>'.$nbr; 
    echo '   <td width="100">'.$zeile['2'].'</td>'.$nbr; 
    echo ' </tr>'.$nbr; 
    
    $n++; 
    }
    
    echo '</table>'.$nbr; 
    
    echo '<br />'.$nbr;




    beachte dabei, dass die Spalten bei 0 (Null) anfangen,
    die Spalte 1 hat die Nummer [0] im Array,
    die Spalte 2 hat die Nummer [1] im Array, usw.

    aber nimm doch besser MySQL, das ist stabiler und viel besser,
    u.a. um bestimmte Zeilen (nach Bedingung) zu finden
    oder für Sortierung (nach Punkte / nach Dateum / etc)
    und viele weitere Vorteile ...



    Beitrag zuletzt geändert: 28.6.2012 20:14:47 von sportinfo
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!