Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Udpateproblem (https://www.gegen-bilderklau.net/thread.php?threadid=138000)
Geschrieben von Baronesse am 29.07.2008 um 21:26:
Udpateproblem
Hi,
ich habe nun versucht über einen Cronjob von Cronjob.de eine Datei auszuführen und meine Datenbank upzudaten.
Nur leider funktioniert das update nicht, die Datei die Aufgerufen wird über den Cronjob is diese:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
<?php
include("db.php");
$sql = "SELECT * FROM user ";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
$name = $row [Name];
$konto = $row[Konto];
$zahl1 = $row[Gehalt];
$zahl2 = $row[Miete];
$zahl3 = $row[Stallmiete];
$summe = $konto + $zahl1 - $zahl2 - $zahl2;
$update = mysql_query("UPDATE 'user' Set Konto = '" . $summe . "' WHERE 'Name' = '" . $name . "'");
} ?>
|
|
Die Datei, die die neuen Werte ausgeben soll, ist diese:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
<link rel="stylesheet" href="tabellenpferde.css" type="text/css">
<table border="1" width="50%" style="border-collapse: collapse">
<tr>
<td>Kontoinhaber</td>
<td>Kontostand</td>
</tr>
<?php
include("db.php");
$sql = "SELECT * FROM user order by 'id'";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
echo "<tr>
<td>".$row[Vorname]."</td>
<td>".$row[Konto]."</td>
</tr>";} ?>
</table>
|
|
Geschrieben von Baronesse am 29.07.2008 um 21:50:
Wieso Glaskugel reib?
Ich habe zwar Zahlen in meiner Datenbank stehen, aber die wurden nicht verändert, bisher.
Es ist so, dass das die Miete und Stallmiete vom Konto abgezogen werden soll.
Jeden Monat zum ersten hin, im Moment hab ich den Cronjob alle fünf Muinuten laufen, da ich verschiedenes versucht habe, aber das Update nicht klappt und ich nicht weiß wie so.
Nach wie vor steht das der Kontostand 13000€ da.
Nur ich finde den Fehler nicht.
Geschrieben von Baronesse am 29.07.2008 um 22:10:
Die Fehlermeldung sieht so aus: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''user' Set Konto = '14100' WHERE 'Name' = 'Reimer'' at line 1
Geschrieben von Baronesse am 29.07.2008 um 22:33:
*sfz*
Nein, jetzt ist aber die fehlermeldung weg.
Dennoch geht es nicht.
Geschrieben von Baronesse am 29.07.2008 um 22:52:
Es hat sich nichts verändert.
Immernoch steht der selbe Kontostand da, wie vorher auch *schnief*
Geschrieben von Baronesse am 29.07.2008 um 23:03:
jetzt ist es so, dass er rechnet. aber nur bei einem Mitglied o.O
Geschrieben von Baronesse am 29.07.2008 um 23:22:
Nee nee das hab ich auch schon korrigiert, das musste $zahl3 hin.
War mein Fehler.
Na ja nur bei dem letzten Mitglied wird gerechnet o.O
Geschrieben von Baronesse am 29.07.2008 um 23:33:
ich hab mal einen Fehlerreport eingebaut und er wirft das aus:
Notice: Use of undefined constant Name - assumed 'Name' in /users/baronesse/www/ACP/Internbereich/konten.php on line 8
Notice: Use of undefined constant Konto - assumed 'Konto' in /users/baronesse/www/ACP/Internbereich/konten.php on line 9
Notice: Use of undefined constant Gehalt - assumed 'Gehalt' in /users/baronesse/www/ACP/Internbereich/konten.php on line 10
Notice: Use of undefined constant Miete - assumed 'Miete' in /users/baronesse/www/ACP/Internbereich/konten.php on line 11
Notice: Use of undefined constant Stallmiete - assumed 'Stallmiete' in /users/baronesse/www/ACP/Internbereich/konten.php on line 12
Edit: das sind die Zeilen, die angesprochen sind.
$name = $row [Name];
$konto = $row[Konto];
$zahl1 = $row[Gehalt];
$zahl2 = $row[Miete];
$zahl3 = $row[Stallmiete];
Geschrieben von Baronesse am 29.07.2008 um 23:42:
japp isses.
Geschrieben von sina91 am 29.07.2008 um 23:44:
probier mal so:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
|
<?php
mysql_connect('host','benutzername','passwort')
or die ('Keine Verbindung moeglich');
mysql_select_db('datenbank')
or die ('Datenbank existiert nicht');
$sql = "SELECT * FROM user";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
$name = "$row[Name]";
$konto = "$row[Konto]";
$zahl1 = "$row[Gehalt]";
$zahl2 = "$row[Miete]";
$zahl3 = "$row[Stallmiete]";
$summe = $konto + $zahl1 - $zahl2 - $zahl3;
$update =("UPDATE user Set Konto = '$summe' WHERE Name = '$name' ");
$updaten = mysql_query($update);
} ?>
|
|
Bzw. oben dann mit include, bei der Verbindung zu DB.
Bei mir funzt so, also das er überall durchrechnet, habz mit PHPmyAdmin ausprobiert.
Geschrieben von Baronesse am 29.07.2008 um 23:46:
Sinaaaaaaaaaaaaaa ich könnte dich küssen, dankeeeeee!
Es funzt *muhaaa*
Geschrieben von sina91 am 29.07.2008 um 23:51:
Kein Problem xD
War schon die ganze Zeit stille Mitleserin und bin selbst dran verzweifelt

