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

Das Zend Framework

Das Zend Framework 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
  #1  
Alt 05.11.2004, 15:49:44
Rudolfsport Rudolfsport ist offline
Junior Member
 
Registriert seit: Sep 2004
Beiträge: 348
Rehcen OP´s

hi,
nachdem die geschcihte mit der Datenbank nun klappt habe ihc ein letztes problem und zwar habe ich folgende 2 verschiedene Cods:

CODE 1:

PHP-Code:
<HTML>
<HEAD>
<FONT bgcolor="black" text="white" link="white" vlink="white"</FONT>
</HEAD>
<BODY>
<center>
<?PHP
ECHO "Dein Setup war:<p>";
ECHO 
"Tankinhalt: $tank <br>";
ECHO 
"Runden am Stück: ".number_format($runden,1) ." Runden<br>";
IF (
$reifen == "a")
{
$rdnzeit$runden $tank;
ECHO 
"Ihre Rundenzeit war: "number_format($rdnzeit,2) . "Minuten schnell<p>";
}
ELSE
{
$rdnzeit3$runden $tank 1.1;
$rdnzeit2 $rdnzeit3 1000;
$rdnzeit $rdnzeit2 1;
ECHO 
"Durch die weichen Reifen haben Sie einen Vorteil. <br>";
ECHO 
"Deshalb ist ihre tatsächliche Zeit: " number_format($rdnzeit,2) . " Minute schnell<p>";
}
?>
</center>
</BODY>
</HTML>
CODE 2:

PHP-Code:
<HTML>
<HEAD>
<FONT bgcolor="black" text="white" link="white" vlink="white"</FONT>
</HEAD>
<BODY>
<center>
<?PHP
ECHO "Dein Setup war:<p>";
ECHO 
"Tankinhalt: $tank <br>";
ECHO 
"Runden am Stück: ".number_format($runden,1) ." Runden<br>";
IF (
$reifen == "b")
{
$rdnzeit$runden $tank;
ECHO 
"Ihre Rundenzeit war: "number_format($rdnzeit,2) . "Minuten schnell<p>";
}
ELSE
{
$rdnzeit3$runden $tank 1.12;
$rdnzeit2 $rdnzeit3 1000;
$rdnzeit $rdnzeit2 1;
ECHO 
"Durch die Harten Reifen haben Sie einen Vorteil. <br>";
ECHO 
"Deshalb ist ihre tatsächliche Zeit: " number_format($rdnzeit,2) . " Minute schnell<p>";
}
?>
</center>
</BODY>
</HTML>
So nun sind die Rechenwerte unterschiedlich und eigentlich müsste bei dem 2.Code ein deutlich höherer WErt als beim 1.Code raus kommen.
Dem ist aber nicht so. Wo ist mein Fehler? Könnt ihr mir helfen?
Mit Zitat antworten
  #2  
Alt 05.11.2004, 17:17:54
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Re: Rehcen OP´s

Welche Werte haben denn $runden und $tank?
Und welche Ergebnisse erhälst du jeweils bei den beiden Codes?
Und dass der Wert beim zweiten Code wesentlich größer wird als beim ersten Wage ich dann doch mal stark zu bezweifeln, wenn du einmal mit 1,1 und einmal mit 1,12 rechnest.

Geändert von xabbuh (05.11.2004 um 17:21:10 Uhr)
Mit Zitat antworten
  #3  
Alt 05.11.2004, 22:02:22
Rudolfsport Rudolfsport ist offline
Junior Member
 
Registriert seit: Sep 2004
Beiträge: 348
$tank ist nicht bestimmt. Man muss vorher in einem Formular eingaben, welche Menge Sprit man mitnimmt.Genauso ist es mit der Variable $runden.
Sagen wir zum Beispiel $tank = 50 ; $runden = 5

Dann bekomm ich bei Code 1 in der ersten RechenOP 50*5*1.1 = 275
275 / 1000 = 0.275
0.275 + 1 = 1.275

Rechen OP bei Code 2 mit gleichen werten = 50*5*1.12 = 280
280 / 1000 = 0.28
0.28 + 1 = 1.28

So sollte es sein, stattdessen zeigt das Programm bei beiden 250 an.
Mit Zitat antworten
  #4  
Alt 05.11.2004, 22:12:39
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Zitat:
Original geschrieben von Rudolfsport
Sagen wir zum Beispiel $tank = 50 ; $runden = 5

