PHP表单返回注意:数组到字符串的转换 [英] 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){
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屋!