1

我不明白为什么 '$taille' 数组的结果从键 [1] 而不是键 [0] 开始?
所以它显示 3 个结果而不是 4 个(隐藏第一个结果)...

<?php 
$req = $bdd->prepare('SELECT size FROM tailles_produits WHERE id_produit = ?');
$req->execute(array($_GET['id']));
$donnees = $req->fetch();

$numb_taille = array();
$taille = array();
$i = 0;
while($donnees = $req->fetch())
{
    $i++;
    $taille[$i] = $donnees['size'];
    $numb_taille['total'] = $i;
}
$total = $numb_taille['total'];

echo '<pre>';
print_r ($taille);
echo '</pre>';

$req->closeCursor();
?>

这使

ARRAY
(
    [1] => S
    [2] => M
    [3] => L
)

代替

ARRAY
(
    [1] => XS
    [2] => S
    [3] => M
    [4] => L
)

任何人都可以帮我解决这个请求吗?

4

3 回答 3

1

PHP 数组从 0 开始,因此您需要做的就是i++向下移动,直到使用完该索引中的数据

<?php 
$req = $bdd->prepare('SELECT size FROM tailles_produits WHERE id_produit = ?');
$req->execute(array($_GET['id']));
$donnees = $req->fetch();

$numb_taille = array();
$taille = array();
$i = 0;
while($donnees = $req->fetch())
{
    $taille[$i] = $donnees['size'];
    $numb_taille['total'] = $i;
    $i++; //iterate after your calculations are done
}
$total = $numb_taille['total'];

echo '<pre>';
print_r ($taille);
echo '</pre>';

$req->closeCursor();
?>
于 2013-04-16T14:11:55.333 回答
0

问题是你有一个额外的

$donnees = $req->fetch();

填充循环之前的语句$taille。因此,第一行的数据被提取但不存储在数组中。

于 2013-04-16T14:33:47.403 回答
0

这是因为您在将 $i 用作新数组项的键之前增加了它。

在 while 循环结束时进行增量。

于 2013-04-16T14:12:37.893 回答