PHP表单返回Notice:数组到字符串的转换


PHP form returns Notice: Array to string conversion

我有一个简单的表单,它将到达要处理的以下代码。

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

表单通过jQueryAJAX调用调用,如下所示:

<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时它就工作了。

echo以字符串为参数,但mysql_fetch_array返回数组-您收到的消息意味着该数组被转换为字符串,由echo打印。尝试使用var_dump打印出数组:

var_dump($row);

要打印出查询返回的所有行,请使用以下内容:

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

您收到错误消息:

注意:数组到字符串的转换

因为你在做这个:

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

当检查CCD_ 6时。

这样一个使用数组进行的echo调用会向您发出通知消息。

尝试这样做(例如):

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

您也可以将数组转换为字符串,如下所示:

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