Re: Countdown mit dem wert x für spielen

Jau.


jetzt gehts: hatte falsche werte übergeben
ich hatte im formular <SELECT name="zeit">
und übergeben hab ich "wert"


Also, danke wiedereinmal^^

David


// edit

Wieder ein Problem:

Ich habe nun das Formular mit Stunden gemacht:
1 Stunde
2 Stunden
bis 10 halt.

value ist 1, 2, 3, 4, 5, 6, 7, 8, 9, 10


Wenn ich das nun in die Tabelle eintrage, rechnet er folgendes aus:

"Du musst bis 14:57 arbeiten. Komme um diese Zeit wieder "
Ich habe aber um 16:05 angefangen.

Was ist falsch?

meine scripte:
PHP:
<?php include "checkuser.php"; ?>

<h1>Arbeiten gehen</h1>

	<?php
		$zahl = mysql_query("SELECT * FROM arbeiten WHERE `id`=".$_SESSION["user_id"]."");
		$z		= mysql_fetch_array($zahl);
	?>

Bitte wähle deine Zeit aus:
<form action="?section=goarbeiten" method="post">
	<SELECT name="zeit">
		<option name="2" 	value="2">1 Stunde</option>
		<option name="2" 	value="2">2 Stunden</option>
		<option name="3" 	value="3">3 Stunden</option>
		<option name="4" 	value="4">4 Stunden</option>
		<option name="5" 	value="5">5 Stunden</option>
		<option name="6" 	value="6">6 Stunden</option>
		<option name="7" 	value="7">7 Stunden</option>
		<option name="8" 	value="8">8 Stunden</option>
		<option name="9" 	value="9">9 Stunden</option>
		<option name="10" 	value="10">10 Stunden</option>
		<input type="submit" value="Gehe Arbeiten" />
	</SELECT>
</form>

<p />

<b>Info:</b> Pro Stunde erhälst du 9.90$!

<p />



<?php
   $result 			= mysql_query("SELECT * FROM arbeiten WHERE `uid`=".$_SESSION["user_id"]."");
   $u 					= mysql_fetch_array($result);

   //variablen festlegen
   $angefangen 	= "".$u['angefangen']."";
   $zeit				= "".$u['zuarbeiten']."";
 	 $zuarbeiten 	= $angefangen + ($zeit * 60);
   $time 				= "$zuarbeiten+$angefangen";
	 
	 //ausrechnen, wann man fertig ist
	 $fertig 			= date("H:i",$zuarbeiten);  // $zeit = 15*60;


   if ($zuarbeiten != $angefangen)
      {
        echo "Du musst bis $fertig arbeiten. Komme um diese Zeit wieder <br />";
      }
    else
      {
        echo "Du hast deine Arbeit verrichtet";
        $Query = mysql_query("DELETE FROM arbeiten WHERE `id`=".$u['id']."");
        //header ("location: ?section=arbeiten");
      }
?>


das eintrage-script
PHP:
<?php
	//insert
	$zeit = $_POST['zeit'];
	$uid = $_SESSION["user_id"];
	$angefangen = time();
	$zuarbeiten = $angefangen + ($zeit * 60);
	
	$Insert = mysql_query("INSERT INTO arbeiten(`uid`, `zuarbeiten`, `angefangen`) VALUES ('$uid', '$zuarbeiten', '$angefangen')");
	header ("location: ?section=arbeiten&send=1");
?>

die tabelle:
id
uid (int11)
zuarbeiten(int11)
angefangen(int11)



MfG
David
 
Du machst beim Eintragen und beim Ausgeben:
PHP:
// Eintragen 
$zuarbeiten = $angefangen + ($zeit * 60); 

// Ausgeben
$zeit = "".$u['zuarbeiten'].""; // Was soll "".$var.""; bezwecken?
$zuarbeiten = $angefangen + ($zeit * 60);
Du siehst, nochmal $zuarbeiten * 60 nehmen ist doppelt gemoppelt.
Also:
PHP:
$zuarbeiten = $u['zuarbeiten']:
$fertig = date("H:i",$zuarbeiten);
// ...

Und abgesehen davon, ist der Timestamp in Sekunden angegeben. Wenn du jetzt Stunden addieren willst, musst du diese 2x mit 60 multiplizieren, da du sonst nur Minuten erhälst.
 
:offtopic: :offtopic: :offtopic: :offtopic: :offtopic: :offtopic: :offtopic: :offtopic: :offtopic:


Hey,

irgendwie läuft mit dem Countdown gar nichts.

Könntet ihr euch das bitte nocheinmal anschauen?


arbeiten.php
PHP:
<?php include "checkuser.php"; ?>

<h1>Arbeiten gehen</h1>

	<?php
		$zahl = mysql_query("SELECT * FROM arbeiten WHERE `uid`=".$_SESSION["user_id"]."");
		$z		= mysql_fetch_array($zahl);
	?>

