作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一个 PHP 新手,如果这是一个愚蠢的问题,我深表歉意,但我自己无法解决这个问题,因此非常感谢您的帮助!
我正在尝试为事件 Web 应用程序创建修改页面。它似乎在工作,除非我尝试验证最终的 if/else 语句。此语句返回 $row[0] 的值并检查它是否 == NULL。如果为 NULL,它应该向用户返回一个回显“此事件不存在”,如果有一个值,它会向用户显示一个文本框矩阵,他们可以在其中更改数据。
目前在找到数据时,else 语句可以正常工作,但在没有数据时无法识别原始 if。与此同时,页面底部的页脚消失了!
这是代码的主体,我已经突出显示了问题区域。我知道可能有一种更有效和更高效的方法来完成这一切,但请保持简单,因为我还在学习。再次感谢。丹
<div class="round">
<div id="main" class="round">
<span class="bold">MODIFY EVENT</span><br /><br />
On this page you can modify or delete the events that are stored on the database.<br />
Be aware that you cannot undo the DELETE function.<br />
<br />
Find Event:<br />
<table>
<form name="form1" id="form1" method="post" action="
<?php echo $_SERVER["PHP_SELF"]; ?>" >
<tr><th>By Date:</td><td><input type="text" name="modifyDate"
id="modifyDate" value="dd/mm/yy" /></td></tr>
<tr><th>By Name:</td><td><input type="text" name="modifyName" id="modifyName"
value="" /></td></tr>
<tr><th>Find All:</th><td><input type="checkbox" name="modifyAll"
id="modifyAll" /><td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Search" /></td></tr>
</form>
</table>
<?PHP
if(!isset($_POST['modify'])){
if(isset($_POST['submit'])){
$moddate = $_POST['modifyDate'];
If($moddate == "dd/mm/yy"){
$date = "";
}
else{
$newDate = str_replace("/",".",$moddate);
$wholeDate = $newDate;
$dateArray = explode('.', $wholeDate);
$date = mktime(0,0,0,$dateArray[1],$dateArray[0],$dateArray[2]);
}
$name = $_POST['modifyName'];
$all = $_POST['modifyAll'];
$host = "localhost";
$user = "user";
$password = "password";
$db = "database";
$con = mysql_connect($host,$user,$password) or die('Could not connect to Server');
$dbc = mysql_select_db($db, $con) or die('Could not connect to Database');
if($all != 'on'){
$q = "SELECT * FROM events WHERE date = '$date' || title = '$name' ";
}
else{
$q = "SELECT * FROM events";
}
$result = mysql_query($q);
$row = mysql_fetch_array($result) or die(mysql_error());
//这就是问题所在!!!
if($row[0]==NULL){
echo 'This event does not exist';
}
else{
?>
<form name="form1" id="form1" method="post" action="
<?phpecho $_SERVER['PHP_SELF']; ?>" >
<?PHP
$result = mysql_query($q) or die(mysql_error());
while ($row = mysql_fetch_array($result)){
$initialDate = date('d/m/y', $row['date']);
$ID = $row['ID'];
echo '<input type="text" name="inputEmail" id="inputEmail" value="'.$initialDate.'" />';
echo '<input type="checkbox" value=$ID name="toModify[]" style = "visibility: hidden;" /><br /><br />';
}
echo '<input type="submit" name="modify" value="Modify" />
<br /><br />';
}
}
}
else{
//modify database and return echo to user
}
?>
</div>
<div id="clear"></div>
</div>
</div>
</div>
<div id="footer" class="round shadow"></div>
</body>
</html>
最佳答案
mysql_fetch_array($result)如果没有行,则返回 false
,因此即使结果中没有任何内容,它仍可能返回 false
并且您的 if($row[ 0] == null)
也评估为 false。
换句话说,您应该对查询的返回结果进行更稳健的测试,以捕获边缘情况。
正如其他人提到或暗示的那样,以下是您可以/应该做的一些事情:
关于PHP IF ELSE - 如果似乎被忽略了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5543484/
我是一名优秀的程序员,十分优秀!