好吧,我的代码在数据库中存在所选行时工作,它完美无缺。但问题是当我选择一个根本不存在的数据时。它给我一个错误,我的变量是未定义的。
这是脚本:
<?php
include('Nethost.php');
$patient = $_POST['patientid'];
$diagnosisid = $_POST['diagnosis'];
$pname = $_POST['patientname'];
$d = $_POST['diagnosis'];
$query = mysql_query("select objective from soapie WHERE patientid='$patient' AND subjective='$diagnosisid' LIMIT 1");
while($rows = mysql_fetch_assoc($query))
{
if($rows==NULL)
{
echo "No data";
}
else
{
$objective = $rows['objective'];
}
}
?>
我正在显示输入类型文本..
<table style="margin-left:auto; margin-right:auto">
<tr>
<td>Objective</td>
</tr>
<tr>
<td><input ID="txtobjective" name="objective" value="<?php echo "" .$objective. ""; ?>" type="text" /><br></td>
</tr>
</table>
我认为这是一个常见问题,我甚至无法解决。我刚从使用PHP的编码中恢复过来。有人可以建议我一个很好的做法来处理这类问题。提前谢谢。
答案 0 :(得分:1)
在代码之前放置$ objective =''。您的变量尚未设置。
<?php
include('Nethost.php');
$patient = $_POST['patientid'];
$diagnosisid = $_POST['diagnosis'];
$pname = $_POST['patientname'];
$d = $_POST['diagnosis'];
**$objective='';**
$query = mysql_query("select objective from soapie WHERE patientid='$patient' AND subjective='$diagnosisid' LIMIT 1");
while($rows = mysql_fetch_assoc($query))
{
if($rows==NULL)
{
echo "No data";
}
else
{
$objective = $rows['objective'];
}
}
?>
答案 1 :(得分:1)
$ fname,$ midd,$ sname,$ objective 您需要初始化您使用的所有变量,这样如果没有值,您就不会得到未定义的错误。
最佳做法是在使用变量之前初始化变量:
$objective = $fname = $sname = $midd = '';
while( $rows = mysql_fetch_assoc ( $query ) ) {
if( empty( $rows ) ) {
echo "No data";
}
else {
//check if the variable has value, otherwise set it to null
$objective = isset( $rows['objective'] ) ? $rows['objective'] : '' ;
}
}
此外,在回显变量时,您不需要&#34; 引号:
<td><input ID="txtobjective" name="objective" value="<?php echo $objective; ?>" type="text" /><br></td>
<?php echo $objective; ?>
这对你没用。
答案 2 :(得分:0)
试试这个我希望这会对你有所帮助
while($rows = mysql_fetch_assoc($query))
{
if(empty($rows))
{
echo "No data";
}
else
{
$objective = $rows['objective'];
}
}