Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL选择行,如果列为空则忽略行_Php_Mysql_Dreamweaver - Fatal编程技术网

Php MySQL选择行,如果列为空则忽略行

Php MySQL选择行,如果列为空则忽略行,php,mysql,dreamweaver,Php,Mysql,Dreamweaver,使用Dreamweaver CS5/MySQL 我正在尝试设置一个查询,该查询将显示数据行,但仅当特定列中包含数据时才显示。如果Charname列为空,我不希望显示该行 当前查询可以工作,但当Charname列为空时,它也会显示行。我正在努力设置,但每次都失败了。提前谢谢 mysql_select_db($database_login_form, $login_form); $query_Recordset1 = "SELECT * FROM users"; $Recordset1 = mysq

使用Dreamweaver CS5/MySQL

我正在尝试设置一个查询,该查询将显示数据行,但仅当特定列中包含数据时才显示。如果Charname列为空,我不希望显示该行

当前查询可以工作,但当Charname列为空时,它也会显示行。我正在努力设置,但每次都失败了。提前谢谢

mysql_select_db($database_login_form, $login_form);
$query_Recordset1 = "SELECT * FROM users";
$Recordset1 = mysql_query($query_Recordset1, $login_form) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);


<?php do { ?>
<li><a href="profile.php?id=<?php echo $row_Recordset1['id']; ?>"><?php echo $row_Recordset1['Charname']; ?></a></li>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
mysql\u select\u db($database\u login\u form,$login\u form);
$query\u Recordset1=“选择*来自用户”;
$Recordset1=mysql\u query($query\u Recordset1,$login\u form)或die(mysql\u error());
$row\u Recordset1=mysql\u fetch\u assoc($Recordset1);
$totalRows\u Recordset1=mysql\u num\u rows($Recordset1);

  • 像这样更新您的查询

    SELECT * FROM users where Charname IS NOT NULL or Charname != '';
    
    还可以使用
    COALESCE()
    检查空值

    SELECT * FROM users WHERE COALESCE(Charname, '') != '';
    
    更多信息

    您还可以在php端进行检查

    假设是这样

    $Charname = $row_Recordset1['Charname'];
    if($Charname == '' || $Charname === null || is_null($Charname)){
       continue;
    }
    

    您可以使用
    COALESCE()
    将空白(空字符串)和
    NULL
    视为同一事物:

    SELECT * FROM users WHERE COALESCE(Charname, '') != ''
    

    您从来没有告诉我们“empty”的实际含义,但是一个好的猜测应该是空字符串或
    NULL

    ?您是否只需要在查询中附加“SELECT*FROM users”,使其包含一个
    WHERE column\u name NOT NULL
    子句?
    $query\u Recordset1=“SELECT*FROM users WHERE charname!=”且charname NOT NULL”这正是您所寻找的,但我会认真研究学习基本SQL,因为这确实是最基本的课程之一。从用户那里选择*,其中有些东西!="";  如果要检查所有列,请选中此项以获得更好的解决方案。对不起,为什么要使用
    do while
    do while
    将至少执行一次,即使从数据库中获取的数据是空的,但是如果您仅尝试使用
    while
    如何,谢谢:)添加Where/Null语句不会改变问题。即使Charname列为空,它仍会显示该行。不客气,通常第一个答案可以工作,但如果字符串为空,在这种情况下,第二个答案和您也可以使用php进行检查。这解决了我的问题,非常感谢。我已经花了几个小时尝试不同的方法,当正常的where/null语句不起作用时,我就陷入了困境。再次感谢你。