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 ::

Der CSS-Problemlöser

Der CSS-Problemlöser 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

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

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 23.10.2009, 21:50:52
Rett-Schwimmer Rett-Schwimmer ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 33
Beiträge: 5
AW: Script funktioniert nicht, weiß jemand wieso?

Die Punkte vor und nach den Variablen, aber daran scheinnt es nicht nur zu liegen, der weiß Bildschirm bleibt trotzdem.
Mit Zitat antworten
  #12  
Alt 24.10.2009, 07:43:51
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: Script funktioniert nicht, weiß jemand wieso?

So ich hab mir mal erlaubt die meisten Fehler zu entfernen. Ob die Datensaätze in die DB geschrieben werden hab ich nicht getestet. Zumindest wird der Insert korrekt geschrieben und deine Ausgaben sowie Datumsformatierungen stimmen jetzt.
PHP-Code:
<?php
$fvorname
=$_REQUEST['vorname'];
$fname=$_REQUEST['name'];
$feinsatz=$_REQUEST['einsatz'];
$fATT=$_REQUEST['ATT'];
$fAMM=$_REQUEST['AMM'];
$fAJJJJ=$_REQUEST['AJJJJ'];
$fETT=$_REQUEST['ETT'];
$fEMM=$_REQUEST['EMM'];
$fEJJJJ=$_REQUEST['EJJJJ'];
$ftage=$_REQUEST['tage'];
$fdauer=$_REQUEST['dauer'];
if((
$fATT==$fETT)and($fAMM==$fEMM)and($fAJJJJ==$fEJJJJ)){
 
$fdatum=($fAJJJJ.'-'.$fAMM.'-'.$fATT);
 
$sql_eintrag "INSERT INTO statistik_einsatz(lfd_nr,vorname,name,einsatz,datum,dauer) VALUES ('','".$fvorname."','".$fname."','".$feinsatz."','".$fdatum."','".$fdauer."')";
 
$eintrag=mysql_query($sql_eintrag,$verbindung);
 
$sql="SELECT * FROM statistik_einsatz";
 
$ergebnis=mysql_query($sql,$verbindung);
 
mysql_free_result($ergebnis);
 
mysql_close($verbindung);
 echo 
"<p>Der Datensatz wurde erfolgreich Angelegt!</p>\n";
}else{
        for(
$i=0;$i<$ftage;$i++){
            
$fdatum=($fAJJJJ.'-'.$fAMM.'-'.($fATT+$i));
            
$sql_eintrag "INSERT INTO statistik_einsatz(lfd_nr,vorname,name,einsatz,datum,dauer) VALUES ('','".$fvorname."','".$fname."','".$feinsatz."','".$fdatum."','".$fdauer."')";
        }
        
mysql_free_result($ergebnis);
        
mysql_close($verbindung);
        echo 
"<p>Es wurden ".$i." Datens&auml;tze angelegt</p>\n";
}

?>
 <a href="index.php?doc=einsatz_eintragen">Zur&uuml;ck</a>
Persönlich würde ich allerdings ohne Enddatum arbeiten und meine IF Bedingung an die Anzahl der Einsatztage hängen. Das jeweilige Datum wird ja eh per Hochzählen gesetzt.

EDIT: Deine Datumsberechnung selbst bringt aber nicht immer das korrekte Datum, wenn du es so generierst wie du es hier im Script versuchst.
Ist der Beginn und das Enddatum im selben Monat und Jahr passt alles. Liegt das Enddatum im neuen Monat bzw. Jahr hast du ein Problem. Du solltest dich in diesem Fall mal mit Dartumsfunktionen beschäftigen.
Mit Zitat antworten
  #13  
Alt 24.10.2009, 09:09:56
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: Script funktioniert nicht, weiß jemand wieso?

Habe oben im FOR die Zeile "$eintrag=mysql_query($sql_eintrag,$verbindung);" vergessen wieder einzutragen. Kann leider den Beitrag selbst nicht mehr korrigieren.
Mit Zitat antworten
  #14  
Alt 24.10.2009, 11:14:28
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
AW: Script funktioniert nicht, weiß jemand wieso?

So da ich gerade Lust hatte hab ich mich noch mit dem Datum und der Anzahl Tage beschäftigt.
Der Beginn und das Ende stehen ja fest. Die Anzahl Tage müsste bei dir der Benutzer selbst nachzählen und eintippen. Geht ein solcher Einsatz über mehrere Tage kann man sich schnell verzählen, wenn man keinen Kalender hat. Gerade bei Monats und/oder auch Jahres übergreifenden Zeiträumen können schnell Fehler auftreten.
Verzählen, das der Monat nur 30 Tage hatte oder auch Schaltjahre sind ja gern gesehene Fehlerquellen. PHP selbst hat genug Möglichkeiten um solche Berechnungen schneller und sicher durchführen zu können als es ein Mensch machen kann.
Zusätzlich würde bei mehreren Tagen kein Datenbankeintrag entstehen, wenn der Benutzer die Anzahl an Tagen nicht vergisst einzutragen bzw. einen Minuswert erfasst.