Dann bekomm ich bei Code 1 in der ersten RechenOP 50*5*1.1 = 275
275 / 1000 = 0.275
0.275 + 1 = 1.275

Rechen OP bei Code 2 mit gleichen werten = 50*5*1.12 = 280
280 / 1000 = 0.28
0.28 + 1 = 1.28

So sollte es sein, stattdessen zeigt das Programm bei beiden 250 an.
Da fällt mir spontan folgende Stelle in deinem Quelltext auf:
PHP-Code:
<?php
    
if($reifen == "a") {
        
$rdnzeit$runden $tank;    //  <- 50 * 5 = 250
        
echo "Ihre Rundenzeit war: "number_format($rdnzeit,2) . "Minuten schnell<p>";
    } else {
        
$rdnzeit3$runden $tank 1.1;
        
$rdnzeit2 $rdnzeit3 1000;
        
$rdnzeit $rdnzeit2 1;
        echo 
"Durch die weichen Reifen haben Sie einen Vorteil. <br>";
        echo 
"Deshalb ist ihre tatsächliche Zeit: " number_format($rdnzeit,2) . " Minute schnell<p>";
    }
?>
Also wird $reifen wohl in diesem Beispiel a sein.
Mit Zitat antworten
  #5  
Alt 06.11.2004, 01:49:30
Rudolfsport Rudolfsport ist offline
Junior Member
 
Registriert seit: Sep 2004
Beiträge: 348
jo man hat vorher eine aus whal von 4 reifen. bei den anderen 2 gehts ja, aber hier wills nicht wirklich gehen.
Wie meinst du $reifen = a ? ja wenn er die a variante gewählt hat dann stimmt es so.
Aber den Fheler warum da nicht 275 raus kommt findeste nicht wa?
Mit Zitat antworten
  #6  
Alt 06.11.2004, 02:42:40
Benutzerbild von yozek
yozek yozek ist offline
Junior Member
 
Registriert seit: May 2004
Ort: Köln
Alter: 43
Beiträge: 226
yozek eine Nachricht über ICQ schicken yozek eine Nachricht über MSN schicken
es ist ein denkfehler...

folgender Vorschlag um dem ein Ende zu bereiten:

PHP-Code:

<?
/* Ausgabe zu Testzwecken : Start */
$runden = "5"; 
$tank = '50';
/* Ausgabe zu Testzwecken : Ende */

switch ($_GET['reifen']) {  // Ansonsten bitte das $_POST verwenden
case 'a':
    $multi = 1.1;
    $art = 'weichen ';
    break;
case 'b':
    $multi = 1.2;
    $art = 'harten ';
    break;
case 'c':
    $multi = 1.9;
    $art = 'Winter-';
    break;
case 'd':
    $multi = 1.5;
    $art = 'Regen-';
    break;
default:
    $multi = 1.0;
    $art = 'Normal-';
}

$rdnzeit= $runden * $tank * $multi;
$rdnzeit2 = $rdnzeit / 16.;
$rdnzeit = $rdnzeit2 + 1;

?>
Durch die <?=$art;?> Reifen haben Sie einen Vorteil.<br>
Deshalb ist ihre tatsächliche Zeit: <?=number_format($rdnzeit,2);?> 
Minute schnell<p>
Was mir persönlich nicht gefällt ist die Rundenzeit als solche.. Wäre es nicht besser eine Ausgabe mit Sekunden zu definieren.. ??

PHP-Code:
$rdnzeit= $runden * $tank * $multi;
$rdnzeit2 = $rdnzeit / 16.67;
$rdnzeit = $rdnzeit2 + 60;

?>
Durch die <?=$art;?> Reifen haben Sie einen Vorteil.<br>
Deshalb ist ihre tatsächliche Zeit: <?=date('i:s',$rdnzeit);?>
 <?=($rdnzeit != 60) ? 'Minuten' : 'Minute';?> schnell<p>
Desweiteren wäre es von Interesse über eine Klasse und Funktionen nachzudenken ...

HTH

Surfe lang und erfolgreich
__________________
yozek

King of my castle - 127.0.0.1
Computer befreien das Denken vom Rechnen
Mit Zitat antworten
  #7  
