dsgdfg30210 2016-12-16 05:14
浏览 36
已采纳

PHP数组转换为字符串

So I made a query which returns many restaurants and I put them in a variable $row:

<?php if(count($Result_restaurants)>0)
{
   foreach($Result_restaurants as $row)
    { ?>
      <div id="ForEveryRestaurant">
      <?php
      $Rest_Name = $row['name'];
      //$Rest_Name = $row;
      $stmt = $db->prepare("SELECT Restaurant.idRestaurant FROM Restaurant WHERE Restaurant.name = \"$Rest_Name\"");
      $stmt->execute();
      $idRestaurant = $stmt->fetch();

      $avg = 0;
      $rateSum = 0;
      $strcard = "SELECT rating FROM Review WHERE Review.idRestaurant = $idRestaurant";
      $stmtcard = $db->prepare($strcard);
      $stmtcard->execute();
      $result = $stmtcard->fetchAll();
      if (count($result) === 0) 
      {
        return 0;
      }
      foreach( $result as $coments) 
      {
        $rateSum += $coments['rating'];
      }
      $avg = $rateSum / count($result);
      $avg = round($avg, 1);

When I try to run my code, it prints Array to string conversion.

The problem appears in this line:

$strcard = "SELECT rating FROM Review WHERE Review.idRestaurant = $idRestaurant";

I searched about the error and I understand but I tried many resolutions and didn't solved the problem.

can someone help please?

  • 写回答

3条回答 默认 最新

  • douwu8524 2016-12-16 05:32
    关注

    You should do like the following

     $stmt->execute();
     $stmt->bind_result($idRestaurant);
     $stmt->fetch();
    

    Try For PDO:

    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    $idRestaurant = $result['idRestaurant'];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?