Wert erhöhen in Datenbank mit Session

  • Themenstarter Themenstarter Bacio Deluxe
  • Beginndatum Beginndatum
B

Bacio Deluxe

Hallo
ich wollte fragen ob mir Jemand sagen könnte wie ich folgendes mache:

Ich bin eingeloggt und die Session läuft. Dann klicke ich etwas an (beispielsweiße "Geld") und der Wert der in meiner Datenbanktabelle in der Spalte geld steht erhöht sich um so und so viel.

weiß das jemand?

Liebe grüße Bacio
 
Hallo,

kann da zwar dein Problem nicht erkennen, das was du fragst sind Grundsteine der Programmiersprache PHP.
Vom Prinzip her machst du beim Aufruf der Seite xy.php eine Datenbankabfrage, welche per UPDATE den Wert manipuliert.

Gruß
BK
 
Genau wie Bratkartoffel sagte, musst du mit Update arbeiten.
Angenommen du hast eine Tabelle für die Nutzer, eine Spalte "money" und jeweils eine Benutzerid, dann müsste es so aussehen:
PHP:
$sql = "UPDATE users SET money=money+1 WHERE id='".$_SESSION['userid']."'";
 
okay, danke :).

kann mir vllt jemand von euch noch sagen was an folgenden codes falsch sien kann? es zeigt zwar an dass es erfolgreich in die tabelle gespeichert wurden,aber es trägt nichts ein.


seite1 (formular):
<?php

session_start();
$name = $_GET[mitglied];
$loc = $_GET[loc];
?>

<head>
<title>Mitgliederprofil</title>
</head>

<?php

// Verbindung zur Datenbank
include("db.php");

// Hiermit wird der Wert geholt, der über die URL übergeben wurde. Dieser wird nun für die Abfrage genutzt.
// Somit werden nur genau die Daten abgefragt, die diese ID haben
$id = "$_GET[id]";

$Ergebnis = mysql_query( "SELECT * FROM pferde where ID='$id'" );
if (@mysql_num_rows($Ergebnis) == 0) {
echo "Dieses Pferd existiert nicht!";
}

else {
$Data = mysql_fetch_array( $Ergebnis );

//Anzeige der Links (Wenn du den Chara auf mehrere Seiten verteilst
//Hier die Angabe der Daten vom Pferd. Es kann wieder HTML verwendet werden ganz normal eben (; Nur an der Stelle wo die Daten sein sollen schreibt ihr $Data[Spaltenname] hin

echo "<a href=\"?inhalt=deinpferd&cat=$cat&id=$Data[id]\"><img src='http://loreno.bplaced.net/grafiken/allgemein.gif' style='border:0px'> Allgemeines</a> - - <a href=\"?inhalt=deinpferd2&cat=$cat&id=$Data[id]\"><img src='http://loreno.bplaced.net/grafiken/wohlbefinden.gif' style='border:0px'> Wohlergehen</a> - - <a href=\"?inhalt=deinpferd3&cat=$cat&id=$Data[id]\"><img src='http://loreno.bplaced.net/grafiken/training.gif' style='border:0px'> Trainieren und Pflegen</a><br><br>


<b>Allgemeines zu $Data[name]</b><br><br>
<table>
<tr>
<td>Pflegestatus<br><img src='grafiken/stats1.gif'*
height='8' width='$Data[pflege]'> $Data[pflege] %</td>
<td>Zufriedenheit<br><img src='grafiken/stats1.gif'*
height='8' width='$Data[zufriedenheit]'> $Data[zufriedenheit] %</td>
</tr>
<tr>
<td>Sozialverhalten<br><img src='grafiken/stats1.gif'*
height='8' width='$Data[sozialverhalten]'> $Data[sozialverhalten] %</td>
<td><b>Vertrauen</b><br><img src='grafiken/stats1.gif'*
height='8' width='$Data[vetrauen]'> $Data[vetrauen] %</td>
</tr>
</table>
<br><br><br>
<a href=\"?inhalt=tierarzt&cat=$cat&id=$Data[id]\"><img src='http://loreno.bplaced.net/grafiken/allgemein.gif' style='border:0px'> Tierarzt rufen?</a>
";
}


?>



seite2:

<?php

session_start();

include("db.php");

$grund = "$_POST[grund]";
$id = "$_POST[id]";

$Ergebnis = mysql_query( "SELECT * FROM pferde where ID='$id'" );
if (@mysql_num_rows($Ergebnis) == 0)
{
echo "Dieses Pferd existiert nicht!";
}

$aendern = "UPDATE pferde SET grund = '$grund' WHERE id = '$[id]'";
$update = mysql_query($aendern);

if ($update == true)
{
echo "Beitrag erfolgreich gespeichert. ";

}

?>
 
Hallo,

bitte fasse deinen Quellcode das nächste mal zwischen [ java] und [/ java] ein, dann ist er bei weitem einfacher zu lesen.
Zu deiner Frage: Ich kann da nirgends etwas von "money" entdecken. Bitte erläutere nochmal, wann du was verändern willst.

Gruß
BK
 
