在我的“详细信息”表格中,当完整字段为“0”时,我希望在“1”时显示某个图像,我希望显示不同的图像。目前只显示第二张图片(当完整字段为1时) 这是我正在使用的代码:
$id = $_SESSION['user_id'];
$isFinished= mysql_query("SELECT complete From details where user_id = $id") ?>
<p> <img src='<?php if($isFinished) echo "correct.png"; else echo "incorrect.png"; ?>' /><a href="details.php">Details</p>
任何想法都会很棒!
答案 0 :(得分:2)
您的查询的WHERE
子句指定仅选择complete
='1'
所以你只会在结果中得到1
。
您应该完全从WHERE
子句中删除它,并让您的php IF语句决定是否complete = '1'
答案 1 :(得分:1)
您的SQL语句仅选择complete ='1'的条目。 你应该从你的陈述中删除“and complete ='1'”。
Edite: 同样如上所述,if语句仅检查您的查询是否返回了某些内容或出现错误。
应该是
if($isFinished['complete'] == '1') {echo "correct.png";}else{echo "correcy.png";}
答案 2 :(得分:1)
功能
function getOne($query){
$res = mysql_query($query);
if (!$res) {
trigger_error("db: ".mysql_error()." in ".$query);
return FALSE;
}
if ($row = mysql_fetch_row($res)) {
return $row[0];
}
}
代码
$sql = "SELECT complete From details where user_id = ".intval($_SESSION['user_id']);
$isFinished = getOne($sql);
?>
<p>
<img src='<?php if($isFinished): ?>correct.png<? else: ?>incorrect.png<? endif ?>' />
<a href="details.php">Details</a>
</p>
答案 3 :(得分:0)
mysql_query
函数仅在查询无效时才返回false
。如果零行,则不返回false。
您应该使用mysql_num_rows
函数来确定是否存在行,或者使用mysql_fetch_*
函数来获取完成值。
示例1(与原始(未经编辑)的问题类似):
$result = mysql_query("SELECT 1 From details where user_id = $id where complete = 1");
$isFinished = mysql_num_rows($result);
示例2(替代方案):
$result = mysql_query("SELECT complete From details where user_id = $id");
$record = mysql_fetch_assoc($result);
$isFinished = $record['complete'];
答案 4 :(得分:0)
这是整个代码吗?
在这种情况下,$ isFinished不是从db中检索的内容:如果查询错误则mysql_query返回false,否则返回可以获取结果的对象。
在这种情况下,如果($ isFinished)始终为true,则查询正确!
你错过了fetch part ater query执行!
http://php.net/manual/en/function.mysql-query.php
例如:
$id = $_SESSION['user_id'];
$result = mysql_query("SELECT complete From details where user_id = $id");
$isFinished= mysql_num_rows($result);
<p> <img src='<?php if($isFinished) echo "correct.png"; else echo "incorrect.png"; ?>' /><a href="details.php">Details</p>
这样,如果查询返回一行或多行,则$ isFinished为1或更多,否则$ isFinished为0.您的if - else应该正常工作
注意我没有更改原始SQL,如果需要,请更改它。
答案 5 :(得分:0)
它应该是这样的:
$id = $_SESSION['user_id'];
$result= mysql_query("SELECT complete From details where user_id = $id and complete='1'") ?>
$row = mysql_fetch_array( $result );
<p>
<?php if($row['complete']): ?>
<img src="correct.png"/>
<?php else: ?>
<img src="incorrect.png"/>
<?php endif; ?>
<a href="details.php">
Details</a>
</p>