SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 22.09.2014, 15:26:57
HEYHO HEYHO ist offline
Anfänger
 
Registriert seit: Sep 2014
Alter: 42
Beiträge: 4
Gebäude_bau Ablauf

Hallo zusammen

Ich habe momentan ein Problem an dem ich schon einige Stunden dran sitze und einfach nicht raus finde, warum es nicht so läuft wie es laufen sollte.

Wie der Betreff schon sagt, möchte ich ein Gebäudebau Ablauf schreiben.

Ich habe diesen in 2 Sektoren aufgeteilt, einmal soll geprüft werden ob es bereits eine Bauzeit gibt wenn nicht, dann soll der vom User eingegebene Auftrag ausgeführt werden und somit die jetzige Zeit + die Bauzeit in die Tabelle eingetragen werden (das funktioniert).

Im 2ten Sektor soll dann ermittelt werden wie lange die Bauzeit noch beträgt, dazu hole ich mir die Daten der Bauzeit aus der Datenbank und ziehe sie von der jetzigen Zeit ab.
Da kommt dann im jetzigen Fall 20 Sekunden raus, was mir auch angezeigt wird und die auch nach aktuallisieren runter laufen ( Funktioniert auch noch )

Jetzt der Teil an dem ich hänge und nicht zur Lösung komme:

Wenn die Bauzeit dann abgelaufen ist ( also unter 0 ) , dann soll mittels Update die vom User eingegebene Gebäudeanzahl in die Spalte "gebaeude_gesamt" geschrieben und die Zeit auf 0 gesetzt werden.

Nach dem die Bauzeit runter gelaufen ist , läuft die Zeit weiter in´s minus rein und ansonsten passiert einfach nix.

Ich kann nach den 20 Sekunden zwar wieder einen neuen Auftrag geben und die neue Bauzeit wird wieder in die Tabelle eingetragen aber der letzte Rest wird eben nicht erledigt.

Ich wäre sehr froh wenn ihr mir bei diesem Problem mal helfen könntet. Hier ist der Code dazu:

PHP-Code:
<?php

$id 
2;

error_reporting(E_ALL);
ini_set('display_errors'1);

require_once (
"../db_config.php");

$sub_button = isset($_POST['submit']);
$auftrag_saegewerk = isset($_POST['saegewerk']) ? trim($_POST['saegewerk']) : false ;

$aktuelle_zeit time();
$bauzeit time()+20;


$saegwerk_zeit "SELECT `endbauzeit` FROM `rohstoff_gebaeude` WHERE id = $id";

$stmt $db_connect->prepare($saegwerk_zeit);
$stmt->execute();
$stmt->bind_result($start);
$stmt->fetch();
$stmt->close();


if (
$start $aktuelle_zeit)
{
    if (
$sub_button || $auftrag_saegewerk)
    {
        
$saegewerk_bau "REPLACE INTO `rohstoff_gebaeude` (`id` , `endbauzeit`) VALUES (? ,?)";

        
$stmt $db_connect->prepare($saegewerk_bau);
        
$stmt->bind_param('ii' $id $bauzeit);
        
$stmt->execute();
        
$stmt->close();
    }
}
else
{
    
$error_msg_gebaeude "Es befindet sich bereits ein Geb&auml;ude im Bau !";
}




$saegewerk_bauzeit "SELECT `endbauzeit` FROM `rohstoff_gebaeude` WHERE id = $id";

$rest $db_connect->prepare($saegewerk_bauzeit);
$rest->execute();
$rest->bind_result($rest_zeit);
$rest->fetch();
$rest->close();

$rest_bauzeit $rest_zeit $aktuelle_zeit;
echo 
$rest_bauzeit;


if (
$rest_bauzeit 0)
{
    
$saegewerk_fertig "UPDATE `rohstoff_gebaeude` SET `saegewerk_gesamt` = ? AND `endbauzeit` = 0 WHERE id = $id";

    
$stmt $db_connect->prepare($saegewerk_fertig);
    
$stmt->bind_param('i' $auftrag_saegewerk);
    
$stmt->execute();
    
$stmt->close();
}


$db_connect->close();

?>
Das ist die Tabelle dazu:

PHP-Code:
Server Version5.5.33a-MariaDB
-- PHP-Version5.5.5



--
-- 
Tabellenstruktur für Tabelle `rohstoff_gebaeude`
--

CREATE TABLE IF NOT EXISTS `rohstoff_gebaeude` (
  `
idint(11NOT NULL,
  `
saegewerk_gesamtint(15NOT NULL,
  `
endbauzeitint(11NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=latin1;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */
Mit Zitat antworten
  #2  
Alt 23.09.2014, 00:52:29
HEYHO HEYHO ist offline
Anfänger
 
Registriert seit: Sep 2014
Alter: 42
Beiträge: 4
AW: Gebäude_bau Ablauf

Hat hier keiner eine Idee wo ran es liegen könnte ?
Bastel da schon so lange rum und komm einfach nicht auf den gewollten Effekt :/
Mit Zitat antworten
  #3  
Alt 23.09.2014, 08:44:30
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Gebäude_bau Ablauf

Hallo und willkommen hier im Forum.


Wo/wie verarbeitest Du den Ablauf der Bauzeit. Finde nur eine Abfrage ob $rest_bauzeit < 0. Dies bedeutet aber, dass Du die Seite jede Sekunde neu laden musst, damit Du in die Verarbeitung kommst.

Stichwort: JavaScript/jQuery
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #4  
Alt 23.09.2014, 09:43:34
HEYHO HEYHO ist offline
Anfänger
 
Registriert seit: Sep 2014
Alter: 42
Beiträge: 4
AW: Gebäude_bau Ablauf

Danke für die nette Begrüßung.

Die Verarbeitung läuft ja auf der Serverseite, in dem die jetzige Zeit + Bauzeit dort in einer Tabelle gespeichert ist und dann eben mit der jetzigen Zeit abgeglichen wird.
Ist die Zeit abgelaufen bzw. die jetzige Zeit > Bauzeit , dann ist das Gebäude fertig und wird auch auf der Datenbank schon so registriert, der User bekommt es natürlich erst dann auf seinen Bildschirm wenn er aktualisiert.

Das ganze will ich später irgendwann mal natürlich auch dynamisch mit JS oder so machen aber momentan will ich erstmal, daß es so vernünftig läuft

Ps: Hatte das ganze schonmal mit mysql geschrieben, da hat es auch wunderbar funktioniert, nun sitze ich den 2ten Tag an dieser Sache und es läuft einfach nicht wie es soll, kann mir aber nicht erklären warum
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session, Cookies ablauf Estefano PHP Grundlagen 6 02.10.2009 21:54:38
Ablauf von Funktionen Salamander89 PHP Grundlagen 2 10.07.2009 20:34:21
Nach ablauf des Datums, daten automatisch löschen Janson PHP für Fortgeschrittene und Experten 13 20.07.2004 15:02:06


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:42:42 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt