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条)

报告相同问题?

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来