Php 从数组中回显一个值
我从product表中选择了一组产品ID和产品名称。我试图从数组中只回显一个产品名称,但得到的只是产品名称的第一个字母。下面是我的代码。提前谢谢你的提示Php 从数组中回显一个值,php,arrays,echo,Php,Arrays,Echo,我从product表中选择了一组产品ID和产品名称。我试图从数组中只回显一个产品名称,但得到的只是产品名称的第一个字母。下面是我的代码。提前谢谢你的提示 $info1 = $conn->prepare("SELECT `productid`,`productname` FROM `$product` WHERE id = :id ORDER BY `productname` ASC "); $info1 ->bindParam(':id', $sessionid , PD
$info1 = $conn->prepare("SELECT `productid`,`productname` FROM `$product` WHERE id = :id ORDER BY `productname` ASC ");
$info1 ->bindParam(':id', $sessionid , PDO::PARAM_INT);
$info1->execute();
while ($userinfo1 = $info1->fetchobject()) {
$productid = "$userinfo1->productid";
$productname = "$userinfo1->productname";
}
echo $productname[0];
将括号添加到while循环内的变量以创建数组
while ($userinfo1 = $info1->fetchobject()) {
$productid[] = "$userinfo1->productid";
$productname[] = "$userinfo1->productname";
}
echo $productname[0];//this will print the first productname
我认为最好只制作一个对象数组
$array=array();
while ($userinfo1 = $info1->fetchobject()) {
$array[] = $userinfo1;
}
echo $array[0]->productname;
而不是这样做:
$info1 = $conn->prepare("SELECT `productid`,`productname` FROM `$product` WHERE id = :id ORDER BY `productname` ASC ");
$info1 ->bindParam(':id', $sessionid , PDO::PARAM_INT);
$info1->execute();
while ($userinfo1 = $info1->fetchobject()) {
$productid = "$userinfo1->productid";
$productname = "$userinfo1->productname";
}
echo $productname[0];
这样做:
$info1 = $conn->prepare("SELECT `productid`,`productname` FROM `$product` WHERE id = :id ORDER BY `productname` ASC ");
$info1 ->bindParam(':id', $sessionid , PDO::PARAM_INT);
$info1->execute();
$counter =0;
while ($userinfo1 = $info1->fetchobject()) {
$productid[] = "$userinfo1->productid";
$productname[] = "$userinfo1->productname";
echo $productid[counter];
echo $productname[counter];
counter++;
}
通过这种方式,您将回显数组的每个值您可以使用各种选项。例如,您可以创建一个关联数组,如下所示:
while ($userinfo1 = $info1->fetchobject()) {
$productid[] = "$userinfo1->productid";
$productname[] = "$userinfo1->productname";
}
echo $productname[0];//this will print the first productname
$items = array();
while ($userinfo1 = $info1->fetchobject()) {
$item = array(
'productid' => $userinfo1->$productid,
'productname' => $userinfo1->$productname
);
array_push($items, $item);
// or you could use native
// $uitems[] = $item;
}
这将为您提供一个数组($users
),您可以循环并获取集合索引:
foreach($items as $item) {
print_r($item); // prints the whole user item.
//print $item['productid']; /* or even print the users product id.*/
}
或者对于您要求的一个项目来说很简单:
echo $items[0]['productid'];
或者:如果您想要单独的数组,您可以按照其他答案中的说明进行操作:
while ($userinfo1 = $info1->fetchobject()) {
$productid[] = "$userinfo1->productid";
$productname[] = "$userinfo1->productname";
}
请阅读关于
fetch()
的手册,您希望它采用什么格式?您希望获得2D阵列吗?您看到的第一个字母是$productname[0]
。变量$productname
仅包含纯标量字符串,字符串上的索引[0]
检索其第一个字符