Wiederholung eines Befehls ... lol

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
DasFragezeichen
Mitglied
Beiträge: 402
Registriert: 28.08.2005 19:51

Wiederholung eines Befehls ... lol

Beitrag 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 ;)
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

auswertung.php

Code: Alles auswählen

<?php
$anzahl = $_POST['anzahl'];
while($anzahl)
{
echo "Hello World";
}
?>
Maxy
Mitglied
Beiträge: 135
Registriert: 01.06.2004 17:33

Beitrag 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.
Benutzeravatar
DasFragezeichen
Mitglied
Beiträge: 402
Registriert: 28.08.2005 19:51

Beitrag 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
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag 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...
Benutzeravatar
DasFragezeichen
Mitglied
Beiträge: 402
Registriert: 28.08.2005 19:51

Beitrag 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
Benutzeravatar
FatFreddy
Mitglied
Beiträge: 1937
Registriert: 25.07.2004 15:52
Kontaktdaten:

Beitrag von FatFreddy »

Muß ja auch, weil die Bedingung $anzahl == $anzahl immer erfüllt ist.

@Fanprg: einen Versuch hast Du noch. ;)

FatFreddy
Watch out where the huskies go, don't you eat the yellow snow...
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
mristau2k5
Mitglied
Beiträge: 140
Registriert: 10.05.2005 02:35
Wohnort: Filderstadt

Beitrag 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
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag 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^^
Benutzeravatar
FatFreddy
Mitglied
Beiträge: 1937
Registriert: 25.07.2004 15:52
Kontaktdaten:

Beitrag 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
Watch out where the huskies go, don't you eat the yellow snow...
Mehr dazu im Reiseforum InselTalk.de.
Tupperdosensucher schauen ins Geocachingforum.
Antworten

Zurück zu „Coding & Technik“