Problem bei der abfrage

Schau dir mal das Quakenet Tutorial Komplett zu PHP + MySQL an:
http://tut.php-quake.net/mysql-select-php.html
Das was du brauchst, steht unter Punkt 2.

Ansonsten kann ich dir auch nur Beispiele posten, wie das auf der #quakenet Seite:
PHP:
<?php
    error_reporting(E_ALL);

    include 'inc/config.php';
    // Konfigurationsdatei laden

    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

    $sql = "SELECT
                Titel,
                Datum
            FROM
                News
            ORDER BY
                Datum DESC;";
    // Das am Anfang immer ein paar Leerzeichen stehen
    // ist für MySQL uninteressant.
    // Hier würde sich sogar die Heredoc schreibweise
    // eignen
    
    $result = mysql_query($sql) OR die(mysql_error());
        
    echo "News in der Datenbank:<br />\n";
    while($row = mysql_fetch_assoc($result)) {
        echo $row['Datum']." &gt; ".$row['Titel']."<br />\n";
    }
?>

Gruß
 
Jetzt bin ich verwirrt....


Mir schiebt sich noch eine wichtigere Frage vor:

HTML:
<form method="post" action="" >
<?php

	
if ($punkte > 0)
$owrite = mysql_query("UPDATE Ranking SET Randomscore = '$punkte' ");
{$owrite;
echo "Der Punktestand wurde aktualisiert" ;
}

?>
 <input type="submit" value="Punkte Speichern" />
</form>

Was muss ich hier dran ändern,damit der nur für "mich" oder denjenigen der speichert die Punkte gutgeschrieben werden?

Und wie genau muss es heißen damit der immer Dazuzählt&nicht ersetzt?
 
PHP:
$owrite = mysql_query("UPDATE Ranking SET Randomscore = Randomscore+'$punkte' WHERE userid='$userid'");
Irgendwo musst du noch die ID des momentanen Users herkriegen. Speicherst du die in einer Session? Falls nicht: über Sessions (z.B.)

Das mit dem Formular so wie du es jetzt hast ergibt noch keinen Sinn. Du solltest du Punkte speichern, wenn der User eine Vokabel richtig gelöst hat. Dann kannst du in der Datenbank den Punktestand immer um eins hochzählen:
Code:
SET Randomscore = Randomscore+1
 
Wie gesagt,für die Seiten Random&Quiz+Raning List wird das Login benötigt,daher sollte ich dann doch die Angaben (ID,Name oder so) bekommen oder etwa nicht?

Kann ich jetzt mal die Antwort bekommen wie es heißen muss,damit der anzeigt,wer wie viele Punkte hat?
Nach Möglichkeit alle User anzeigen und den eigenen "speziell markieren"
 
Kann ich jetzt mal die Antwort bekommen wie es heißen muss,damit der anzeigt,wer wie viele Punkte hat?
Nach Möglichkeit alle User anzeigen und den eigenen "speziell markieren"

Sorry wenn ich das schreibe, aber die Community hat dir doch schon alles "vorgekaut". Du könntest ja zum Beispiel mal mehr Daten bereit stellen als nur deine Abfrage. Beipielsweise wie deine Tabelle aussieht und was du sonst noch für User Informationen bekommen kannst, bzw. woher!

Gruß
 
Ich hab eine Tabelle:

UserID | UserName | UserPass | UserSession | UserMail

Bei dem Registrierungsformular wird Name,PW verlangt&evtl. E-Mail.
Diese werden dann für das Login benötigt.

Noch welche Informationen?
 
mhh dann stellt sich die Frage, wo du bei deiner Tabelle die Felder Ranking hast, bzw Randomscore hast, damit du dein Update script verwenden kannst
PHP:
$owrite = mysql_query("UPDATE Ranking SET Randomscore = Randomscore+'$punkte' WHERE userid='$userid'");

Weil wenn das nicht vorhanden ist, kannst du j auch nichts wegspeichern. Theoretisch reichen deine Informationen ja aus (ausser du willst deine "randomscore" durch irgendwelche Faktoren berechnen, die dir im Moment nicht vorliegen).

Grüße
 
Kann ich jetzt mal die Antwort bekommen wie es heißen muss,damit der anzeigt,wer wie viele Punkte hat?
Nach Möglichkeit alle User anzeigen und den eigenen "speziell markieren"

Also wenn du nur einen Select auf deine Tabelle machen willst, dann mach es doch einfach so:

PHP:
$sql = "
    SELECT 
        r.Name name, 
        r.Randomscore randScore, 
        r.Quizscore quizScore, 
        u.UserName  
    FROM 
        Ranking r, 
        Users u 
    WHERE 
        u.UserName = r.Name 
    ORDER BY 
        u.UserName 
    DESC LIMIT 1,1
";
Verbessert mich bitte wenn das so unter MySQL nicht machbar ist. Ich arbeite fast ausschließlich mit DB2 aber ich denke, dass hier nicht so große unterschiede seien sollten. Auf jeden Fall ist denke ich der Sinn dieser Query zu erkennen.

Wenn du allerdings ausser allen-Usern-anzeigen noch deine Variante mit den-eigenen-User hervorheben realisieren willst, ist das schon ein wenig komplexer, da du dann ein bisschen mit den Kontroll Struckturen von MySQL rumspielen musst -> http://dev.mysql.com/doc/refman/5.1/de/control-flow-functions.html
Ich würde dir da allerdings eine Implementierung innerhalb des Quellcodes empfehlen:

PHP:
    $name_from_form = $_GET['name_from_form'];

    $result = mysql_query($sql) OR die(mysql_error());
        
    echo "Daten in der Datenbank:<br />\n";
    while($row = mysql_fetch_assoc($result)) 
    {
        if ($row['name'] == $name_from_form)
            echo " -->  ".$row['name']." &gt; ".$row['randScore']." &gt; ".$row['quizScore']."<br />\n";
        else
            echo $row['name']." &gt; ".$row['randScore']." &gt; ".$row['quizScore']."<br />\n";
    }
Also wenn der Daten Satz geliefert wird, wo der UserName (also $row['name']) == dem Namen aus dem Formular ist ($name_from_form), wird einfach ein " --> " davor gemacht.
Das Design kannste dann ja noch ändern bzw. durch Tables usw. ersetzen.

Ich kann nicht dafür garantieren dass du einfach ein Copy&Past machen kannst, da ich die DatenBank nicht hinter mir habe und keinen Live Test machen konnte ;D

Allerdings bin ich für Ratschläge gerne offen und nehme auch gerne kritik an....


Grüße
 
Leider gibt es da ein kleines Problem:

Ich hab das Login auf einer extra Seite,also unglücklicherweise nicht so wie auf Foren,würde ich zwar bevorzugen aber...
 
Zurück