Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 23

Thema: Tabelle?

  1. #1
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171

    Tabelle?

    HI @ all,

    ich hab hier eine idee, doch weiß ich nicht, wie ich das umsetzen könnte:

    Ich mächste eine einfache Tabelle erstellen, wo es Teams geben soll, die gegen einander spielen werden. Diese Teams möchte ich gerne in einem admin bereich erstellen, diese Team werden dann entweder in eine mysql tabelle gespeicht oder in eine .dat datei (egal). Nun bräuchte ich noch einen Befehl bzw. Ansatz wie ich das machen könnte das er immer zwei nebeneinander stellt.
    Beispiel: Ich trage Team1, Team2, Team3 und Team4 ein und der Skript soll diese Teams dann ungefähr so auflisten

    Team1 gegen Team2
    Team3 gegen Team4

    etc...
    gut wäre es, wenn es das ganze auch noch zufällig machen würde, dies muss allerdings nicht sein.

    Einer eine Idee, wie ich das so machen könnte? Wahrscheinlich irgendwie mit einem Array oder Schleife oder so

    MfG
    Stormsam

  2. #2
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Mit phpmy-Admin kannst du die Tabelle anlegen und die Datensätze eintragen.

    Hier eine einfache Datei, mit der du Tabellen bekommst
    Verwende: http://pear.php.net
    Hol dir die DB.php

    Code:
    <?php
      require("./h.php");   //********   header mit <html> und Menu und style..................
      require("DB.php");
       $dsn = "mysql://user:mypasswort@localhost/deinedatenbank";
      require("./Printclass.inc.php");
    
      $db = DB::connect($dsn);
      if (DB::isError($db)) { die ($db->getMessage()); }
     
    
      print "<div id='lay100' class='lay100'>\n";  
     
      $query_1 = "select  
                           id,
                           Team1,
                           Vorname,
                       from deinertabelle
                       order by irgendwas
                       ";
    
      
      $result = $db->query($query_1);
    
      $num = $db->getOne('select count(id) from deinertabelle ');
    
      print "$num Teamzahl";
    
      $tabelle = new PrintBox(); 
      $tabelle->tabelle($result);
    
      print "</div>\n"; 
    
    ?> 
    
    </body>
    </html>
    Hier die ./Printclass.inc.php
    PHP-Code:
    <?php

    class PrintBox {  

     function 
    tabelle($tab) {

       print 
    "<table>\n";

       
    $head=0;
       while (
    $row $tab->fetchRow(DB_FETCHMODE_ASSOC)) {

           
    // Ueberschrift der Tabelle
           
    if ($head==0) {
              print 
    "<tr>\n";
              foreach (
    $row as $field => $value) {
                 print 
    "<td class='lay200a'><b>$field</b>&nbsp;</td>";
               }
              print 
    "</tr>";
              
    $head =1;
            }

          
    // Tabellenzeilen
          
    print "<tr>\n";
          foreach (
    $row as $field => $value) {
             print 
    "<td nowrap class='lay200b'>$value</td>\n";
             
    $summe[$field] = $summe[$field]+$value;
           }
          print 
    "</tr>\n";

         }

       print 
    "</table><br><br>\n";
     } 
    // Ende Tabelle

    }

    ?>
    Die Struktur deiner Tabelle solltest du dir genau überlegen.

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    Hi ! Danke für deine Hilfe!

    hab nur eine kleine Frage, was genau soll in der DB.php stehen?
    Die Daten gebe ich ja schon hier an:
    $dsn = "mysql://user:mypasswort@localhost/deinedatenbank";

    Er muss ja noch wissen, wie die tabelle heißt, soll dies in die DB.php ?

    oder soll das mit der tabelle hier rein:
    Code:
      $query_1 = "select  
                           id, // das sind dann die einzelnde spalten oder?
                           Team1,
                           Vorname, // bis hier.
                       from meinetabelle // Reicht es nur hier den Tabellennamen zu haben ?
                       order by irgendwas // und was soll hier stehen? Ich möchte ja immer 2 nebeneinander haben (s.o.)
                       ";
    Würd mich über eine Antwort freuen
    Mfg
    Stormsam

  4. #4
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    hmm... also ich hab jetzt eine DB.php und eine PEAR.php bei mir in einem anderen Skript gefunden und es scheint damit irgendwie zu funktionieren

    Doch ich bekomme folgenden Fehler:

    Object Teamzahl
    Fatal error: Call to undefined function: fetchrow() in Printclass.inc.php on line 10

    in line 10 steht dies:

    while ($row = $tab->fetchRow(DB_FETCHMODE_ASSOC)) {

    Wieso kommt da dieser fehler?!?
    Bei diesem hier bin ich mir noch nicht sicher bzw. versteh ich nicht so ganz:
    Code:
      $query_1 = "select  
                           id, // das sind dann die einzelnde spalten oder?
                           Team1,
                           Vorname, // bis hier.
                       from meinetabelle // Reicht es nur hier den Tabellennamen zu haben ?
                       order by irgendwas // und was soll hier stehen? Ich möchte ja immer 2 nebeneinander haben (s.o.)
                       ";

  5. #5
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Die Abfrage muß an deine Tabelle angepaßt werden.
    $query_1 = "select
    id, // das sind dann die einzelnde Spalten!!
    Team1,
    Team2// Bis hier. Hier darf kein Komma stehen!!!!!!!!!!!!!!!! Ich hab aus Versehen durch Löschen das Komma stehen lassen
    from meinetabelle // Hier rein muß dein Tabellennamen.
    order by irgendwas // Hier steht deine Sortierung
    ";

    Die Fehlermeldung entsteht, wenn die Tabellenabfrage nicht richtig ist, dann findet er keine Arrays, die er schreiben kann.

    Bisher versteh ich nicht was auf deiner Page stehen soll.
    Kannst du das noch genauer erklären?
    Steht da wann die Teams spielen?
    So wie bei http://www.schwaben-volley.de/?

    SpTg Datum Heim Gast 1 Gast 2
    --------------------------------------------------------------------------------

    1 13.10.02 TSV Aindling DJK Don-Bosco 1
    1 13.10.02 DJK Don-Bosco 1 DJK Don-Bosco 2
    1 13.10.02 TSV Aindling DJK Don-Bosco 2

    --------------------------------------------------------------------------------

    2 27.10.02 DJK Don-Bosco 1 DJK Don-Bosco 2
    2 27.10.02 DJK Don-Bosco 2 SpVgg Auerbach-Streith.

  6. #6
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    Hi ! Danke für deine Hilfe!

    Jetzt zeigt er immerhin schon mal etwas an:

    Object Teamzahluserid username userpass
    1 user pass

    doch darunter folgen dann unendlich viele fehler die so aussehen:
    1 1024 -19 DB Error: no such field select count(id) from user

    meine Tabelle heißt user (meine testtabelle)

    das query_1 sieht jetzt bei mir so aus:
    Code:
      $query_1 = "select  
                           userid,
                           username,
                           userpass
                       from user
                       order by username
                       ";
    username würde dann ein Team sein, userpass ist jetzt momentan unwichtig.
    Im moment zeigt er ja einfach den Inhalt in einer Tabelle, also userid, username und userpass. Ich hatte es mir so vorgestellt das er dann schreibt:
    Team1 Team2
    username Username2
    Username3 Username4
    Also von einer Tabelle immer 2 nebeneinander

    So wie bei deinem Beispiel, genau so soll es am ende aussehen:

    1. Team1 gegen Team2
    2. Team3 gegen Team4
    etc...

    In der Tabelle Username würde dann stehen: TSV Aindling und Don-Bosco 1 und diese stellt er nebeneinander
    TSV Aindling : Don-Bosco 1


    Uhrzeit/Datum wäre auch nicht schlecht, muss jetzt aber noch nicht rein (das wäre dann doch nur eine zusätzliche tabelle oder?)

    MfG
    Stormsam

  7. #7
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Die Tabelle muß vorhanden sein.
    Er braucht einen Datensatz in der Tabelle, damit es funktioniert, sonst kann er nichts auslesen.
    Stell bei der id "auto_increment " ein, damit du eine eindeutige id bekommst.
    Die "id" braucht man später fast immer. (Änderungen etc)


    Du hast die erste Spalte "userid" getauft und ich "id".
    Damit kann er nicht mehr die "id" zählen - count(id)
    Es werden hier die Teams gezählt.
    Das kannst du auch löschen.
    ($num = $db->getOne('select count(id) from user ');
    print "$num Teamzahl";]



    Du mußt alle Spieler in eine Spalte stecken und all Gegenteams in die nächste Spalte.
    Aber schreibe nie Spieler und Gegenspieler in eine Spalte und fang dann an zu basteln.
    Code:
    id         Team 1           Gegen_ Team2              Datum               Uhrzeit 
      1          TSV Aindling      Don Bosco             13.4.2003            15.00
      2          Auerbach          Weilheim              27.4.2003            16.00

    Du kannst jetzt die Spalten der Tabelle abrufen, die du sehen möchtest.
    Code:
    $query_1 = "select                        
                           Team1,
                           Gegen_Team2,
                           Datum
                       from user
                       order by Datum
                       ";
    Ich hoffe es hilf ein bißchen.

  8. #8
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    hmmmmm.......

    das Problem ist, das sich die Teams sozusagen "anmelden" sollten, d.h. einmal ihr team in einem skript eintragen sollten. Dieses Skript kann ja nicht von User zu User die Tabelle wechseln ... oder doch ?

  9. #9
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Das hier ist bloß die Ausgabe der Tabellendaten.

    Du willst, daß die Teams sich selbst anmelden.
    Dazu brauchst du eine andere Tabelle.z.B.
    Code:
    id    Teamname      PLZ          Ort 
    1     Tv Weil       89654       Weilheim
    Wer aber bestimmt jetzt, wer gegen wen zu welchem Zeitpunkt spielt?
    Das können die Teams doch nicht selbst festlegen.
    Woher kommen die Daten, die in deiner Ausgabetabelle stehen?

    Für die Anmeldung der Teams benötigt man ein Eingabeformular.
    Wie das geht steht bei
    leeres Feld abfrage bluesky666 in diesem Forum.
    Hab hier allerdings vergessen die ' und " Zeichen abzufangen.
    Wenn du es dir durchgelesen hast, sag ich dir wo die Zeichen abgefangen werden können.
    Das pear_ Modul hat den Vorteil, daß du dich um Hackerprobleme bei der Dateneingabe "keine" Sorgen machen mußt,
    wenn die Datenbank halbwegs sicher ist.

  10. #10
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    HI,
    ja das anmeldeformular habe ich ja schon, das is nicht das problem.

    Das Anmeldeformular wird alle Teamnamen in die Datenbank-Tabelle: "Teamname" eintragen.

    Doch die Tabelle braucht dann ja :

    Teamname1,
    Gegen_Teamname2,

    Wocher soll ich das "Gegen_Teamname2" nehmen

    MfG
    Stormsam

  11. #11
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Eigentlich versteh ich nicht, daß du keinen Gegner für dein Teamname1 hast.

    Gibt es da keinen Coach?
    Jemand muß doch bestimmen wer gegen wen spielt; in welcher Halle, zu welchem Zeitpunkt und um welche Uhrzeit?
    Was sollen denn das für Teams sein?
    Volleyball, Fußball, Badminton?

    Es sind wohl kein reales Fußballteam?
    Wenn dir gar nichts einfällt nimm doch einen Zufallsgenerator, der ein beliebiges Team aussucht ??

  12. #12
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    Code:
    Wenn dir gar nichts einfällt nimm doch einen Zufallsgenerator, der ein beliebiges Team aussucht ??
    -> das wäre perfekt Wie sieht soetwas aus ?

    MfG
    Stormsam

  13. #13
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Die zufällige Auswahl der Spielparteien halte ich für nicht optimal.
    Da haben sich z.B die Leute aus der Bundesliga schon Besseres ausgedacht.

    Anlegen der Tabelle user für die Ausgabe:
    Code:
    <?php
      require("./h.php");   
      require("DB.php"); 
     $dsn = "mysql://user:mypasswort@localhost/deinedatenbank";$db = DB::connect($dsn);
      if (DB::isError($db)) { die ($db->getMessage('keine Verbindung')); }
    
    // Hier lege ich eine temporäre Datei an, die die Teams in einer zufälligen Reihenfolge enthält
       $query_1="
       create temporary table team_1
       select     
         teamname
       from Anmeldetabelle_der_Teams
       order by rand() 
      ";
    
      $result_1 = $db->query($query_1);
      if (DB::isError($result_1)) { die($result_1->getMessage()); }
    
    
    
    //optional: Begrenzung der Spiele auf eine bestimmte Anzahl, da es sonst zu viele werden.
      $num = $db->getOne('select count(vorname) from team_1 ');
      print "$num Teamzahl";
    
    
    
    // Anlegen der Ausgabetabelle. Die Halle und die Spielzeit muß man aber sinnvollerweise per Hand eingeben. 
    So etwas kann kein Computer.
      $query_2="
       create  table user
       select 
         trainer.id as id,
         trainer.teamname as Team1,
         team_1.teamname as Team2        
       from Anmeldetabelle_der_Teams ,team_1 
       order by rand()   
       limit $num 
      ";
    
      $result_2 = $db->query($query_2);
      if (DB::isError($result_2)) { die($result_2->getMessage()); }
      
    ?>
    
    </body>
    </html>

  14. #14
    Registrierter Benutzer
    Registriert seit
    27.08.2002
    Beiträge
    337
    Das Zufallsprinzip ist eigentlich ungeeignet, um die Teams auszuwählen.
    z.B. Kann ich nicht gegen mein eigenes Team spielen.
    Manche Teams werden ganz oft spielen; andere dagegen gar nicht.
    Die starken Teams spielen alle gegeneinander usw.
    Wie sieht es in der zweiten Spielrunde aus.
    Wer steigt auf?

    Man sollte sich schon genau mit den Regeln beschäftigen, wie Trainer
    die Mannschaften gegeneinander antreten lassen.
    Damit hab ich mich noch nie auseinandergesetzt.

  15. #15
    Registrierter Benutzer
    Registriert seit
    09.12.2001
    Beiträge
    171
    Code:
    z.B. Kann ich nicht gegen mein eigenes Team spielen. 
    Manche Teams werden ganz oft spielen; andere dagegen gar nicht.
    hmm... also es sollte ja ersteinmal nur eine runde geben, weiter habe ich noch nicht gedacht , und da würde das ja ersteinmal nicht passieren, das einer doppelt spielt oder doch ?

    Code:
    Wie sieht es in der zweiten Spielrunde aus. 
    Wer steigt auf?
    hmmm... allso alle die Gewinnen sollten eine runde weiterkommen, wie das aussehen soll ist mir noch nicht eingefallen. hmm.. irgendwie kriegt dann jedes Team eine Zahl 0 oder 1 und alle mit der 1 könnten ja in die 2. Tabelle (2. runde) kommen, das müßte man dann irgendwie manuell eintippen oder so.

    Code:
    Man sollte sich schon genau mit den Regeln beschäftigen, wie Trainer 
    die Mannschaften gegeneinander antreten lassen.
    das wird schon irgendwie, zuserst müßte das mit der Tabelle funktionieren

    Code:
    Damit hab ich mich noch nie auseinandergesetzt.
    das mit dem Skript schaffen wir schon, mit den Regeln und System, da kann man sich ja noch was ausdenken, am schwierigsten ist halt die php umsetzung

    MfG
    Stormsam

    PS: Ich probiere gleich mal den ZUfallsgenerator aus

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •