NULLSpaces的PHP输出

问题描述 投票:0回答:2

我想用php从mysql输出。我输出的SQL查询包含了几个连接,其中一些值是NULL。当我呼应输出时,我得到了NULL值的空位。我怎样才能消除这些空位?我在要输出的每个值之间都有换行符,但NULL值只是放置了一个空位。所以我的输出看起来有点像这样。

它看起来像什么?

Dave Smith 主题1

主题3

约翰-史密斯科目一科目二

主题4

我想让它看起来像什么

Dave Smith 主题1 主题3

约翰-史密斯科目一科目二科目四

我试了几个php的trim函数,但好像都不行。相关代码如下。

$resultSet = $db->query ("...my query");  

echo $resultSet -> num_rows;

While($rows = $resultSet ->fetch_assoc())

{
  $FirstName = ($rows['First_Name']);
  $Surname =   ($rows['Surname']);
  $subject1 = ($rows['subject1']);
  $subject2 = ($rows['subject2']);
  $subject3 = ($rows['subject3']);
  $subject4 = ($rows['subject4']);

  $output .= "<p> $FirstName $Surname <br/> Chosen Subjects <br/> $subject1 <br/> $subject2 <br/> 
  $subject3 <br/>  $subject4 </p>";
 }
php mysql null trim
2个回答
0
投票

当我回声输出时,我得到空空格的NULL值。

$subject1 = ($rows['subject1']);
$subject2 = ($rows['subject2']);
$subject3 = ($rows['subject3']);
$subject4 = ($rows['subject4']);

  $output .= "<p> $FirstName $Surname <br/> Chosen Subjects <br/> $subject1 <br/> 
  $subject2 <br/>  $subject3 <br/>  $subject4 </p>";

你的空位的原因是你把 <br/> 不管是否有任何PHP值存在。

建议的替代方法。

  • 把值放到一个数组中。
  • 清除任何 falsey null 数组中的值
  • implode 数组中的值到最后的字符串中。

a) 将数值放入一个数组中。

$subject[1] = $rows['subject1'];
$subject[2] = $rows['subject2'];
$subject[3] = $rows['subject3'];
$subject[4] = $rows['subject4'];

b) 清理出 null 价值观 参考

$subjectOutput = array_filter($subject, 'strlen');

注:如果你不关心其他的。falsey 值,如0,那么你可以简单地做一个更基本的 array_filter() 诸如 = array_filter($subject);.

c) 爆炸 的数组。

$subjectString = implode($subjectOutput, '<br/>');

例子:

$subject[1] = "horses";
$subject[2] = 12;
$subject[3] = 0;
$subject[4] = null;
$subject[5] = "cats";

$subjectOutput = array_filter($subject, 'strlen');

//$subject[1] = "horses";
//$subject[2] = 12;
//$subject[3] = 0;
//$subject[5] = "cats";

/***
 * simply print the sting and voila!
 ***/
$subjectString = implode($subjectOutput, '<br/>');

// $subjectString = "horses<br/>12<br/>0<br/>cats";

 $output .= "<p> $FirstName $Surname <br/> Chosen Subjects <br/> ".$subjectString." </p>";

0
投票

你可以试试下面的代码

$output = "<p>{$FirstName} {$Surname}<br/>Chosen Subjects:<br/>";
$output .= (!empty($subject1)) ? "{$subject1}<br/>" : "";
$output .= (!empty($subject2)) ? "{$subject2}<br/>" : "";
$output .= (!empty($subject3)) ? "{$subject3}<br/>" : "";
$output .= (!empty($subject4)) ? "{$subject4}<br/>" : "";
$output .= "</p>";
© www.soinside.com 2019 - 2024. All rights reserved.