So was kann einen aber auch aufregen, wenn man nicht weiß was falsch ist xD... Da sprech ich wirklich aus Erfahrung
php: |
1:
|
$update =("UPDATE user Set Konto = '$summe' WHERE Name = '$name' "); |
|
Die Klammern kannst du auch weglassen, sind überflüssig, hab ich nur vergessen rauszulöschen^^
Geschrieben von sina91 am 30.07.2008 um 17:48:
Probier mal so:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
|
<?php
session_start();
?>
<?php
include("connect.inc.php");
$username = $_SESSION['Name'];
$geburtsdatum = $_POST['geburtsdatum'];
$land = $_POST['land'];
$selbstbeschreibung = $_POST['selbstbeschreibung'];
$beruf = $_POST['beruf'];
$reitlevel = $_POST['reitlevel'];
$reitabzeichen = $_POST['reitabzeichen'];
$guthaben = $_POST['guthaben'];
if ($geburtsdatum == "" OR $land == "" OR $selbstbeschreibung == "" OR $beruf == "")
{
echo "Bitte fülle alle Felder aus, sonst funktioniert das nicht. <a href="intern_index.php">Zurück</a>";
}
elseif ($geburtsdatum != "" AND $land != "" AND $selbstbeschreibung != "" AND $beruf != "")
{
$news_SQL_update="UPDATE Mitglieder SET Geburtsdatum='$geburtsdatum',Land='$land',Selbstbeschreibung='$selbstbeschreibung',Beruf='$beruf',Reitlevel='$reitlevel',Reitabzeichen='$reitabzeichen',Guthaben='$guthaben' WHERE Name='$username'";
$eintragen=mysql_query($news_SQL_update);
if($eintragen == true)
{
echo " <meta http-equiv="refresh" content="5; URL=http://santafhe.bplaced.net/filemanager/intern_index.php"/><br>
Du hast erfolgreich dein Konto aktualisiert und wirst jetzt automatisch wieder zum Startbildschirm des Internen Bereichs weitergeleitet.<br>
Sollte dies nicht funktionieren, klicke bitte <a href="intern_index.php">hier.</a>";
}
else
{ echo "Es ist leider ein Fehler aufgetreten.";}
}
?>
|
|
Geschrieben von sina91 am 31.07.2008 um 00:05:
Hab jetzt nochma Kleinigkéiten geändert, an denen es aber mit ziemlicher Sicherheit eig. nicht liegen kann;
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
|
<?php
session_start();
include("connect.inc.php");
$username = $_SESSION['Name'];
$geburtsdatum = $_POST['geburtsdatum'];
$land = $_POST['land'];
$selbstbeschreibung = $_POST['selbstbeschreibung'];
$beruf = $_POST['beruf'];
$reitlevel = $_POST['reitlevel'];
$reitabzeichen = $_POST['reitabzeichen'];
$guthaben = $_POST['guthaben'];
if ($geburtsdatum == "" OR $land == "" OR $selbstbeschreibung == "" OR $beruf == "")
{
echo "Bitte fülle alle Felder aus, sonst funktioniert das nicht. <a href="intern_index.php">Zurück</a>";
}
else
{
$sql="UPDATE Mitglieder Set Geburtsdatum='$geburtsdatum', Land='$land', Selbstbeschreibung='$selbstbeschreibung', Beruf='$beruf', Reitlevel='$reitlevel', Reitabzeichen='$reitabzeichen', Guthaben='$guthaben' WHERE Name='$username'";
$eintragen=mysql_query($sql);
if($eintragen == 'true')
{
echo " <meta http-equiv="refresh" content="5; URL=http://santafhe.bplaced.net/filemanager/intern_index.php"/><br>
Du hast erfolgreich dein Konto aktualisiert und wirst jetzt automatisch wieder zum Startbildschirm des Internen Bereichs weitergeleitet.<br>
Sollte dies nicht funktionieren, klicke bitte <a href="intern_index.php">hier.</a>";
}
else
{ echo "Es ist leider ein Fehler aufgetreten.";}
}
?>
|
|
Mit Sessien habe ich noch nicht gearbeitet, aber ich gehe davon aus, das du auch überprüft hast, ob die Variable also den Namen enthält? Das wäre dann eig. noch das einzige, was ich mir als Fehler vorstellen koennte..
Forensoftware: Burning Board, entwickelt von WoltLab GmbH