PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Punktevergabe (http://www.selfphp.de/forum/showthread.php?t=9641)

Rudolfsport 29.01.2005 22:06:12

Punktevergabe
 
hi,
ich möchte Punkte nach zeiten vergeben (also, beste zeit 10, schlechteste 0 und zwsischen drinnen halt).
hioer der Code:

Diese Datei fügt dei Zeit in die DB ein und soll die punkte zuordnen.

PHP-Code:

<?
$sql = "INSERT INTO
                rennzeiten
            SET 
                         
                zeit = '$rdnzeit2'";

mysql_query($sql) or die ('Kann Query nicht ausführen : ' . mysql_error());

$sql1=mysql_query("SELECT * FROM rennzeiten ORDER BY zeit ASC")or die ('Kann Query nicht ausführen (SQAL1) : ' . mysql_error());
$x=10;

while ($zeit=mysql_fetch_array($sql1)){
echo "<br>".$zeit[1]." ".$x."<br>";
mysql_query("UPDATE spieler SET punkte='$x' WHERE Spieler_ID='$zeit[user_id]'")or die ('Kann Query nicht ausführen (while) : ' . mysql_error());
    $x-=2;
    if ($x<=0){
          break;
    }
 }
$sql2=mysql_query("SELECT rennzeiten.user_id,spieler.vertrag,vertrag.teamname FROM rennzeiten, spieler, vertrag")or die ('Kann Query nicht ausführen (sql2) : ' . mysql_error());
$x=10;
while ($team=mysql_fetch_array($sql2)){
    mysql_query("UPDATE team SET punktezahl='$x' WHERE teamname='$team[2]'")or die ('Kann Query nicht ausführen while2 : ' . mysql_error());
        $x-=2;
        if ($x<=0){
            break;
        }
}
echo "<br>";
echo "<br>";
echo "<center>";
echo "<a href='javascript:history.go(-2)'><b>Zurück</b></a>";
echo "</center>";
if (!session_is_registered('username'))
{
die ("<br>");

?>

IN ideser Datei werden die punket für die einelnen fahrer angezeigt:

PHP-Code:

<? 
    include ("verbindung.php");
    $SQL_fahrer=mysql_query("SELECT User_Name,punkte FROM spieler ORDER BY punkte DESC");
    echo "<table border>";
    echo "<tr><td>Platz</td><td>Fahrername</td><td>Punkte</td></tr>";
    $i=1;
        while ($fahrer=mysql_fetch_array($SQL_fahrer))
        {
            echo "<tr><td>".$i."</td>";
        echo "<td>".ucfirst($fahrer[User_Name])."</td><td>$fahrer[punkte]</td></tr>";
        $i++;
    }
    echo "</table>";

}else{

    echo "Sie müssen sich einloggen";
}
        echo "<br>";
    echo "<a href='javascript:history.go(-1)'><b>Zurück</b></a>";
?>

Hier werden die punkte für die Teams angezeigt:

PHP-Code:

<? 
include ("verbindung.php");

$SQL_konstrukt=mysql_query("SELECT * FROM team ORDER BY punktezahl")or die(mysql_error());

echo "<table border>";

echo "<tr><td>Vergebene Punkte<td>Team-Id</td><td>Teamname</td><td>Gesamtpunkte</td></tr>";

$i=1;
while ($konstrukt=mysql_fetch_array($SQL_konstrukt)or die(mysql_error())) 
{

echo "<tr><td>".$i."</td><td>".$konstrukt[team_id]."</td><td>".$konstrukt[Teamname]."</td></tr><td>".$konstrukt[Punkte]."</td></tr>";

$i++;
}

echo "</table>";

}else{

echo "Sie müssen sich einloggen";

}

echo "<a href='javascript:history.go(-1)'><b>Zurück</b></a>";

?>

Mein Problem ist, dass es zwar einträgt, aber sowohl in den teams als auch im einzel nciht anzeigt. Fehlermeldungen kommen auch keine.

xabbuh 29.01.2005 22:15:03

Re: Punktevergabe
 
Zitat:

Original geschrieben von Rudolfsport
PHP-Code:

<? 
        echo "<td>".ucfirst($fahrer[User_Name])."</td><td>$fahrer[punkte]</td></tr>";
?>


Zitat:

Ist ein Wert ein Array-Element, kommen innerhalb der Hochkommata (hochkommata nur wenn spalten-typ nicht int) um das Elemtent geschwungene Klammern:

