Weiß nicht mehr weiter

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Weiß nicht mehr weiter

    Seltsam ich versteh nichts mehr! Normalerweise hab ich das immer ohne Probleme hinbekommen aber auf einmal geht es nicht!

    Hmm also ich hab euch mal den den code gepostet und die datenbankstruktur:

    So erstmal die Datenbankstruktur:
    -----------------------------------
    CREATE TABLE punktegp01 (
    laufnr int(11) NOT NULL default '0',
    username varchar(40) NOT NULL default '',
    quali int(11) NOT NULL default '0',
    rennen int(11) NOT NULL default '0',
    sonstiges int(11) NOT NULL default '0',
    gesamt int(11) NOT NULL default '0',
    PRIMARY KEY (laufnr)
    ) TYPE=MyISAM;
    ------------------------------------
    jetzt den code:
    <?php
    echo "<center><table hight=8 width=450 border=0 cellspacing=3 cellpadding=3><tr>";
    echo "<td width=30 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Platz</b></div></td>";
    echo "<td width=250 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Username</b></div></td>";
    echo "<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Punkte Quali</b></div></td>";
    echo "<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Punkte Rennen</b></div></td>";
    echo "<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Punkte Gesamt</b></div></td>";
    echo "</tr>";

    if (!$offset || $offset<0) $offset = 0;
    $diff = 20;
    $r = mysql_query("SELECT count(*) FROM punktegp01 ");
    $anz = mysql_result($r,0);
    if (!$offset || $offset<0) { $offset = 0; $disabled[prev] = TRUE; }
    if (($offset + $diff) >= $anz) { $diff = $anz - $offset; $disabled[next] = TRUE;}
    $r = mysql_query("SELECT * FROM punktegp01 LIMIT $offset,$diff ");
    $Counter=1;


    $read = mysql_query("select * from punktegp01 where username='$username'");
    $n= mysql_fetch_array($read);
    $a=$n["quali"];
    $b=$n["rennen"];
    $c=$n["sonstiges"];
    $gesamt=($a+$b+$c);
    $check=mysql_query("select * from punktegp01 where username='$username'");
    $checkit = mysql_num_rows($check);
    if($checkit==0) $gpi = mysql_query("insert into punktegp01 VALUES ('','$username','','','','$gesamt')");
    if($checkit==1) $gpi = mysql_query("update punktegp01 set gesamt = '$gesamt' where username = '$username' ");$gpi;


    while ($daten = mysql_fetch_array($r)){

    echo "<tr>";
    print("<td width=30 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>$Counter</div></td>");
    print("<td width=250 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>".$daten["username"]."</div></td>");
    print("<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>".$daten["quali"]."</div></td>");
    print("<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>".$daten["rennen"]."</div></td>");
    print("<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>$gesamt</div></td>");
    echo "</tr>";
    $Counter++;

    } echo "<table><br>";
    if ($disabled[prev]!==TRUE) echo '<class=textsmall><div class=hsmall align=center><a href="f1siegerwe1.php?offset='.($offset-20).'">Vorherige Seite</a></div>';
    if ($disabled[next]!==TRUE) echo '<class=textsmall><div class=hsmall align=center><a href="f1siegerwe1.php?offset='.($offset+20).'">Nächste Seite</a></div>';
    print("<div class=hsmall align=center><a href=\"javascript:history.go(-1)\"><div class=hsmall align=center><br>Zurück</a></div></center>");

    ?>

    Und nu das Problem ich möchte gerne eine ausgabe auf gesamt haben und ich hab schon alles probiert irgendwie schriebt er immer nur eine zahl in die spalte wenn in "beiden" anderen etwas steht also in quali und rennen wenn nur in einem etwas steht und im anderen null dann geschieht nix! Das kann ich mir nicht erklären! Höchsten das es aus zwei anderen tabellen kommt wo nicht unbedinght der daten zum rennen bzw zur quali von dem einen user siond kann also sein das ein user nur daten zu einem rennen hat.....aber es ist ja null gesetzt dann müsste doch eigentlich die eine zahl mit null addiert werden?

    Hoffe mir kann hier jemand helfen! Bitteeeee!


  • #2
    Ich versteh's nicht.

    CAT Music Files

    Kommentar


    • #3
      zuerst selektierst du einen gewissen Bereich aus der Tabelle punktegp01 und danach holst du dir das Ergebnis zu einem ganz gewissen User aus dieser Tabelle -> hiermit berechnest du $gesamt. Dann kommt deine while-Schleife, in der du das Resultset des ersten Selects durchgehst, aber du gibst jedesmal ja die $gesamt-Variable von außerhalb der while-Schleife aus, d.h. wenn der Select vom speziellen User und dessen Punktberechnung nix ergibt, dann wird doch eigentlich überall in der while-Schleife nix ausgegeben, oder? Wenn das Absicht ist, dann kann ich Sky nur zitieren: Ich versteh's nicht. Ansonsten solltest du da mal nachhaken.
      Außerdem würde ich die print()-Befehle durch echo ersetzen -> echo ist flexibler als print()

      Kommentar


      • #4
        hmm

        erstmal danke das ihr euch die zeit nehmt! ICh habe deinen BEitrag nicht ganz verstanden sorry, brainbug!
        Aber mir kam grad eine andere Idee um das Problem zu umgehen indem ich es extern schreibe! Nur gibt es da natürlich auch einen harken *leider* aber den versteht ich sicherlich!

        Also hier nochmal die tabelle!
        -----------------
        CREATE TABLE punktegp01 (
        laufnr int(11) NOT NULL default '0',
        username varchar(40) NOT NULL default '',
        quali int(11) NOT NULL default '0',
        rennen int(11) NOT NULL default '0',
        sonstiges int(11) NOT NULL default '0',
        gesamt varchar(5) NOT NULL default '',
        PRIMARY KEY (laufnr)
        ) TYPE=MyISAM;
        -------------------

        laufnr wird ja automatisch immer erweitert

        da dachte ich mir ich könnte immer alles was in einer zeile steht addieren also wo laufnr 1 quali+rennen=gesamt

        nur kann ich ja nicht tausend mal schreiben von laufnr 1 bis laufnr 1000 kann man das mit einem counter machen


        <?php
        $read = mysql_query("select * from punktegp01 where laufnr='1'");
        $n= mysql_fetch_array($read);
        $a=$n["quali"];
        $b=$n["rennen"];
        $c=$n["sonstiges"];
        $gesamt=($a+$b+$c);
        $gpi = mysql_query("update punktegp01 set gesamt = '$gesamt' where laufnr='1'");$gpi;

        echo "Ihr Eintrag wurde vorgenommen folgendes Ergebnis: $gesamt ";
        ?>


        seltsam als ich das so schrieb kam garkein ergebniss obwohl in der tabelle folgendes enthalten war

        INSERT INTO punktegp01 VALUES (1, 'oli007', 3, 175, 0, '');
        INSERT INTO punktegp01 VALUES (2, 'birne', 36, 9, 0, '');
        INSERT INTO punktegp01 VALUES (3, 'ulibert', 200, 0, 0, '');
        INSERT INTO punktegp01 VALUES (4, 'keis', 70, 0, 0, '');
        INSERT INTO punktegp01 VALUES (5, 'zubizareta', 50, 0, 0, '');

        Kommentar


        • #5
          wie sollte ich das sonst machen ohne den speziellen user auszuwählen? @brainbug dann addiert er doch immernur die erste zeile? oder wie würdest du das machen das ist ja grad meine neue idee gewesen siehe text drüber!
          Thx schon mal!

          Kommentar


          • #6
            Code:
            <?php 
            echo "<center><table hight=8 width=450 border=0 cellspacing=3 cellpadding=3><tr>"; 
            echo "<td width=30 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Platz</b></div></td>"; 
            echo "<td width=250 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Username</b></div></td>"; 
            echo "<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Punkte Quali</b></div></td>"; 
            echo "<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Punkte Rennen</b></div></td>"; 
            echo "<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center><b>Punkte Gesamt</b></div></td>"; 
            echo "</tr>"; 
            
            if (!$offset || $offset<0) $offset = 0; 
            $diff = 20; 
            $r = mysql_query("SELECT count(*) FROM punktegp01 "); 
            $anz = mysql_result($r,0); 
            if (!$offset || $offset<0) { $offset = 0; $disabled[prev] = TRUE; } 
            if (($offset + $diff) >= $anz) { $diff = $anz - $offset; $disabled[next] = TRUE;} 
            $r = mysql_query("SELECT * FROM punktegp01 LIMIT $offset,$diff "); 
            $Counter=1; 
            
            $read = mysql_query("select * from punktegp01 where username='$username'"); 
            $n= mysql_fetch_array($read); 
            $gesamt=$n[quali]+$n[rennen]+$n[sonstiges]; 
            $check=mysql_query("select * from punktegp01 where username='$username'"); 
            $checkit = mysql_num_rows($check); 
            if($checkit==0) $gpi = mysql_query("insert into punktegp01 VALUES ('','$username','','','','$gesamt')"); 
            if($checkit==1) $gpi = mysql_query("update punktegp01 set gesamt = '$gesamt' where username = '$username' ");$gpi; 
            
            while ($daten = mysql_fetch_array($r)){ 
            	[b]$gesamt=$daten[quali]+$daten[rennen]+$daten[sonstiges];[/b] 
            	echo "<tr>"; 
            	echo "<td width=30 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>$Counter</div></td>"); 
            	echo "<td width=250 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>".$daten[username]."</div></td>"); 
            	echo "<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>".$daten[quali]."</div></td>"); 
            	echo "<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>".$daten[rennen]."</div></td>"); 
            	echo "<td width=50 bgcolor=#FAE6C0 colspan=1><class=textsmall><div class=hsmall align=center>".$gesamt."</div></td>"); 
            	echo "</tr>"; 
            	$Counter++; 
            } 
            echo "<table><br>";
             
            if ($disabled[prev]!==TRUE) echo '<class=textsmall><div class=hsmall align=center><a href="f1siegerwe1.php?offset='.($offset-20).'">Vorherige Seite</a></div>'; 
            if ($disabled[next]!==TRUE) echo '<class=textsmall><div class=hsmall align=center><a href="f1siegerwe1.php?offset='.($offset+20).'">Nächste Seite</a></div>'; 
            print("<div class=hsmall align=center><a href=\"javascript:history.go(-1)\"><div class=hsmall align=center><br>Zurück</a></div></center>"); 
            ?>
            was ich mit meiner Antwort gemeint habe, habe ich mal fettgedruckt ausgegeben. Bezug ist auf dein 1. Code

            Kommentar


            • #7
              nix neues mit deinem beispiel! leider aber das hatte ich glaub ich auch schon versucht! hast du ne idee mit der anderen sache (meiner anderen idee)!

              Kommentar


              • #8
                Also ich verstehs net ganz aber die Ausgabe von gesamt kannste doch direkt im Select machen, bzw den Wert errechnen.
                SELECT (quali+rennen+sonstiges) AS gesamt FROM tbl
                Dann brauchste im script net rumrechnen. Oder ich versteh das Problem net wirklich...
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  leider tappe ich auch immer noch im dunkeln rum. Nach der neuen Idee hab ich wieder überhaupt kein spann mehr, was du meinst.
                  Was willst du machen? Was soll passieren? - sorry, aber solang niemand genau versteht, wo dein Problem ist, können wir dir auch nicht helfen. Geht es nur um die Ausgabe von $gesamt in der Tabelle? Oder hat es was mit dem update beim User zu tun?

                  Kommentar

                  Lädt...
                  X