仅显示包含文字

时间:2017-05-25 03:06:01

标签: php html html5

我网站的一部分显示了所有注册人员的列表,但由于他们没有完成注册,因此其中一些名称中没有名字和姓氏。目前我有它所以它显示列表中的每一个单独,并显示具有名称和没有名称的那些,所以我有很多空白。如何才能使它只显示实际名称字段中带有文本的文件?

这是我的代码:

<?php

include "../newsmile/db.php";
$select = mysqli_query($con,"SELECT * from register where status = '0'");
$count = 1;

while($select1= mysqli_fetch_array($select))
{
    $selectname = mysqli_query($con,"SELECT * from shipping_detail where User_id = '".$select1['id']."'");
    $selectname1= mysqli_fetch_array($selectname);
    echo '<tr>
        <td class="center">'.$count.'</td>
        <td>'.$selectname1['First_name']." ".$selectname1['Last_name'].'</td>
        <td>
            <div class="panel-body buttons-widget">
                <button type="button" class="btn btn-info userinfo" id = "'.$select1['id'].'">Info
                </button>
            </div>
        </td>
    </tr>';
    $count++;                                                   
}

?>

2 个答案:

答案 0 :(得分:1)

在输出行

之前添加一个保护语句
while($select1= mysqli_fetch_array($select))
{
    $selectname = mysqli_query(
        $con,
        "SELECT * from shipping_detail where User_id = '".$select1['id']."'"
    );
    $selectname1= mysqli_fetch_array($selectname);

    if (empty($selectname1['First_name'])) {
        continue;
    }

    if (empty($selectname1['Last_name'])) {
        continue;
    }

    echo '<!-- table row here -->';
    $count++;
}

您还应该解决n + 1问题。

答案 1 :(得分:0)

不要使用SQL字符串连接,这会导致安全问题 如果将名字和姓氏列的默认值设置为null,则可以尝试类似下面的内容

while($select1= mysqli_fetch_array($select))
{
$stmt = $conn->prepare("SELECT * from shipping_detail where User_id = ? and first_name<>null and last_name<>null");
$stmt->bind_param("s", $select1['id']);
//   i - integer
//   d - double
//   s - string
//   b - BLOB



$stmt->execute();

$result = $stmt->get_result();
        while ($selectname1= $result ->fetch_array())
        {


    echo '<tr>
        <td class="center">'.$count.'</td>
        <td>'.$selectname1['First_name']." ".$selectname1['Last_name'].'</td>
        <td>
            <div class="panel-body buttons-widget">
                <button type="button" class="btn btn-info userinfo" id = "'.$select1['id'].'">Info
                </button>
            </div>
        </td>
    </tr>';

        }   
     $count++;    
     $stmt->close();                                               
}

如果您没有设置默认值,请按以下步骤更改查询

$stmt = $conn->prepare("SELECT * from shipping_detail where User_id = ? and first_name<>'' and last_name<>''");

您可以阅读 here