将 mysql 数据库中的多行存储到一个变量中


Store multiple rows from mysql database into one single variable

这对我来说真的很难,我正在尝试将 MySQL 表中的多行存储到单个变量中


$mysql_statementJc = "SELECT * FROM `dog`.`cat` WHERE `name` = '$name'";
$mysql_commandJc = mysql_query($mysql_statementJc);

 while($row = mysql_fetch_array($mysql_commandJc)){
    $followI = $row['industry'];
    $groupConcat = $followI . " OR ";
    echo $groupConcat;
}

这是我的批准,所以在这一切结束时,我可以将"sam,john,bob"保存为$groupConcat然后可以在其他地方使用。

非常感谢。

你想创建一个串联的字符串,php 有.=语法:

$groupConcat='';
 while($row = mysql_fetch_array($mysql_commandJc)){
    $groupConcat .= $row['industry'] . " OR ";
}
    echo $groupConcat; //no point echoing inside the loop

有时更好的方法是使用数组并implode()

$groupConcat=array();
 while($row = mysql_fetch_array($mysql_commandJc)){
    $groupConcat[] = $row['industry'];
}
    echo implode(' OR ',$groupConcat);

每次通过循环时,将所需的值添加到数组中。 然后,在循环之后,使用 implode() 函数创建所需的输出。

while($row = mysql_fetch_array($mysql_commandJc)){
    $followI = $row['industry'];
    $resultArray[] = $followI;
}
$groupConcat = implode(" OR ", $resultArray);
echo $groupConcat;

请注意,您应该真正停止使用 mysql 库,转而使用 mysqli 或 PDO。

您也可以执行以下操作:

$followl = array();
while($row = mysql_fetch_array($mysql_commandJc))
{ 
    $followl[] = $row['industry'];
}
$groupConcat = implode(" OR ",$followl);
echo $groupConcat;

一些解释

将值存储到数组中$followl然后使用implode()函数与 OR 一起内爆。

旁注

请使用 mysqli_*PDO mysql_*因为 PHP 7 中已弃用且不再可用。