Bitte wähle deine Arbeits-Zeit aus:
<form action="?section=goarbeiten" method="post">
	<SELECT name="zeit">
		<option name="1" 	value="1">1 Stunde</option>
		<option name="2" 	value="2">2 Stunden</option>
		<option name="3" 	value="3">3 Stunden</option>
		<option name="4" 	value="4">4 Stunden</option>
		<option name="5" 	value="5">5 Stunden</option>
		<option name="6" 	value="6">6 Stunden</option>
		<option name="7" 	value="7">7 Stunden</option>
		<option name="8" 	value="8">8 Stunden</option>
		<option name="9" 	value="9">9 Stunden</option>
		<option name="10" value="10">10 Stunden</option>
			<?php
				if (mysql_num_rows($zahl) >= 1)
					{
			?>
						<input type="submit" value="Du Arbeitest bereits" disabled="disabled" />
			<?php
					}
				else
					{
			?>
						<input type="submit" value="Gehe Arbeiten" />
			<?php
					}
			?>
	</SELECT>
</form>

<p />

<b>Info:</b> Pro Stunde erhälst du 2.57$!

<p />



<?php
   $result 			= mysql_query("SELECT * FROM arbeiten WHERE `uid`=".$_SESSION["user_id"]."");
   $u 					= mysql_fetch_array($result);

   //variablen festlegen
   $angefangen 	= $u['angefangen'];
 	 $zuarbeiten 	= $u['zuarbeiten'];
   $time 				= $zuarbeiten+$angefangen;
	 
	 //ausrechnen, wann man fertig ist
	 $fertig 			= date("H:i:s", $zuarbeiten); //rechnet die zeit aus, an dem man fertig ist



   if ($zuarbeiten >= $angefangen)  //wenn die zeit, die zu arbeiten ist größer ist, als die, wann man angefangen hat, ist man fertig
      {
        echo "Du musst bis <u>$fertig</u> arbeiten. Komme um diese Zeit wieder! <br />";

				//gold auf die bank legen
				$goldh			= mysql_query("SELECT * FROM `bank` WHERE `iid`=".$_SESSION["user_id"].""); //holt den aktuellen kontostand
				$g					= mysql_fetch_array($goldh);
				$golda			= $g['gold']; //der aktuelle gold-betrag
				$preis 			= 2.75; //der preis, den man für 1 stunde bekommt
				$stunden		= $u['stunden']; //die zu arbeitenden stunden
				$gold 			= $stunden*$preis+$golda; //die stunden mal den preis plus das aktuelle gold
				$Bank				= mysql_query("UPDATE bank SET `gold`='$gold' WHERE `iid`=".$_SESSION["user_id"].""); //bun updaten
				
				$Query = mysql_query("DELETE FROM arbeiten WHERE `id`=".$u['id'].""); //arbeitsauftrag löschen
      }
    else
      {
      	echo "Du hast deine Arbeit verrichtet";
      }
?>


goarbeiten.php
PHP:
<?php
	//insert
	$zeit 			= $_POST['zeit'];
	$uid 				= $_SESSION["user_id"];
	$angefangen = time();
	$zuarbeiten = $angefangen + ($zeit * 60 * 60);
	
	$Insert 		= mysql_query("INSERT INTO arbeiten(`uid`, `zuarbeiten`, `angefangen`, `stunden`) VALUES ('$uid', '$zuarbeiten', '$angefangen', '$zeit')");	
								header ("location: ?section=arbeiten&send=1");
?>

Er trägt nicht mal mehr in die db ein :-\
Ich glaub, ich geh pennen

