我正在尝试显示数组的内容。我有一个SELECT
查询,它使用WHERE
语句从数据库中传输两行;
<?php
session_start();
include 'connection.php';
$inspectit = array();
$update1 = $_POST['inspect'];
$query1 = "SELECT title, reason FROM daysoff WHERE DATE(start) = '$update1' AND gighold = 1";
$day = mysql_query($query1);
while($requesting = mysql_fetch_array($day)) {
$inspectit[] = $requesting;
}
$_SESSION['inspect'] = $inspectit;
header('Location: '. $_SERVER['HTTP_REFERER']) ;
?>
我将会话变量放入一个新变量$inspect
,在另一个页面上定义。然后我尝试使用;
<?php
session_start();
$inspect = $_SESSION['inspect'];
if($inspect == true) {
echo " </br>Name: </br><a> ". implode($inspect) ."</a></br></br>";
unset ($_SESSION['inspect']);
}
?>
如果i var_dump($inspect)
存在所有预期数据,但它看起来像是一个包含另一个数组的数组。如果我执行如上所示的代码,则会给出数组到字符串转换的通知。我哪里错了?
答案 0 :(得分:0)
<?php
session_start();
$inspect = $_SESSION['inspect'];
if($inspect) {
echo " </br>Name: </br><a> ". implode($inspect) ."</a></br></br>";
unset ($_SESSION['inspect']);
}
?>
答案 1 :(得分:0)
您正在将一个查询结果数组添加到数组中。试着改变:
从:
while($requesting = mysql_fetch_array($day)) {
$inspectit[] = $requesting;
}
为:
$inspectit = mysql_fetch_array($day);
答案 2 :(得分:0)
$_SESSION['inspect']
是一个数组,所以你可以使用像
$inspect = $_SESSION['inspect'];
if(count($inspect)>0) {
而不是
if($inspect == true) {
答案 3 :(得分:0)
试
<?php
session_start();
$inspect = $_SESSION['inspect'];
if($inspect) {
echo " </br>Name: </br><a> ". implode("-",$inspect) ."</a></br></br>";
unset ($_SESSION['inspect']);
}
?>
或者您也可以使用empty()
功能
<?php
session_start();
$inspect = $_SESSION['inspect'];
if(!empty($inspect)) {
echo " </br>Name: </br><a> ". implode("-",$inspect) ."</a></br></br>";
unset ($_SESSION['inspect']);
}
?>
答案 4 :(得分:0)
使用$inspectit = array();
将$ inspectit设置为数组,然后尝试将字符串(或非数组)$_SESSION['inspect']
设置为等于该数组。您可以将多个$_SESSION
变量迭代到$inspectit
的每次迭代,如下所示:
$n=0;
while($requesting = mysql_fetch_array($day)) {
$_SESSION['inspect'+$n] = $requesting;
$n++;
}
$_SESSION['inpect_count']=$n;
因此,您将了解使用$_SESSION['inpect_count']