Schleife, bis es vorhanden ist

Sasser

Erfahrenes Mitglied
Hallo Leute!

Ich habe nochmal ein Anliegen und zwar habe ich zwei Variablen:

$row[eisen]
$row[kapital]

und diese müssen größer als:

$eisencosts
$kapitalcosts

sein. $eisencosts setzt sich aus:
PHP:
$eisencosts = $weaponinfo[eisen]*$weapon;
$kapitalcosts = $weaponinfo[kapital]*$weapon;
zusammen.

Nun möchte ich gern eine Schleife realisieren, die solange die Anzahl von $weapon runtersetzt, bis die ersten beiden Variablen größer als die zweiten sind!
 
PHP:
do {
  $eisencosts = $weaponinfo[eisen]*$weapon; 
  $kapitalcosts = $weaponinfo[kapital]*$weapon;
  $weapon--;
}
while (($row[eisen] + $row[kapital]) < ($eisencosts + $kapitalcosts))

oder meinste getrennt?
Dann die bedingung anders:

PHP:
while ($row[eisen] < $eisencosts && $row[kapital] < $kapitalcosts)

Hab ich dich richtig verstanden?
 
Ich meine es so:

PHP:
do {
  $eisencosts = $weaponinfo[eisen]*$weapon; 
  $kapitalcosts = $weaponinfo[kapital]*$weapon;
  $weapon--;
}
while (($eisencosts <= $row[eisen]) && ($kapitalcosts <= $row[kapital])

Ich danke dir! Stehe grad auf dem Schlauch, aber ich möchte dann ausgeben "OK" oder so, wenn die Bedingungen zutreffen!
 
Also ich habs jetzt so gemacht, aber da bekomme ich nichts angezeigt:

PHP:
do
{
$eisencosts = $weaponinfo[eisen]*$weapon;
$kapitalcosts = $weaponinfo[kapital]*$weapon;
$weapon--;
}
while (($eisencosts <= $row[eisen]) && ($kapitalcosts <= $row[kapital]))


if ($weapon != "0")
{

#### MACH ####

}


Könnt ihr mir helfen? Also es soll dann etwas ausgeführt werden, aber nur wenn $weapon nicht 0 ist!
 
Ich kann nicht sagen, warum das folgende nicht funktioniert:

PHP:
do
{
$weapon--;
$eisencosts = $weaponinfo[eisen]*$weapon;
$kapitalcosts = $weaponinfo[kapital]*$weapon;
}
while (($row[eisen] < $eisencosts) && ($row[kapital] < $kapitalcosts))

Ist da was an der Sytax falsch? Ich bekomme eine Weiße seite gezeigt! Gut, ich habe error_reporting aus, aber was ist falsch?
 
Zuletzt bearbeitet:
Sagt mal kann das daran liegen, da die Schleife innerhalb einer Schleife sich befindet?

PHP:
foreach ($weapons as $id => $weapon)
{
do
{

}
WHILE ( )

}

Oder an was soll das liegen? :confused:
 
Du kannst das Ganze auch verkürzen:
PHP:
$weapon = min(
	floor($row['eisen']/$weaponinfo['eisen']),
	floor($row['kapital']/$kapitalcosts)
);
 
Also ich habs jetzt so gemacht, aber da bekomme ich nichts angezeigt:

PHP:
do
{
$eisencosts = $weaponinfo[eisen]*$weapon;
$kapitalcosts = $weaponinfo[kapital]*$weapon;
$weapon--;
}
while (($eisencosts <= $row[eisen]) && ($kapitalcosts <= $row[kapital]))


if ($weapon != "0")
{

#### MACH ####

}


Könnt ihr mir helfen? Also es soll dann etwas ausgeführt werden, aber nur wenn $weapon nicht 0 ist!

$weapon ist aber eine zahl und kein String - ich würde die Hochkomma weglassen.
So müsste es dir eig immer den "MACH"-Teil ausführen... oder?

lg
 
Zurück