[英]Displaying session array variable values displays on one page but not another - php
[英]how to print the session array variable values in another page in php
這是打印所有主題名稱的程序,它是student table.i的字段名稱。將所有主題名稱存儲到一個數組中,我必須在另一個頁面中打印該數組值。所以我將該數組存儲到會話變量中但是在下一頁打印該數組時,它只打印為“數組”。
<?php
session_start();
$con=mysql_connect("localhost","root","");
mysql_select_db("cse",$con);
$sql="select * from studenttable where username='saravanan'";
$calname=array();
$i=0;
mysql_query($sql);
while($rs=mysql_fetch_field($result))
{
$colname[$i]=$rs->name;
$i++;
}
$_SESSION['subject']=$calname;
?>
in the next page i print the session variable using
<?php
session_start();
echo $_SESSION['subject'];
?>
but i am getting "Array"only as output.
how to print the all value of array what i stored into it already?
當然,你只是將Array
作為輸出..你試圖將數組轉換為字符串而沒有適用的函數。
如果要以字符串形式打印整個數組,請嘗試print_r($array);
。
此外,您當然可以使用字符串將數組連接在一起,使用implode()
..最后但並非最不重要的是,如果您需要它們,請務必使用它們的鍵來訪問數組的各個部分:
echo $_SESSION['subject']['somekeyhere'];
但是,從您的代碼$calname
,您實際上還有一些錯別字會阻止您獲取所需的數據: $calname
與您在while循環中使用的$colname
變量...將其$calname
為空數組你的課程。
更新1:
打印整個數組的另一種方法..或者更確切地說,回顯每個單獨的值:
foreach ($array as $key => $value) {
echo $value . "<br />";
}
無關:
我不建議使用mysql_*
函數來編寫新代碼。 它們不再維護,社區已開始棄用過程 。 看到紅色的盒子 ? 相反,您應該了解准備好的語句並使用PDO或MySQLi 。 如果您無法確定哪個, 本文將對您有所幫助。 如果你選擇PDO, 這是一個很好的教程 。 另請參閱為什么我不應該在PHP中使用mysql函數?
使用PDO的上述代碼示例(也修復了拼寫錯誤):
try {
$dbh = new PDO("mysql:host=localhost;dbname=cse", "root", "");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
echo "Error! Could not connect to database: " . $e->getMessage() . "<br/>";
die();
}
$stmt = $dbh->prepare("select * from studenttable where username=:username");
$stmt->bindValue(":username","saravanan");
$stmt->execute();
$calname = array();
$i = 0;
while ($rs = $stmt->fetch()) {
$calname[$i]=$rs['name'];
$i++;
}
$_SESSION['subject']=$calname;
嘗試使用<pre>
標記添加以更清晰的視圖獲取$ _SESSION。
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.