Seite 1 von 3

Wiederholung eines Befehls ... lol

Verfasst: 07.09.2005 19:04
von DasFragezeichen
Also, lol

Das ist meine Datei (datei.htm) :
<html>
<head>
<title>Datei
</title>
</head>
<body>
<form action="auswertung.php" method="post">

<input type="text" size="30" name="anzahl"></td>
<input type="submit" value="OK">
</form>
</body>
</html>
Nunja, ... Jetzt habe ich sagen wir mal diese PHP-Datei (auswertung.php) :
<?php

$anzahl = $HTTP_POST_VARS["anzahl"];

echo "Hello World \n";

?>
Nunja, für die auswertung.php suche ich einen Befehl der so oft wie die $anzahl einen Befehl (zumbeispiel den Befehl : "echo "Hello World \n";") wiederholt wie ich angegeben habe ...

Das heisst das wenn ich in die Datei.htm in das Feld : "5" eingetragen habe dann die auswertung.php das schreibt :
Hello World
Hello World
Hello World
Hello World
Hello World
Wie lautet da der Befehl der praktisch einen anderen Befehl nach einer Variablen so oft wiederholt wie angegeben ?

MfG,
DasFragezeichen ;)

Verfasst: 07.09.2005 19:28
von fanrpg
auswertung.php

Code: Alles auswählen

<?php
$anzahl = $_POST['anzahl'];
while($anzahl)
{
echo "Hello World";
}
?>

Verfasst: 07.09.2005 19:59
von Maxy
Hallo ihr beiden,

ihr solltet euch mal mit den Grundlagen der Programmierung beschäftigen, im speziellen Schleifen. Kleine Anregung: schau nach bei SelfPHP unter den Stichworten
- while
- do ... while
- for

Warum?
1. Obige Antwort produziert eine Endlosschleife, da die Bedingung immer wahr ist.
2. Selbst wenn die Antwort richtig wäre, würde sie DasFragezeichen wahrscheinlich nicht wirklich weiterhelfen, da er mit seinem "Programm" sicher mehr machen möchte, als x-mal "hello world" ausgeben.

Verfasst: 07.09.2005 20:06
von DasFragezeichen
ähm, ich weiss nicht warum aber das ganze wiederholt sich unnendlich oft oO

Ich habe auch alles überprüft aber da ist kein Fehler oO

Wie kann das sein ? oO

Verfasst: 07.09.2005 20:16
von fanrpg

Code: Alles auswählen

<?php 
$anzahl = $_POST['anzahl']; 
while($anzahl < $anzahl or $anzahl == $anzahl) 
{ 
echo "Hello World"; 
} 
?>
so müsste das funktionieren
Hallo ihr beiden,

ihr solltet euch mal mit den Grundlagen der Programmierung beschäftigen, im speziellen Schleifen. Kleine Anregung: schau nach bei SelfPHP unter den Stichworten
- while
- do ... while
- for

Warum?
1. Obige Antwort produziert eine Endlosschleife, da die Bedingung immer wahr ist.
2. Selbst wenn die Antwort richtig wäre, würde sie DasFragezeichen wahrscheinlich nicht wirklich weiterhelfen, da er mit seinem "Programm" sicher mehr machen möchte, als x-mal "hello world" ausgeben.
lol? Na ja ich habe mich mit Schleifen nicht so beschäftigt und meistens haben meine Bedingungen nie unendlich...

Verfasst: 07.09.2005 20:22
von DasFragezeichen
fanrpg hat geschrieben:

Code: Alles auswählen

<?php 
$anzahl = $_POST['anzahl']; 
while($anzahl < $anzahl or $anzahl == $anzahl) 
{ 
echo "Hello World"; 
} 
?>
so müsste das funktionieren
Hm, das ist genau wie vorher irgendwie

Also, ich habe mal daraus eine kompakte Datei gemacht ... (datei.php) :
<html>
<head></head>
<body>
<form action="datei.php" method="post">
<tr><td>Anzahl : </td><td><input type="text" size="4" name="anzahl"></td></tr><tr><td>
<input type="submit" value="Absenden"></td></tr></table>
</form>
</body>
<?php
$anzahl = $_POST['anzahl'];
while($anzahl < $anzahl or $anzahl == $anzahl)
{
echo "Hello World";
}
?>
So in etwa sieht die aus ... aber da kommen wieder unnendlich "Hello World"'s raus, lol

Verfasst: 07.09.2005 20:26
von FatFreddy
Muß ja auch, weil die Bedingung $anzahl == $anzahl immer erfüllt ist.

@Fanprg: einen Versuch hast Du noch. ;)

FatFreddy

Verfasst: 07.09.2005 20:26
von mristau2k5

Code: Alles auswählen

$anzahl = $_POST['anzahl'];

for($i=0;$i<=$anzahl;$i++)
{
  echo "Hello world<br>\n";
}
das sollte an sich funktionieren, falls 1mal zu oft ausgegeben wird, statt $i=0 $i=1 schreiben

Verfasst: 07.09.2005 20:36
von fanrpg
so ich habe mich jetzt mal durch mein PHP Tut gequält und das funktioniert:

Code: Alles auswählen

<html> 
<head></head> 
<body> 
<form method="post"> 
<tr><td>Anzahl : </td><td><input type="text" size="4" name="anzahl"></td></tr><tr><td> 
<input type="submit" value="Absenden" name="submit"></td></tr></table> 
</form> 
</body> 
<?php
if(isset($_POST['submit']))
{
$count = 1;
if($_POST['anzahl'] == 0 or $_POST['anzahl'] == "")
{
die("Keine Zahl eingegeben oder Zahl ist Null");
exit;
}
if($_POST['anzahl'] > 1000)
{
die("Zahl zu gross");
exit;
}
 while($count < $_POST['anzahl'])
    {
    echo "Hello World <br />";
	$count++;
    }
	if($_POST['anzahl'] != 0 or $_POST['anzahl'] != "") {
	echo "Hello World";
	}
}
?>
EDIT: Hier kann man sich das angucken: http://www.fanrpg.de/array_zahlen.php

EDIT²: So jetzt 6 mal edittiert und Code korrigiert <.< auf jeden Fall bei mehr 1000 wird das Script nicht ausführt, da dich sonst dein Hoster hasst^^

Verfasst: 08.09.2005 01:53
von FatFreddy
Dein Ehrgeiz ehrt Dich,


... aber warum dieses:

Code: Alles auswählen

if($_POST['anzahl'] != 0 or $_POST['anzahl'] != "") 
1. hast Du das, was Du vermutlich erreichen willst, bereits weiter oben abgefragt. Das Skript wäre also schon beendet, wenn diese Bedingung greifen könnte.
2. Ist sie eh falsch. Ich vermute, Du willst erreichen, daß $post['anzahl'] weder leer noch 0 sein darf. Das sähe dann so aus:

Code: Alles auswählen

if($_POST['anzahl'] != 0 and $_POST['anzahl'] != "") 

FatFreddy