从数组中回显一个值

时间:2014-06-25 02:41:40

标签: php arrays echo

我从表格产品中选择了一系列产品ID和产品名称。我试图只从阵列中回显一个产品名称,但我得到的只是产品名称的第一个字母。以下是我的代码。提前感谢任何提示。

$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];

3 个答案:

答案 0 :(得分:1)

在while循环内的变量中添加括号以创建数组

while ($userinfo1 = $info1->fetchobject()) {

 $productid[] = "$userinfo1->productid";
 $productname[] = "$userinfo1->productname";

}

echo $productname[0];//this will print the first productname

我认为最好只制作1个对象数组

$array=array();
while ($userinfo1 = $info1->fetchobject()) {
   $array[] = $userinfo1;
}

echo $array[0]->productname;

答案 1 :(得分: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();

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++;
}

这样你就可以回显出数组的每个值

答案 2 :(得分:0)

您可以使用各种选项。举个例子,您可以创建一个关联数组,如下所示:

$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),你可以循环并获取set index:

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";

}