PHP表单返回注意:数组到字符串的转换 [英] PHP form returns Notice: Array to string conversion

查看:123
本文介绍了PHP表单返回注意:数组到字符串的转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



  include(connect.php)

;

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

if(!empty($ items))
{
if($ _POST [equipment] ==computer){
echochecked computer !;
} else if($ _ POST [equipment] ==projector)
{
echochecked projector!;

$ sql =SELECT room_name,day_avail,from_time,to_time,equip_name
FROM rooms
JOIN设备开启(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)或die(mysql_error());

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

} else if($ _ POST [equipment] ==whiteboard)
{
echochecked whiteboard!;
} else if($ _ POST [equipment] ==visualiser)
{
echochecked visualiser!;
} else if($ _ POST [equipment] ==desk)
{
echocheck desk!;
}
} else {
echo>对不起,您还没有做出选择。
}

表单通过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>

选中投影机复选框,并且提交的表单,我希望从数据库中获得房间列表,以便我可以通过PHP foreach循环打印出来。相反,我得到的错误是:


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


如何获取房间列表,并将其打印到foreach循环中?我知道返回了5行数据,因为 mysql_num_rows 可以在我回显时使用。



任何帮助将不胜感激。

解决方案

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

 的var_dump($行); 

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

  while($ row = mysql_fetch_array($ myData)){
echo $ row [room_name]; //例如
}


I have a simple form that arrives at the following code to be processed.

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

The form gets called via a jQuery AJAX call like so:

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

When the projector checkbox is selected, and the form submitted, I was hoping to get the list of rooms out from the database, so that I may print them out via a PHP foreach loop. Instead I get the error saying:

Notice: Array to string conversion

How can I obtain the list of rooms, and print them out in a foreach loop? I know that 5 rows of data are returned, because the mysql_num_rows works when I echo it out.

Any help would be greatly appreciated.

解决方案

echo takes string as parameter but mysql_fetch_array returns array - message that you received means that array is converted to string to be printed by echo. Try to use var_dump to print out the array:

var_dump($row);

To print out all the rows returned by query use something like this:

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

这篇关于PHP表单返回注意:数组到字符串的转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