Ich DANKE EUCH für eure hilfe... :(

David
 
Hey,

ich habe ein RICHTIGES Problem. Ich arbeitete seit 4 Tagen an diesem behinderten Script. Aber es einfach nicht richtig.

Wer kann es mal testen? Also, bei sich aufm Bildschirm?

arbeiten.php
PHP:
<?php include "checkuser.php"; ?>

<h1>Arbeiten gehen</h1>

	<?php
		//auslesen, plus varible
		$arbeitet = mysql_query("SELECT * FROM arbeiten WHERE `uid`=".$_SESSION["user_id"].""); //guckt, ob der user schon arbeitet
		$a				= mysql_fetch_array($arbeitet);	//variable festlegen
	?>

Bitte wähle deine Arbeits-Zeit aus:
<form action="?section=goarbeiten" method="post">
	<SELECT name="zeit">
		<option name="1" 	value="1">1 Stunde</option>
		<option name="2" 	value="2">2 Stunden</option>
		<option name="3" 	value="3">3 Stunden</option>
		<option name="4" 	value="4">4 Stunden</option>
		<option name="5" 	value="5">5 Stunden</option>
		<option name="6" 	value="6">6 Stunden</option>
		<option name="7" 	value="7">7 Stunden</option>
		<option name="8" 	value="8">8 Stunden</option>
		<option name="9" 	value="9">9 Stunden</option>
		<option name="10" value="10">10 Stunden</option>
			<?php
				if (mysql_num_rows($arbeitet) >= 1) //wenn der user arbeitet, button disablen
					{
			?>
						<input type="submit" value="Du Arbeitest bereits" disabled="disabled" />
			<?php
					}
				else //wenn nicht, dann kann man arbeiten
					{
			?>
						<input type="submit" value="Gehe Arbeiten" />
			<?php
					}
			?>
	</SELECT>
</form>

<p />

<b>Info:</b> Pro Stunde erhälst du 2.57$!

<p />



<?php
	//die id's festlegen
	$iid						= $_SESSION["user_id"];	//legt die iid (inhaber-id) fest

	//auslesen, plus varible
	$arbeiten 			= mysql_query("SELECT * FROM arbeiten WHERE `uid`=$iid"); //holt den arbeits-auftrag aus der db.
	$ar 						= mysql_fetch_array($arbeiten);	//variable
	
	//bank-noten auslesen, plus variable
	$bank						= mysql_query("SELECT * FROM bank WHERE `iid`=$iid");
	$b							= mysql_fetch_array($bank);
	
	//werte aus der db holen
	$angefangen			= $ar['angefangen'];					//holt die zahl, an der die arbeit begann, im format time(); aus der db
	$zuarbeiten			= $ar['zuarbeiten'];					//holt die zahl, die zu arbeiten ist, im format time(); aus der db
	$stunden				= $ar['stunden'];							//holt die zahl, die zu arbeiten ist, als stunden-zahl aus der db: 1, 2, 3, 4....
	
	//andere werte festlegen:
	$asumme					= $b['gold'];
	$preis 					= 2.75;												//legt den stundenlohn fürs arbeiten fest
	$nsumme					= $stunden*$preis+$asumme;		//rechnet den preis aus. z.b.: 100$ + 1 stunde * 2.75
	
	//werte umformulieren: d.m.Y H:i
	$angefangenf		= date("d.m.Y H:i:s", $angefangen); //legt die angefangene zeit in ein richtiges format um
	$zuarbeitenf		= date("d.m.Y H:i:s", $zuarbeiten); //legt die zuarbeitende zeit in ein richtiges format um
	
	
	//wenn keine Einträge in die db, dann auch nichts ausgeben:
	if(($zuarbeiten >= $angefangen) AND (mysql_num_rows($arbeiten) >= 1))
		{
			//Bank eintrag machen:
			$iid				= $_SESSION["user_id"];	//legt die iid (inhaber-id) fest
			$bankupdate = "UPDATE bank SET `gold`=$nsumme WHERE `iid`=$iid";

			//variablen festlegen
			$aksumme		= $b['gold'];
			
			//meldung ausgeben, das der user fertig gearbeitet hat:			
			echo "Du hast deine Arbeit verrichtet!";
			echo "<br />";
			echo "Dein Kontostand lautet nun: $aksumme $";
			
			//den arbeitesauftrag löschen, damit man neu arbeiten kann
			$deletear		= mysql_query("DELETE FROM arbeiten WHERE `uid`=$iid");

			if (mysql_db_query($DBName, $bankupdate, $Link))
				{
					//weiterleiten
					header ("location: ?section=konto");
				}
			else
				{
					//fehler
					echo "Dein Kontostand konnte nicht geändert werden";
				}
		}
	elseif (($zuarbeiten <= $angefangen) AND (mysql_num_rows($arbeiten) >= 1))
		{
			
			//werte ausgeben
			echo "Du wirst um diese Zeit mit deiner Arbeit fertig sein: <b>$zuarbeitenf</b>!";
			echo "<br />";
			echo "Nachdem du deine Arbeit verrichtet hast, wird dein Kontostand auf <b>$nsumme$</b> steigen!";
		}
	elseif (mysql_num_rows($arbeiten) == 0)
		{
			echo "Du arbeitest nicht";
		}
	else
		{
			echo "";
		}
?>

goarbeiten.php
PHP:
<?php
	//werte posten
	$zeit 				= $_POST['zeit'];										//übergibt die stundenzahl zum arbeiten: 1, 2, 3, 4, 5, 6....
	$uid 					= $_SESSION["user_id"];							//legt die uid (user_id) fest: mit sessions
	$angefangen 	= time();														//legt die aktuelle zeit fest
	$zuarbeiten 	= $angefangen + ($zeit * 60 * 60);	//rechnet die zu arbeitende zeit im time(); format aus
	
	
	//eintragen und weiterleiten
	$Insert 			= mysql_query("INSERT INTO 
														     arbeiten(`uid`, `zuarbeiten`, `angefangen`, `stunden`) 
														 	 VALUES ('$uid', '$zuarbeiten', '$angefangen', '$zeit')");	//eintrag in die datenbank
								
								header ("location: ?section=arbeiten&work=1"); //leitet zurück zur seite arbeiten.php
?>

Das will einfach nicht richtig :(


MfG
David
 

Neue Beiträge

Zurück