循环中的PHP自动增量

时间:2014-09-28 14:57:25

标签: php mysql

这是我的第一个问题。 我面临着一个让我疯狂的问题。我是PHP的新手,我觉得这是非常简单的,我无法理解。

我有这段代码:

$busca_alimento = mysql_query("SELECT * FROM alimentos");
if (empty($busca_alimento)) { 
    echo 'Nothing found';
}

$count = 0;

while ($alimento_informacoes = mysql_fetch_array($busca_alimento)) {

    $alimento_id[$count++] = $alimento_informacoes['id'];
    $alimento_categoria[$count++] = $alimento_informacoes['categoria'];
    $alimento_nome[$count++] = $alimento_informacoes['nome'];
    $alimento_quantidade[$count++] = $alimento_informacoes['quantidade'];

}

我想获取ID,Categoria,Nome和Quantidade行,并将数据存储在这些变量中:

$alimento_id[1]
$alimento_categoria[1]
$alimento_nome[1]
$alimento_quantidade[1]

但正在发生的事情是:

$alimento_id[1]
$alimento_categoria[2]
$alimento_nome[3]
$alimento_quantidade[4]

有谁知道发生了什么,我该如何解决这个问题?谢谢

5 个答案:

答案 0 :(得分:2)

我更喜欢这个,不需要增加:

while ($alimento_informacoes = mysql_fetch_array($busca_alimento)) {
  $alimento_id[]         = $alimento_informacoes['id'];
  $alimento_categoria[]  = $alimento_informacoes['categoria'];
  $alimento_nome[]       = $alimento_informacoes['nome'];
  $alimento_quantidade[] = $alimento_informacoes['quantidade'];
}

答案 1 :(得分:1)

嗯,你每次都在增加它。只增加一次:

while ($alimento_informacoes = mysql_fetch_array($busca_alimento)) {
    // so first loop, its just zero, 0
    $alimento_id[$count] = $alimento_informacoes['id'];
    $alimento_categoria[$count] = $alimento_informacoes['categoria'];
    $alimento_nome[$count] = $alimento_informacoes['nome'];
    $alimento_quantidade[$count] = $alimento_informacoes['quantidade'];
    // so before this line, its all zero
    $count++; // then increment
    // increment it after cycle is complete
}

答案 2 :(得分:1)

在循环中只增加一次$count

$alimento_id[++$count] = $alimento_informacoes['id'];
$alimento_categoria[$count] = $alimento_informacoes['categoria'];
$alimento_nome[$count] = $alimento_informacoes['nome'];
$alimento_quantidade[$count] = $alimento_informacoes['quantidade'];

答案 3 :(得分:1)

仅增加$ count一次,然后将其用作下标。

while ($alimento_informacoes = mysql_fetch_array($busca_alimento)) {
    $count++;
    $alimento_id[$count] = $alimento_informacoes['id'];
    $alimento_categoria[$count] = $alimento_informacoes['categoria'];
    $alimento_nome[$count] = $alimento_informacoes['nome'];
    $alimento_quantidade[$count] = $alimento_informacoes['quantidade'];

}

根据$ count的初始值以及您要使用的值,您可能需要将$count++移动到循环的末尾。

答案 4 :(得分:1)

$busca_alimento = mysql_query("SELECT * FROM alimentos");
if (empty($busca_alimento)) { 
  echo 'Nothing found';
}

$count = 0;

while ($alimento_informacoes = mysql_fetch_array($busca_alimento)) {

$alimento_id[$count] = $alimento_informacoes['id'];
$alimento_categoria[$count] = $alimento_informacoes['categoria'];
$alimento_nome[$count] = $alimento_informacoes['nome'];
$alimento_quantidade[$count] = $alimento_informacoes['quantidade'];

$count++;
}