PHP的形式返回注意:数组字符串转换(PHP form returns Notice: Array

2019-10-18 08:11发布

我必须处理到达下面的代码的简单形式。

include("connect.php");

$items = array_key_exists('equipment', $_POST) ? $_POST['equipment'] : '';

if(!empty($items))
{
    if ($_POST["equipment"] == "computer") {
        echo "checked computer!";
    } else if($_POST["equipment"] == "projector")
    {
        echo "checked projector!";

        $sql = "SELECT room_name, day_avail, from_time, to_time, equip_name
        FROM rooms
        JOIN equipment ON (equipment.room_id = rooms.room_id)
        JOIN room_availability ON (room_availability.room_id = rooms.room_id)
        WHERE equip_name='Projector'
        GROUP BY day_avail";

        $myData = mysql_query($sql, $conn) or die(mysql_error());

        $row = mysql_fetch_array($myData);
        echo $row;
        // echo mysql_num_rows($myData);

    } else if($_POST["equipment"] == "whiteboard")
    {
        echo "checked whiteboard!";
    } else if($_POST["equipment"] == "visualiser")
    {
        echo "checked visualiser!";
    } else if($_POST["equipment"] == "desk")
    {
        echo "checked desk!";
    }
} else {
    echo "> Sorry, You have not made a selection.";
}

表单会通过jQuery的AJAX调用像所谓的:

<script>
  $('form').submit(function(){
      var str = $(this).serialize();
      $.ajax({
        url: "userLogic.php",
        type: "post",
        data: str,
        cache: false
      }).done(function( html ) {
        $("#rooms_wrap").append(html);
      });
  });
</script>

projector被选中复选框,表单提交,我希望从数据库中获取房间的名单出来,让我可以通过PHP foreach循环打印出来。 相反,我得到的错误说:

注意:数组字符串转换

怎样才能获得房的名单,并打印出来在foreach循环? 我知道,返回5行数据,因为mysql_num_rows当我赞同它的工作原理。

Answer 1:

echo取的字符串作为参数,但mysql_fetch_array返回阵列-你收到消息意味着阵列被转换成字符串,由被打印echo 。 尝试使用的var_dump打印出来的数组:

var_dump($row);

要打印出来的查询中使用这样的事情返回的所有行:

while($row = mysql_fetch_array($myData)) {
    echo $row["room_name"]; // for example
}


Answer 2:

您会收到错误信息:

注意:数组字符串转换

因为你这样做:

    $row = mysql_fetch_array($myData);
    echo $row;

projector被选中。

这种echo有一个数组,期权给予通知的消息。

尝试做这样的事情(例如):

while ($row = mysql_fetch_array($myData)) {
    var_dump($row);
    // or:
    // print_r($row);
}


Answer 3:

你也可以只将数组转换成像这样的字符串:

    $arr = $_POST;
    echo implode(', ', $arr);


文章来源: PHP form returns Notice: Array to string conversion