CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
06.09.2005, 12:39:48
|
Anfänger
|
|
Registriert seit: Jun 2005
Beiträge: 92
|
|
Rangliste - Punktezuwachs zählen
Hallo Leute !
Vor kurzem meine Frage zum Ranglisten Script.
Jetzt folgendes:
Habe mir gedacht, das man doch mit PHP rechnen kann.
Also:
Ich habe jetzt ein Eingabefeld wo ich die neue Punktzahl des jeweiligen Users reinschreibe. Bei Klick auf den UPDATE Button, passiert da DB Update des Users. Für jeden User einen Button.
Gibt es eine Möglichkeit, das mir ein Script die Differenz, also den Punktezuwachs, vom alten Punktestand vor dem Update, bis zum neuen Punktestand errechnet und auch anzeigt ?
Wenn ja, wäre es gut, wenn mir jemand das mal genauer erklären könnte.
Hier das Script...
edit_main.php
PHP-Code:
<?php
//config
$host = "localhost";
$user = "webxxx";
$password = "xxx";
$dbname = "usr_webxxx_2";
$tabelle = "rangliste_main";
$dbverbindung = mysql_connect ($host, $user, $password) or die("Verbindung zur Datenbank fehlgeschlagen");
$db_select = MYSQL_SELECT_DB($dbname) OR DIE (mysql_erroru());
if ((isset($_POST['update'])) && (isset($_GET['id'])))
{
$punkte = $_POST['punkte'];
$entwicklung = $_POST['entwicklung'];
$id = $_GET['id'];
mysql_query("UPDATE $tabelle SET punkte = '$punkte' , entwicklung = '$entwicklung' WHERE id = '$id'");
}
$dbanfrage = "SELECT id, name, punkte, entwicklung FROM $tabelle ORDER BY id";
$res = mysql_db_query ($dbname, $dbanfrage, $dbverbindung) or die('Fehler');
echo '<table border="0" cellpadding="0" cellspacing="0" width="450">
<tr>
<td width="50"><font size="1" face="Verdana" color="#FFFFFF">Platz</font></td>
<td width="200"><font size="1" face="Verdana" color="#FFFFFF">Name</font></td>
<td width="100"><font size="1" face="Verdana" color="#FFFFFF">Punkte</font></td>
<td width="100"><font size="1" face="Verdana" color="#FFFFFF">Entwicklung</font></td>
</tr>';
while ($result = mysql_fetch_array($res))
{
echo '
<tr>
<td width="50"><font face="Verdana" size="1">platz</font></td>
<td width="200"><font size="1" face="Verdana">'.$result['name'].'</font></td>
<td width="200" colspan="2">
<form action="./edit_main.php?id='.$result['id'].'" method="post">
<table border="0" cellpadding="0" cellspacing="0" width="450">
<tr>
<td width="100"><input type="text" name="punkte" size="5" value="'.$result['punkte'].'"></td>
<td width="100"><input type="text" name="entwicklung" size="5" value="'.$result['entwicklung'].'"></td>
<td width="100"><input type="submit" name="update" value="Änderung speichern"></td>
</tr>
</table>
</form>
</td>
</tr>
';
}
echo '</table>';
?>
und meine Rangliste:
sho_main.php
PHP-Code:
<?
$host = "localhost";
$user = "webxxx";
$password = "xxx";
$dbname = "usr_webxxx_2";
$tabelle = "rangliste_main";
$dbverbindung = mysql_connect ($host, $user, $password) or die("Verbindung zur Datenbank fehlgeschlagen");
$db_select = MYSQL_SELECT_DB($dbname) OR DIE (mysql_erroru());
$dbanfrage = "SELECT name, punkte, entwicklung FROM $tabelle ORDER BY punkte DESC";
$res = mysql_db_query ($dbname, $dbanfrage, $dbverbindung) or die('Fehler');
echo '<table border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" width="350">
<tr>
<td width="50" height="25"><font size="2" face="Arial" color="#FFFFFF">Platz</font></td>
<td width="200" height="25"><font size="2" face="Arial" color="#FFFFFF">Name</font></td>
<td width="50" height="25"><font size="2" face="Arial" color="#FFFFFF">Punkte</font></td>
<td width="50" height="25"><font size="2" face="Arial" color="#FFFFFF">Entwicklung</font></td>
</tr>
';
$platzierung = 1;
while ($result = mysql_fetch_array($res))
{
echo '
<tr>
<td width="50" height="25" style="border-bottom: 1px dotted #FFFFFF"><font size="2" face="Arial" color="#FFFFFF">'.$platzierung.'</font></td>
<td width="200" height="25" style="border-bottom: 1px dotted #FFFFFF"><font size="2" face="Arial" color="#FFFFFF">'.$result['name'].'</font></td>
<td width="50" height="25" style="border-bottom: 1px dotted #FFFFFF"><font size="2" face="Arial" color="#FFFFFF">'.$result['punkte'].'</font></td>
<td width="50" height="25" style="border-bottom: 1px dotted #FFFFFF"><font size="2" face="Arial" color="#FFFFFF">'.$result['entwicklung'].'</font></td>
</tr>
'; $platzierung = $platzierung + 1;
}
echo '</table>';
?>
|
06.09.2005, 13:07:57
|
Administrator
|
|
Registriert seit: Jan 2002
Ort: Köln
Alter: 53
Beiträge: 1.276
|
|
AW: Rangliste - Punktezuwachs zählen
Hi,
ich wuerde meine Tabelle um eine Spalte erweitern und diese "punkte_alt" nennen. Danach einfach dein Update:
PHP-Code:
mysql_query("UPDATE $tabelle SET punkte_alt = punkte, punkte = '$punkte' , entwicklung = '$entwicklung' WHERE id = '$id'");
und schon kannst du bequem, ohne zu rechnen, den alten Punktestand auslesen.
Natuerlich kannst du dann auch super Berechnungen (auch innerhalb von SQL) durchführen - Du kannst natuerlich auch die Defferenz sofort beim Update durchführen.
Bye Damir
|
06.09.2005, 13:32:22
|
Anfänger
|
|
Registriert seit: Jun 2005
Beiträge: 92
|
|
AW: Rangliste - Punktezuwachs zählen
Also die Differenz direkt beim Update anzeigen lassen wäre nicht schlecht.
Wie mache ich das denn genau ?
|
06.09.2005, 13:39:55
|
Administrator
|
|
Registriert seit: Jan 2002
Ort: Köln
Alter: 53
Beiträge: 1.276
|
|
AW: Rangliste - Punktezuwachs zählen
Du willst ja immer die Differenz - also der Update bleibt gleich
PHP-Code:
mysql_query("UPDATE $tabelle SET punkte_alt = punkte, punkte = '$punkte' , entwicklung = '$entwicklung' WHERE id = '$id'");
und der SELECT dazu waere
PHP-Code:
SELECT sum( punkte - punkte_alt ) AS WERT FROM $tabelle WHERE id = '$id'
Jetzt hast du in $result['Wert'] die Differenz.
Bye Damir
|
07.09.2005, 01:51:19
|
Anfänger
|
|
Registriert seit: Jun 2005
Beiträge: 92
|
|
AW: Rangliste - Punktezuwachs zählen
Hi !
Also ich habe jetzt die Tabelle neu erstellt.
Sie hat jetzt die Spalten:
id | name | punkte | punkte_alt | entwicklung
Allerdings kann ich mit deinem Select nicht umgehen.
Wärst du so nett und baust mir das kurz in mein Script ein ?
Wäre echh cool... am besten in beide Dateien. :-)
Gruss... und danke für die Hilfe !!!
WALLi
Geändert von wallis (07.09.2005 um 01:52:04 Uhr)
|
07.09.2005, 10:35:32
|
Administrator
|
|
Registriert seit: Jan 2002
Ort: Köln
Alter: 53
Beiträge: 1.276
|
|
AW: Rangliste - Punktezuwachs zählen
Hi,
hab ja sonst nichts zu tun;-))
Einbauen kannst du es selbst - ist ja nur austauschen. Ausserdem sparen wir ja auch Datenbankbalast.
Achja, habe es natuerlich nicht getestet - das solltest du schon machen.
edit_main.php
PHP-Code:
$dbanfrage = "SELECT id, name, punkte, entwicklung, sum( punkte - punkte_alt ) AS WERT FROM $tabelle GROUP BY id ORDER BY id";
sho_main.php
PHP-Code:
$dbanfrage = "SELECT name, punkte, entwicklung, sum( punkte - punkte_alt ) AS WERT FROM $tabelle GROUP BY id ORDER BY punkte DESC";
Zugreifen kannst du jetzt auf die Differenz mit:
PHP-Code:
$result['WERT']
Bye Damir
|
07.09.2005, 12:50:55
|
Anfänger
|
|
Registriert seit: Jun 2005
Beiträge: 92
|
|
AW: Rangliste - Punktezuwachs zählen
Also, ich habe aus dem "WERT" jetzt DIFFERENZ gemacht.
Und natürlich die Variable in differenz geändert.
Allerdings bekomme ich keine Ausgabe.
Eigentlich sollte er mir doch in der edi_main.php die Ausgabe in dem Textfeld anzeigen, mit dem Namen "punkte_alt", wenn ich da '.$result['differenz'].' reinschreibe oder ?
Da kommt nämlich nichts... er zeigt mir nach dem "UPDATE" nichts in dem Textfeld an. Komisch... woran liegts ?
|
07.09.2005, 13:23:36
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Rangliste - Punktezuwachs zählen
Zitat:
Zitat von wallis
Also, ich habe aus dem "WERT" jetzt DIFFERENZ gemacht.
Und natürlich die Variable in differenz geändert.
Allerdings bekomme ich keine Ausgabe.
Eigentlich sollte er mir doch in der edi_main.php die Ausgabe in dem Textfeld anzeigen, mit dem Namen "punkte_alt", wenn ich da '.$result['differenz'].' reinschreibe oder ?
Da kommt nämlich nichts... er zeigt mir nach dem "UPDATE" nichts in dem Textfeld an. Komisch... woran liegts ?
|
wo ist willi? natürlich musst du groß- und klein-schreibung beachten.
|
07.09.2005, 14:45:59
|
Anfänger
|
|
Registriert seit: Jun 2005
Beiträge: 92
|
|
AW: Rangliste - Punktezuwachs zählen
Okay... das war ja auch logisch... auf die einfachsten Fehler kommt man net.
Allerdings ist die Ausgabe der Variablen "differenz" immer "0" !
Stimmt aber doch nicht. Sobald ich aus "50" Punkte, "51" mache, sollte er doch in der Spalte "punkte_alt" den Wert "1" eintragen und mir dann bei der ausgabe von "differenz" auf der "show_main.php" die "1" anziegen oder ?
Sehe ich doch richtig ?!?!
|
07.09.2005, 15:09:00
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Rangliste - Punktezuwachs zählen
Wie sehen deine Abfrage jetzt aus?
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:04:56 Uhr.
|