2012-03-11 136 views
0

我是一名PHP新手,因此請體諒。

我試圖通過URL將doc_id(在下面的代碼中)傳遞給另一個頁面。不幸的是,在地址欄顯示出來,當我點擊這個鏈接,是DOC_ID =

echo'<td><a href="view_profile.php?doc_id='.$row[doc_id].'" onclick="return confirm(\'Do you wish to view this record?\');">View Profile</a></td>'; 

此鏈接實際工作的其他頁面。我無法弄清爲什麼它不能在我現在使用的那個上運行。有任何想法嗎?

任何建議將不勝感激。

該行是這樣的:

if($SearchBySpec) { $query="SELECT * FROM doctor where specialization='$SearchBySpec'"; $result=mysql_query($query) or die('Error executing select query'.mysql_error()); 



echo'<table border="1" cellspacing="1">'; echo'<tr align="center">'; echo'<td bgcolor=#81F7D8 width="80" class="auto-style2"><strong>Specialization</strong></td>'; echo'<td bgcolor=#81F7D8 width="80" class="auto-style2"><strong>Last Name</strong></td>'; echo'<td bgcolor=#81F7D8 class="auto-style2" style="width: 103px"><strong>First Name</strong></td>'; echo'<td bgcolor=#81F7D8 width="80" class="auto-style2"><strong>Middle Initial</strong></td>'; echo'<td bgcolor=#81F7D8 width="90" class="auto-style2"><strong>School</strong></td>'; echo'<td bgcolor=#81F7D8 width="80" class="auto-style2"><strong>Hospital Assigned</strong></td>'; 

while($row=mysql_fetch_array($result)) { echo "<tr align=center>"; echo "<td>$row[specialization]"; echo "<td>$row[last_name]"; echo "<td>$row[first_name]"; echo "<td>$row[middle_name]"; echo "<td>$row[school]"; echo "<td>$row[hospital_assigned]"; 

} 

//echo"<td><a href='view_profile.php?doc_id=".$row[doc_id]."'>View Profile</a></td>"; echo'<td><a href="view_profile.php?doc_id='.$row[doc_id].'" onclick="return confirm(\'Do you wish to view this record?\');">View Profile</a></td>'; //echo'<td><a href="view_profile.php?doc_id='.$row[doc_id].'" onclick="return confirm(\'Do you wish to view this record?\');">View Profile</a></td>'; echo "<tr><td>There are ". mysql_num_rows($result). " record(s)found.</td></tr>"; echo "</table>" ; 

} 
+0

好吧,$行不包含你認爲它包含的內容 - var_dump($ row)並且看看你得到了什麼,並且確保你已經啓用了所有的錯誤報告。 – 2012-03-11 10:18:10

+0

聽起來像$ row [doc_id]是空的。如果你var_dump($ row)'',你會得到什麼? – 2012-03-11 10:18:41

+0

嘗試顯示$ row [doc_id]。它顯示了什麼? – Oleg 2012-03-11 10:19:37

回答

0

DOC_ID需要加引號。

$row['doc_id']; 

此外,你在哪裏定義$行?如果是這樣的話:

$row=$_GET; // or 
$row['doc_id']=$_GET['doc_id']; 

然後你很好。

+0

PHP將假定由於沒有常數名爲'doc_id',所以你的意思是'doc_id''。還會有一個警告,例如:'PHP Notice:使用未定義的常量doc_id - 假定'doc_id'',但它仍然會給你相同的返回值。 – nickf 2012-03-11 10:23:18

+0

除非有一個常量名稱doc_id。你是對的,但無論如何,他仍然應該消除歧義,用引號和好習慣。 – DanRedux 2012-03-11 10:25:14

0

那麼,顯然$row變量沒有一個doc_id(你應該引用,順便說一句:$row['doc_id'])。聽起來好像在這條線之前可能出現了問題。嘗試執行print_r($row)以查看您實際擁有的數據。

此外,請確保您打開了錯誤報告。 PHP試圖通過忽略錯誤爲新用戶帶來一點點友善 - 起初很好,但最終只是隱藏了真正的問題。