Попытка выполнить цикл дважды, но с разными значениями для определенных переменных - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть игра, в которой у каждого игрока (в общей сложности 5 игроков играют) есть список характеристик производительности. Они перечислены как массивы ниже:

$balance[$i] * $marketshare[$i] 1005 * $unitcost[$i]

Где $i = 0,1,2,3,4. и представляет каждого игрока в игре. например $balance[0], $marketshare[0], $price[0], $unitcost[0] являются значения для первого игрока, $balance[1], $marketshare[1], $price[1], $unitcost[1] значения второго игрока и т. д.

teamID - это уникальный идентификатор для идентификации игрока.

У меня есть таблица, в которую мне нужно вставить эти данные, используя следующий SQL.

for ($j=0;$j<6;$j++)
{

$value[0] = $profit[$j];
    $value[1] = $marketPercent[$j];
    $value[2] = $saleprice[$j];
    $value[3] = $unitprice[$j];
    $value[4] = "500";
    $value[5] = "600";  

    for ($i=0;$i<6;$i++)
    {


        $setOutputs = mysql_query("

        INSERT INTO `output`(`outputID`, `outputType`, `outputValue`,`teamID`) 
        VALUES (NULL, '$type[$i]', '$value[$i]','$teamID[$j]')

        ") or die($setOutputs."<br/><br/>".mysql_error());
    }

}

В игре всего 5 игроков, поэтому мне нужно только $ j в команде для цикла, пока она не достигнет 0 - 5 $teamID[$j], в настоящее время она достигает 6 и вызывает ошибку, так как для этого игрока нет данных.

Как я могу изменить свой код для этого?

Я уверен, что это просто, я просто не могу разобраться с этим.

Ответы [ 3 ]

2 голосов
/ 07 февраля 2012

Вы начинаете с нуля, поэтому измените часть времени цикла for на значение меньше 5.

Итерации цикла:

0 - 1
1 - 2
2 - 3
3 - 4
4 - 5

Поэтому, если это <5, последняя итерация будет вашей пятой. </p>

1 голос
/ 07 февраля 2012

Я думаю, вам нужно изменить $j=0;$j<6;$j++ на $j=0;$j<5;$j++.

Это даст вам от 0 до 4 включительно, то есть 5 различных значений - 0 тоже значение.

1 голос
/ 07 февраля 2012

Во-первых, я равен 0,1,2,3,4, но вы зацикливаетесь до 5 (то есть 6 значений, включая 0) ..

изменить это:

for ($i=0;$i<6;$i++)

к этому

for ($i=0;$i<5;$i++)

также 0-5 - это шесть игроков, а не 5, поэтому, если у вас 5 команд, вы можете изменить это:

for ($j=0;$j<6;$j++) 

к этому:

for ($j=0;$j<5;$j++)  //i.e. 0,1,2,3,4 == 5 teams
...