EDIT: 2008 war ein Schaltjahr!

So hier mal das gleiche Script entsprechend angepasst.
Eintragung in die DB ist weiterhin ungeprüft und Fehler durch Eingabe falscher Werte werden nicht abgefangen.
PHP-Code:
<?php
$dformat
="Y-m-d";  //wird für das Datumsformat zum Eintragen in der DB benötigt
$fvorname=$_REQUEST['vorname'];
$fname=$_REQUEST['name'];
$feinsatz=$_REQUEST['einsatz'];
$fATT=$_REQUEST['ATT'];
$fAMM=$_REQUEST['AMM'];
$fAJJJJ=$_REQUEST['AJJJJ'];
$fETT=$_REQUEST['ETT'];
$fEMM=$_REQUEST['EMM'];
$fEJJJJ=$_REQUEST['EJJJJ'];
$fdauer=$_REQUEST['dauer'];
$aDate date(mktime(0,0,0,$fAMM,$fATT,$fAJJJJ)); //Startdatum als Timestamp
$eDate date(mktime(0,0,0,$fEMM,$fETT,$fEJJJJ)); //Enddatum als Timestamp
$ftage = ($eDate-$aDate)/60/60/24+1;  //Berechnung der Einsatztage
if($ftage===1){   //soll ja nur ausgeführt werden, wenn es nur ein Tag ist
 
$fdatum=($fAJJJJ.'-'.$fAMM.'-'.$fATT);
 
$sql_eintrag "INSERT INTO statistik_einsatz(lfd_nr,vorname,name,einsatz,datum,dauer) VALUES ('','".$fvorname."','".$fname."','".$feinsatz."','".$fdatum."','".$fdauer."')";
 
$eintrag=mysql_query($sql_eintrag,$verbindung);
 
$sql="SELECT * FROM statistik_einsatz";
 
$ergebnis=mysql_query($sql,$verbindung);
 
mysql_free_result($ergebnis);
 
mysql_close($verbindung);
 echo 
"<p>Der Datensatz wurde erfolgreich Angelegt!</p>\n";
}else{
        for(
$i=0;$i<$ftage;$i++){
            
$fdatum=date($dformat,mktime(0,0,0,$fAMM,$fATT+$i,$fAJJJJ));
            
$sql_eintrag "INSERT INTO statistik_einsatz(lfd_nr,vorname,name,einsatz,datum,dauer) VALUES ('','".$fvorname."','".$fname."','".$feinsatz."','".$fdatum."','".$fdauer."')";
            echo 
$fdatum.'<br>';
            
$eintrag=mysql_query($sql_eintrag,$verbindung);
        }
        
mysql_free_result($ergebnis);
        
mysql_close($verbindung);
        echo 
"<p>Es wurden ".$i." Datens&auml;tze angelegt</p>\n";
}

?>
Anmerkung: Es wird die effektive Gesamtdauer in Stunden erfasst und pro Tag in die DB geschrieben. Hat man 3 Tage wird dieser Wert auch 3x erfasst. Sollte es hier zu statistischen Erhebungen kommen oder die Gesamtdauer anderweitig genutzt wird ein falscher Wert ausgegeben.
Abhilfe würde man erhalten, wenn man die Gesamtzeit durch die Anzahl der Tage rechnen würde und somit zumindest den Durschnitt pro Tag erfasst. Bei einer Umsetzung müsste man allerdings beachten, daß es hier zu Kommastellen kommen wird, die ggf. gerundet werden müssen und ggf. entsprechend der Datentyp für die Spalte in der DB angepasst werden.

Anmerkung 2: Zur Zeit werden überhaupt keine Fehler abgefangen, was grundsätzlich geändert werden sollte.
Mit Zitat antworten
Antwort

Stichworte
eintragen, if tag, mysql, php, weißer bildschirm


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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
Script funktioniert nicht mit switch-case Matze83 PHP Grundlagen 9 06.03.2007 22:07:54
Upload Script funktioniert seit umzug nicht. ZeroxXx PHP Grundlagen 15 08.10.2006 17:23:04
Problem: Login Script v1.0(MySQL) funktioniert nicht Discoverer PHP Grundlagen 6 09.05.2005 13:20:22
Strings per PHP an ein anderes Script übergeben ? quirrly PHP Grundlagen 18 23.12.2004 15:20:39
Suche "Länder" Script.. Nomad PHP für Fortgeschrittene und Experten 15 25.02.2003 23:00:25


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:15:45 Uhr.


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


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