das ist ein ganz anderer code, hat nichts mit dem 1. zu tun. aber ich dachte ich muss dafü keinen neuen thread extra eröffnen.
mein problem ist wenn ich das formular ausfülle zeigt es an es wird abgeschickt aber nichts wird wirklich in die tabelle eingetragen.
 
in [code=php]..[/code] setze und formatierenn darfst du ihn trotzdem. Wir sollen ihn ja lesen können. Siehe dazu auch meine Signatur (3ter Punkt).

Zu deiner eigentlichen Frage. Siehe meine Signatur (Punkt 1)

Nachtrag:
mysql_query gibt nicht true oder false zurück, sondern eine Ressource. Ob etwas geändert wurde kannst du mit mysql_affected_rows() überprüfen
 
Zuletzt bearbeitet:
Ja, auf jeden Fall formatieren.

Außerdem ist mir aufgefallen, das du im Skript deine übergebenen ($_POST, $_GET) Variablen einfach "roh" in dein SQL-Statement einfügst. ==> SQL-Injection
 
Ich vertseh ehrlich gesagt nicht so ganz genau was ihr meint. Ich bin mit php noch nicht so im reinen dass ich alles perfekt kann. wäre lieb wenn ihr mir zeigen würdet wo falls ihr den fehler seht weil ich arbeite jetzt schon ewig daran rum..
 
Wie gesagt, du sollst den Code formatiert rein stellen. Ich habe es jetzt mal für dich gemacht:
PHP:
<?php

session_start();
$name = $_GET[mitglied];
$loc = $_GET[loc];
?>

<head>
<title>Mitgliederprofil</title>
</head>

<?php

// Verbindung zur Datenbank
include("db.php");

// Hiermit wird der Wert geholt, der über die URL übergeben wurde. Dieser wird nun für die Abfrage genutzt.
// Somit werden nur genau die Daten abgefragt, die diese ID haben
$id = "$_GET[id]";

$Ergebnis = mysql_query( "SELECT * FROM pferde where ID='$id'" );
if (@mysql_num_rows($Ergebnis) == 0) {
echo "Dieses Pferd existiert nicht!";
}

else {
$Data = mysql_fetch_array( $Ergebnis );

//Anzeige der Links (Wenn du den Chara auf mehrere Seiten verteilst
//Hier die Angabe der Daten vom Pferd. Es kann wieder HTML verwendet werden ganz normal eben (; Nur an der Stelle wo die Daten sein sollen schreibt ihr $Data[Spaltenname] hin

echo "<a href=\"?inhalt=deinpferd&cat=$cat&id=$Data[id]\"><img src='http://loreno.bplaced.net/grafiken/allgemein.gif' style='border:0px'> Allgemeines</a> - - <a href=\"?inhalt=deinpferd2&cat=$cat&id=$Data[id]\"><img src='http://loreno.bplaced.net/grafiken/wohlbefinden.gif' style='border:0px'> Wohlergehen</a> - - <a href=\"?inhalt=deinpferd3&cat=$cat&id=$Data[id]\"><img src='http://loreno.bplaced.net/grafiken/training.gif' style='border:0px'> Trainieren und Pflegen</a><br><br>


<b>Allgemeines zu $Data[name]</b><br><br>
<table>
<tr>
<td>Pflegestatus<br><img src='grafiken/stats1.gif'*
height='8' width='$Data[pflege]'> $Data[pflege] %</td>
<td>Zufriedenheit<br><img src='grafiken/stats1.gif'*
height='8' width='$Data[zufriedenheit]'> $Data[zufriedenheit] %</td>
</tr>
<tr>
<td>Sozialverhalten<br><img src='grafiken/stats1.gif'*
height='8' width='$Data[sozialverhalten]'> $Data[sozialverhalten] %</td>
<td><b>Vertrauen</b><br><img src='grafiken/stats1.gif'*
height='8' width='$Data[vetrauen]'> $Data[vetrauen] %</td>
</tr>
</table>
<br><br><br>
<a href=\"?inhalt=tierarzt&cat=$cat&id=$Data[id]\"><img src='http://loreno.bplaced.net/grafiken/allgemein.gif' style='border:0px'> Tierarzt rufen?</a> 
";
}


?>



seite2:

<?php

session_start();

include("db.php");

$grund = "$_POST[grund]";
$id = "$_POST[id]";

$Ergebnis = mysql_query( "SELECT * FROM pferde where ID='$id'" );
if (@mysql_num_rows($Ergebnis) == 0)
{
echo "Dieses Pferd existiert nicht!";
}

$aendern = "UPDATE pferde SET grund = '$grund' WHERE id = '$[id]'";
$update = mysql_query($aendern);

if ($update == true)
{
echo "Beitrag erfolgreich gespeichert. ";

}

?>

Code 1:
  1. Zeile 4, 5, 19, 32, 35, 39, 41, 45, 47, 51: Key als String übergeben (mit Anführungsstrichen ')
  2. Zeile 21: String escapen (mysql_real_escape_string)!

Code 2:
  • Zeile 3: Nocheinmal session_start();
  • Zeile 7, 8: Key als String übergeben (mit Anführungsstrichen ')
  • Zeile 10, 16: String escapen (mysql_real_escape_string)!

Falls das ein Spiel werden soll, würde ich dir Templates empfehlen.
 
Zuletzt bearbeitet:
Zurück