【问题标题】:Using if else within mysql query在 mysql 查询中使用 if else
【发布时间】:2012-03-27 09:44:57
【问题描述】:

我会保持简短:谁能告诉我为什么这不起作用? “else”部分有效,if 位无效。

<?php

$sql2 = mysql_query("SELECT * FROM products_new WHERE id='" . $result['id_kit'] . "'");

    while($row = mysql_fetch_assoc($sql2)){

    if ($result['id_kit'] == 0) {

            ?>

            //DO THIS BIT IF $result['id_kit'] IS "0". 

            <?php
            }

    else {
            ?>

            //DO THIS BIT IF $result['id_kit'] IS ANYTHING OTHER THAN "0".  THIS BIT WORKS FINE

    <?php
    }
?>
<?php
    }
    ?>

【问题讨论】:

  • “if”语句在哪里?
  • 什么是$result?您的意思是输入$row
  • 这还不是很清楚......你能发布整个(风格良好的)代码吗?
  • “如果”呢?请格式化您的代码,使其可读!
  • 为什么要结束 php 部分?你知道你可以在 php 中编写 html,比如 echo '
    ';跨度>

标签: php mysql if-statement


【解决方案1】:

你最好使用:

<?php while($row = mysql_fetch_assoc($sql2)): ?>
    <?php if (statement): ?>
        some html here.
    <?php else: ?>
        some html.
    <?php endif; ?>
<?php endwhile; ?>

更容易阅读和理解。

它不起作用,因为$result['id_kit'] != 0

【讨论】:

  • 你检查过你的 if 条件 $result['id_kit'] != 0 吗?
【解决方案2】:

更改以下内容

改变

                    $sql2 = mysql_query ( "SELECT * FROM products_new WHERE id='" . $result ['id_kit'] . "'" );

                <?php 
                    while ( $row = mysql_fetch_assoc ( $sql2 ) ) {

                    $sql2 = mysql_query ( "SELECT * FROM products_new WHERE id='" . mysql_real_escape_string($result['id_kit']) . "'" );
                    while ( $row = mysql_fetch_assoc ( $sql2 ) ) {

改变

if ($result['id_kit'] == 0) {

if (empty($row)) {

你应该有一个工作代码

谢谢 :)

【讨论】:

  • 嗨,爸爸,感谢您的回复。我按照您的建议进行了更改,但不幸的是,它使代码完全停止工作,直到我再次将 $_REQUEST 更改为 $result。
  • 你在哪里得到你的 $result 表格??????你能发布完整代码而不是部分代码吗..这样..我可以提供帮助..也可以尝试格式化你的代码...
  • 谢谢,整个代码现在已经发布了,我可以尽可能地格式化它,而无需重新编写整个代码
  • 我会查看它.. 并在几分钟内回复您
  • 你的 PHP 代码中可能会出现错误......就像在另一个 &lt;?php 标签中使用 &lt;?php......更新你的代码并发布你的输出......谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2021-03-03
相关资源
最近更新 更多