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] Zeitsperre bei Pferdepflege (https://www.gegen-bilderklau.net/thread.php?threadid=167717)
Geschrieben von MissFreaky am 26.01.2010 um 13:06:
Zeitsperre bei Pferdepflege
Huhu, das ist das erste Mal dass ich sowas wie ein Klicktraining also genauer gesagt ne Klickpflege code
Ich habs jetzt soweit das man den Namen des Pferdes angeben kann dann steigt der Wert jeweils um 1. Jedes Pferd hat dafür ein Feld in der Datenbank mit dem wert zufriedenheit. Der Wert sinkt jeden Tag per Cronjob um 3. Dazu hab ich jetzt einige Fragen:
Wie mache ich es das der Wert zufriedenheit in der Datenbank höchstens 100 betragen kann und nicht kleiner sein kann als 0? Wie kann ich eine Zeitsperre einbauen damit jedes Pferd nur einmal am Tag geputzt und versorgt werden kann? Am besten nicht alle 24 Stunden sondern jeden Tag
Die seite wenn man geputzt hat:
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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
|
<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Neue Seite 1</title>
<link rel="stylesheet" href="http://calvano.bplaced.de/main.css">
</head>
<body>
<?php
include('db.php');
$pname=$HTTP_POST_VARS['pname'];
$abfrage = "SELECT * FROM pferd WHERE name = '$pname'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$summe = $row->zufriedenheit + 1;
$aendern = ("UPDATE pferd Set zufriedenheit='$summe' WHERE name='$pname'");
$update = mysql_query($aendern);
if($update==true) {
echo "<b>Sehr gut!</b><br />
Du hast $pname erfolgreich geputzt. Die Zufriedenheit steigt um 1 Punkt!";
} else {
echo "fehler";
}
}
?>
</body>
</html>
|
|
Auf dieser Seite soll die Zeitsperre hin. Also wenn man noch nicht geputzt hat soll der Wert um 1 steigen. Hat man schon geputzt an dem Tag soll ne Meldung kommen ala: Du kannst erst morgen wieder putzen.
Habe bei jedem pferd dann noch einen wert in der tabelle: letztesputzen vom Typ timestamp.
Hatte bei Gb dann folgenden Code gefunden, welcher aber nicht funzt >.<
Man kann trotzdem IMMER putzen.
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
|
<?php
$alttime = $row->letztesputzen;
$neutime = time();
$differenz = $neutime - $alttime;
$mindestens = 60 * 60 * 24;
if ($differenz >= $mindestens) {
echo 'geht';
}
else {
echo 'geht nicht';
}
?> |
|
Und hier noch der Cronjob.
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
<?php
$sqlhost = "localhost";
$sqluser = "mussmannichtwissen";
$sqlpassword = "tjaaa";
$sqldb = "werweiss";
mysql_connect($sqlhost,$sqluser,$sqlpassword) or die ("Keine Verbindung moeglich!"); mysql_select_db($sqldb) or die ("Datenbank konnte nicht ausgewählt werden");
$sql = "UPDATE pferd SET zufriedenheit = zufriedenheit - 3 WHERE zufriedenheit > 0";
mysql_query($sql);
?> |
|
Ich hoffe ihr könnt mir helfen.
lg
Geschrieben von .Maybe am 26.01.2010 um 13:16:
Also am einfachsten finde ich es eigentlich, einfach das Feld letztesputzen auf Ja oder auf Nein zu setzten. Bei Ja zählt das Putzen, bei Nein eben nicht.
Und der Cronjob setzt es dann automatisch wieder auf Nein.
Find ich wesentlich unkomplizierter als deine Variante, obwohl die natürlich auch gehen würde.
Die ginge dann z.b einfach so;
$datum = date("d.m.Y");
if($row->letztesputzen == $datum) { ... nichts geschieht }
Zur anderen Frage:
Auch einfach mit if:
$summe = $row->zufriedenheit + 1;
if($summer > 100) { $summe = 100; }
if($summe < 0) { $summe = 0; }
Geschrieben von MissFreaky am 26.01.2010 um 14:07:
Auf die Idee mit dem ja und nein wäre ich nie gekommen. Habs jetzt so gemacht. Dankeschön, jetzt klappt alles
Hab jetzt aber noch eine Frage:
Im Internbereich werden dem Mitglied bei "eigene Pferde" alle Pferde angezeigt die in seinem Besitz sind. Unter jedem Pferd steht dann zB. Pferd putzen und Box misten oder so. Dann wird man ja auf die Seite Pferd putzen weitergeleitet. Da soll man dann nochmal den Pferdenamen eingeben - sprich den Namen des Pferdes das man putzen will. Kann man es irgendwie machen dass wenn man unterm Pferd Soundso auf Putzen klickt in dem Feld vom Namen direkt Pferd Soundso steht? Damit man einfach keine fremden Pferde pflegen kann. (Soll nur bei der Option RB gehen)
eigenepferde.php
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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
|
<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Neue Seite 1</title>
<link rel="stylesheet" href="http://calvano.bplaced.de/lmain.css">
</head>
<body>
<p align="center" style="margin-top: 0; margin-bottom: 0"><b>Meine Pferde</b></p>
<p align="center">Auf dieser Seite findest du alle Pferde die zur Zeit in deinem Besitz sind. Du kannst deine Pferde pflegen,
trainieren und versorgen.
<br><br>
</p>
<?php
include("db.php");
$Ergebnisone = mysql_query("SELECT name, status FROM mitglieder WHERE id = ".$_SESSION["login"]);
while($row = mysql_fetch_object($Ergebnisone))
{
$besitzername = $row->name;
}
$Ergebnis = mysql_query("SELECT * FROM pferd WHERE besitzer = '".$besitzername."'");
if (mysql_num_rows($Ergebnis) == 0) {
echo 'Du hast noch keine eigenen Pferde. Schau doch mal auf den Pferdemarkt.
Dort kannst du dir Pferde kaufen.';
}
else {
while($Data = mysql_fetch_array($Ergebnis)) {
echo "
<table class="tablea" border="0" cellspacing="0" width="70%" align=center>
<tr>
<td class="neu" align="center" width="50%" rowspan="4"><img border="0" src="http://calvano.bplaced.de/bilder/$Data[vorschaupic]" align="center"></td>
<td class="tda" align="center" width="50%"><b><a href="pferd.php?id=$Data[ID]">$Data[name]</a></b></td>
</tr>
<tr>
<td class="tdb" align="center" width="50%">$Data[rasse], $Data[geschlecht], $Data[alter] Jahre</td>
</tr>
<tr>
<td class="tdd" align="center" width="50%"><a href="putzen.php">Pferd putzen</a>
| <a href="versorgen.php">Versorgen</a></td>
</tr>
<tr>
<td class="tdd" align="center" width="50%">Zufriedenheit
| $Data[zufriedenheit]%</td>
</tr>
</table>
<br>
";
}
}
echo mysql_error();
?>
</body>
</html> |
|
putzen.php
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:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
|
<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Neue Seite 1</title>
<link rel="stylesheet" href="http://calvano.bplaced.de/main.css">
</head>
<body>
<p class="head">Pferd putzen</p>
<?php
include('db.php');
$id = $_GET['id'];
$abfrage = "SELECT name FROM mitglieder WHERE id = ".$_SESSION["login"];
$ergebnis = mysql_query($abfrage);
$Data = mysql_fetch_array($ergebnis);
// Hier arbeitet man dann entweder mit $Data[vorbesitzer] oder
// man definiert vorher die Variable $vorbesitzer ...
if($Data[name] != "")
{
echo"Hallo $Data[name]. Hier kannst du dein Pferd $pname putzen. Putzt du dein Pferd,
steigt seine Zufriedenheit um 1 Punkt. Das ist wichtig, denn kümmerst du dich
nicht mehr und ist die Zufriedenheit deines Pferdes unter 20 Punkte gesunken
kommt es wieder in den Verkaufsstall.
<br></b>.";
}
else
{
echo "fehler.";
}
?>
<br>
<form action=putzen2.php method=post>
<p style="margin-top: 0; margin-bottom: 0">
Gebe den Namen des Pferdes korrekt ein.
<p style="margin-top: 0; margin-bottom: 0"><b>Beispiel</b></p>
<p style="margin-top: 0; margin-bottom: 0"><u>Falsch:</u> frenchkiss
</p>
<p style="margin-top: 0; margin-bottom: 0"><u>Richtig:</u> French Kiss
</p>
<p style="margin-top: 0; margin-bottom: 0"><i>Achte auf Leerzeichen und Groß-
und Kleinschreibung.</i>
<br><br> <b> Pferdename:</b>
<input type=text size=23 name=pname>
<br>
BILD <br>
<br> <br>
<input type=submit name=send value=Pferdputzen>
</p>
</form>
</body>
</html>
|
|
Forensoftware: Burning Board, entwickelt von WoltLab GmbH