Alt 06.11.2004, 10:12:35
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Zitat:
Original geschrieben von Rudolfsport
jo man hat vorher eine aus whal von 4 reifen. bei den anderen 2 gehts ja, aber hier wills nicht wirklich gehen.
Wie meinst du $reifen = a ? ja wenn er die a variante gewählt hat dann stimmt es so.
Aber den Fheler warum da nicht 275 raus kommt findeste nicht wa?
Doch, es wird einfach nie die Bedingung ausgeführt, mit der er 275 rausbekommen könnte, sondern immer du die Anweisung, die von der Bedingung $reifen == 'a' abhängig ist.
Mit Zitat antworten
  #8  
Alt 06.11.2004, 19:37:21
Rudolfsport Rudolfsport ist offline
Junior Member
 
Registriert seit: Sep 2004
Beiträge: 348
danke es geht. wie sähe jetzt aber eine mindest begrenzung aus? Also man sollte mindestens 10 bei Tankfüllung eingeben und bei runde mindestens 1.
Also wenn einer bei Tankfüllung 9 eingibt, sollte dann da ein tExt kommen, der besagt, dass man so nicht fahren kann. Oder auch bei den Runden. IWe mach ich das?
Mit Zitat antworten
  #9  
Alt 06.11.2004, 19:47:24
Benutzerbild von yozek
yozek yozek ist offline
Junior Member
 
Registriert seit: May 2004
Ort: Köln
Alter: 43
Beiträge: 226
yozek eine Nachricht über ICQ schicken yozek eine Nachricht über MSN schicken
PHP-Code:
/* Min Variablen definieren */
$min_runden '10';
$min_tank '100';

/* Krass abbrechen */
if ($_POST['runden'] < $min_runden):
   die(
'Zu wenige Runden angegeben, Aufwand lohnt nicht');
endif;
if (
$_POST['tank'] < $min_tank):
   die(
'Mit leeren Tank fahren gibts noch nicht ;)');
endif; 
Das wäre eine ziemlich krasse Lösung...


Eine Empfehlung wäre per Redirect Befehl nochmal die Seite aufzurufen, wo die Werte angegeben werden und die falsch eingegebenen Werte nocheinmal rot erscheinen zu lassen.

Wenn du viel mit Formfeldern arbeitest, kann ich dir HTML_QUICKFORM von PEAR empfehlen..

HTH

Gruß
__________________
yozek

King of my castle - 127.0.0.1
Computer befreien das Denken vom Rechnen
Mit Zitat antworten
  #10  
Alt 06.11.2004, 22:55:48
Rudolfsport Rudolfsport ist offline
Junior Member
 
Registriert seit: Sep 2004
Beiträge: 348
hm. ber nun zeigt es nurnoch die fehlermeldung an. egal was ich eingaebe.

PHP-Code:
<HTML>
<BODY>
<center>
<?
/* Min Variablen definieren */
$min_runden = '1';
$min_tank = '10';
/* Krass abbrechen */
if ($_POST['runden'] < $min_runden):
   die('Zu wenige Runden angegeben');
endif;
if ($_POST['tank'] < $min_tank):
   die('Zuwenig Sprit im Tank');
endif;
/* Min Variablen definieren */
$max_runden = '20';
$max_tank = '100';

/* Krass abbrechen */
if ($_POST['runden'] > $max_runden):
   die('Zuviele Runden angegeben');
endif;
if ($_POST['tank'] > $max_tank):
   die('Der Tank ist überfüllt');
endif;
switch ($_GET['reifen']) {  // Ansonsten bitte das $_POST verwenden
case 'a':
    $multi = 1.1;
    $art = 'weichen';
    break;
case 'b':
    $multi = 1.12;
    $art = 'harten';
    break;
case 'c':
    $multi = 1.3;
    $art = 'intermediate';
    break;
default:
    $multi = 1.5;
    $art = 'regen';
}

$rdnzeit= $runden * $tank * $multi;
$rdnzeit2 = $rdnzeit / 1000.;
$rdnzeit = $rdnzeit2 + 1;
?>
Durch die <?=$art;?> Reifen haben Sie einen Vorteil.<br>
Deshalb ist ihre tatsächliche Zeit: <?=number_format($rdnzeit,2);?> 
Minuten schnell
</center>
</BODY>
</HTML>
Mit Zitat antworten
Antwort


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


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:28:38 Uhr.


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


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