2012-03-11 142 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试图通过忽略错误为新用户带来一点点友善 - 起初很好,但最终只是隐藏了真正的问题。