为mysql中的特定列预设结果?

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

我的应用程序的javascript设置为显示mysql数据的某些列,但是如果特定列(col3)中没有数据,则js不会显示col3的数据,只会显示mysql SELECT语句的其余部分,即如果col3= "",不显示col3。

在某些情况下,我希望js无论里面是否有数据都不要显示它,但我更喜欢在php中编写逻辑。

目前,如果我将 col3 保留在 select 语句之外,js 会将其显示为“未定义”。

我想知道 mysql SELECT 语句中是否有一种方法可以使 col3 等于空字符串,无论其中是否有数据?

或者我必须将每个 col3 结果设置为“”...

while ( $row=$result->fetch_assoc() ) { $row['col3']=""; $resultArray[]=$row; }

谢谢你。

php mysql select
1个回答
1
投票

您最好的选择可能是

ISNULL
或相关功能。


在 PHP 端,您可以使用

array_merge
:

将一个或多个数组的元素合并在一起,以便将其中一个的值附加到前一个数组的末尾。它返回结果数组。

例如:

$defaults = array( 'col3' => '' );
$row = array_merge( $defaults, $row );

如果您知道您的值将是

NULL
(并且并非不存在),则使用以下函数(未经测试):

function array_merge_isset() {
  $args = func_get_args();
  $result = array();
  foreach( $args as $arr ) {
    if( !is_array( $arr ) ) {
      continue;
    }

    foreach( $arr as $k=>$v ) {
      if( isset( $v ) ) {
        $result[ $k ] = $v;
      }
    }
  }
  return $result;
}
© www.soinside.com 2019 - 2024. All rights reserved.