"SELECT feld FROM tabelle WHERE id = {$userdata[ 'id' ]}"
Quelle: http://www.selfphp.info/forum/showth...?threadid=8195

Zitat:

PHP-Code:

<? 
echo "<tr><td>".$i."</td><td>".$konstrukt[team_id]."</td><td>".$konstrukt[Teamname]."</td></tr><td>".$konstrukt[Punkte]."</td></tr>";


Heißt die Spalte jetzt Punkte oder punktezahl?

Rudolfsport 30.01.2005 09:49:00

Re: Re: Punktevergabe
 
Zitat:

a) Heißt die Spalte jetzt Punkte oder punktezahl?

b) Ist ein Wert ein Array-Element, kommen innerhalb der Hochkommata (hochkommata nur wenn spalten-typ nicht int) um das Elemtent geschwungene Klammern:

"SELECT feld FROM tabelle WHERE id = {$userdata[ 'id' ]}"

echo "<td>".ucfirst($fahrer[User_Name])."</td><td>$fahrer[punkte]</td></tr>";
zu a) die spalte heißt punktezahl.

zu b) das oben hat doch garnichts mit der zeile zu tun? Ich habe die spalte jetzt trotzdem mal so geändert:

PHP-Code:

echo "<td>".ucfirst($fahrer['User_Name'])."</td><td>$fahrer[punkte]</td></tr>"


Aber jetzt ist es so, dass in der Tabelle spieler irgendwie die punkte garnicht verteilt werden (also die schnellste zeit bekommt 10 usw.)
In der tabelle spieler ist User_Name varchar(25) not null und punkte bigint(3) not null standart 0
An der darstellung hat sich nichts geändert.

EDIT: Ich habe alles geändert. JEtzt scheint es nurnoch am eintragen der punkte liegen.
Wenn ich nämlich manuel etwas eintrage, dann wird es auch angezeigt.

xabbuh 30.01.2005 16:46:36

Re: Re: Re: Punktevergabe
 
Zitat:

Original geschrieben von Rudolfsport
zu a) die spalte heißt punktezahl.
Dann ist es auch sinnvoll das Array-Element punktezahl und nicht Punkte auszugeben.

Zitat:

EDIT: Ich habe alles geändert. JEtzt scheint es nurnoch am eintragen der punkte liegen.
Wie sieht dein Query zum Eintragen aus?

Rudolfsport 30.01.2005 17:28:43

PHP-Code:

<?
$sql = "INSERT INTO
                rennzeiten
            SET 
                         
                zeit = '$rdnzeit2'";

mysql_query($sql) or die ('Kann Query nicht ausführen : ' . mysql_error());

$sql1=mysql_query("SELECT * FROM rennzeiten ORDER BY zeit ASC")or die ('Kann Query nicht ausführen (SQAL1) : ' . mysql_error());
$x=10;

while ($zeit=mysql_fetch_array($sql1)){
echo "<br>".$zeit[1]." ".$x."<br>";
mysql_query("UPDATE spieler SET punkte='$x' WHERE Spieler_ID='$zeit[user_id]'")or die ('Kann Query nicht ausführen (while) : ' . mysql_error());
    $x-=2;
    if ($x<=0){
          break;
    }
 }
?>

da ist es

xabbuh 30.01.2005 20:39:05

Was für eine Fehlermeldung erhälst du? Lass dir deine Abfrage mal anzeigen.

Rudolfsport 31.01.2005 17:08:32

hi,
ich erhalte keine fehlermeldung. Ich she lediglich die tabelle mit den nahmen der fahrer sowie deren punkte zahl die immernoch auf 0 ist.

xabbuh 31.01.2005 20:27:24

Wird die Schleife denn ausgeführt?
Setz $zeit[user_id] mal in geschweifte Klammern, wie es dir oben weiter auch schon empfohlen wurde.

Rudolfsport 31.01.2005 20:41:09

meinst du so:

$zeit{user_id}

xabbuh 31.01.2005 21:30:54

Ich zitiere noch einmal:
Zitat:

Ist ein Wert ein Array-Element, kommen innerhalb der Hochkommata (hochkommata nur wenn spalten-typ nicht int) um das Elemtent geschwungene Klammern:

"SELECT feld FROM tabelle WHERE id = {$userdata[ 'id' ]}"
Außerdem wäre es ja auch vielleicht ganz hilfreich, wenn du dir die UPDATE-Query mal anzeigen lassen würdest.


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:43:36 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.