【问题标题】:avoid displaying an empty column in a row during loop避免在循环期间连续显示一个空列
【发布时间】:2014-07-21 01:47:17
【问题描述】:

我有这个表单,它从实时搜索表单中获取信息,然后如果网络所有者想要编辑它,它会转到另一个表单进行编辑。

如您所见,表单有一个订单号列,当客户为同一客户输入新订单号时,他们不会再次填写“img”列,“img”列是一个图像名称和扩展名,用于链接从另一个网站。

当网络所有者获得信息时,它会正确显示所有信息,但如果没有图像名称,它会显示空图像框,如果没有图像名称,我会尝试不显示空图像这是代码,但是不幸的是它不起作用,因为它仍然显示空图像框有没有办法不显示该框但显示该行中的所有其他信息?

提前致谢!

$ordNum = $_POST['submit']; 

if(isset($ordNum) === true){
    $name   = $_POST['name'];
    $sql = "SELECT * FROM orders WHERE name='$name'"; 
    $qry = mysqli_query($db_conx,$sql); 

    while($row = mysqli_fetch_array($qry)){
        $resName   = $row['name'];
        $resTable  = $row['tableName'];
        $resImg    = $row['img'];
        $resOrdNum = $row['orderNumber'];

        echo "<form action='".$_SERVER['SELF']."' enctype='multipart/form-data' method='POST'>
        <p>Custumer Name:&nbsp;<input type='hidden' name='name' value='".htmlentities($resName)."'>".$resName."</p>
        <p>Order Number(s):&nbsp;".$resOrdNum."</p>
        <p>Tables:&nbsp;<input type='hidden' name='table' value='".htmlentities($resTable)."'>".$resTable."</p>";

        if($resImg == "" || $resImg == "0" || empty($resImg)){
            $resImg = "";
        } else {
            echo "<p><img style='border-radius:10px; margin-top:10px;' height='300' width='280' alt='orders' src='".$imgLInk.$resImg."'/><br /><br />";
        }        
        echo "<input type='submit' name='edit' value='edit'><br /><br /></form>";    
    }
}

我知道我必须防止 SQL 注入我还在努力学习 php 和 SQL 我已将代码更改为此,现在它可以工作,但是当它转到另一个要编辑的页面时.. 注意:下面的文字我只是测试它是否首先有效。

while 循环不起作用它工作了一段时间,但后来我开始编写更多代码,然后它停止工作

    $edit  = $_POST['edit'];
    $name  = $_POST['name2'];    
    $table = $_POST['table2'];  

echo $edit.$name."<br />".$table;

 if(isset($edit)){  

         $sql = "SELECT * FROM $table WHERE name='$name'"; 
         $qry = mysqli_query($db_conx,$sql); 

     while($row = mysqli_fetch_array($qry)){

         echo $row['name'];
         echo $row['phone'];

         echo "success";
     }
 }

【问题讨论】:

  • mysql (img NULL) 中的NULL 列不会在php ($resImg = NULL) 中产生NULL 值,它是一个空字符串($resImg = '')。试试if(empty($resImg)) 而不是if(is_null($resImg))
  • @Sean 好吧,我以不同的方式使用了 empty,这就是为什么它没有用,非常感谢,我离得不远了,嗯?

标签: php mysql row isnull


【解决方案1】:

您遇到问题的原因是您检查空值,而您很可能没有将值存储为“空”。试试:

    if($resImg == "" || $resImg == "0" || is_null($resImg)){
        $resImg = "";
    } else {
        echo "<p><img style='border-radius:10px; margin-top:10px;' height='300' width='280' alt='orders' src='".$imgLInk.$resImg."'/><br /><br />";
    }         

【讨论】:

  • 我修复了它是 htmlentities 和 Value ''
猜你喜欢
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 2019-06-20
  • 1970-01-01
相关资源
最近更新 更多