【问题标题】:Simple MySQL if query syntax简单的 MySQL if 查询语法
【发布时间】:2012-04-12 01:44:10
【问题描述】:

编辑:我下面的表架构按照建议的规范化程度很差,我已经对其进行了修改。

【问题讨论】:

  • 运行查询时会发生什么?
  • 等等,为什么选择后有变量?您要获取的列是什么?您是否为每个用户设置了专门的专栏?
  • 它告诉我“它是空的!”。我试图回显 ($result) 但它什么也没给我?
  • 我正在使用 PHP 来编写这些 SQL 语句。变量是从 android 表单中提取的值,并且与变量一样有效。但是,我的 SQL 不是很好,我认为这就是错误的来源。
  • 能否请您添加您的表结构,我认为问题是查询错误

标签: mysql sql syntax if-statement


【解决方案1】:

尝试在您的情况下使用mysql_num_rows()

if (mysql_num_rows($result) == 0) {
    echo (" It's NULL!");
    // if null, run a query!
} else {
echo (" It's not null...");
// if not null, echo back meessage saying not null.
}

编辑:没关系

EDIT2:天哪,我现在看到了,试试

$row = mysql_fetch_assoc($result);

if ($row[$userid] == NULL) {
    echo (" It's NULL!");
    // if null, run a query!
} else {
echo (" It's not null...");
// if not null, echo back meessage saying not null.
}

【讨论】:

  • 奇怪的是,我让每个用户都有单独的列,这样我就可以将他们的问题回复存储在每个列中。检查这张我桌子的图片,看看你是否明白我的意思......s21.photobucket.com/albums/b259/acidburn942/…
  • 您的最后一个示例可能会起作用,但是将用户存储在列中是一个非常糟糕的主意。 OP:您可能需要重新考虑您的数据架构,因为它的规范化程度很差,而且根本无法扩展。
  • 我知道,只是试图解决当前的问题,甚至没有指出可能存在的sql注入漏洞。重新设计该数据库将是最好的解决方案
  • Pierre-OlivierBourgeois 和 Uriel_SVK 非常感谢您的意见。乌列尔的解决方案现在确实解决了问题,但我一直在学习!我将更多地研究我的数据库结构并尝试使其变得更好。谢谢你的提示皮埃尔!
【解决方案2】:

尝试使用mysql_num_rows() 来检查返回的行数,

if (mysql_num_rows($result) == 0)
{
    echo (" It's NULL!");
    // if null, run a query!
}
else
{
    echo (" It's not null...");
    // if not null, echo back meessage saying not null.
}

另外,您要选择哪一列?

【讨论】:

  • 这是我的表结构:s21.photobucket.com/albums/b259/acidburn942/… 我要选择的列是用户 ID,根据某个问题 ID 检查它是否为空......
  • 您为每个用户使用了一列?这很难标准化。看看这个:asciiflow.com/#5355087028660164263/2004018477
  • 然后,您可以执行SELECT COUNT(1) from userAnswers WHERE id = $qid AND userid = $userid,它将返回此特定条件的行数。
  • 非常感谢,这是我第一次尝试问答数据库。我将更多地研究我的数据库结构并尝试改进它! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 2012-07-26
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
相关资源
最近更新 更多