Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从数据库中的某个字段创建一个包含所有数据的字符串-PHP_Php_Mysql_Database_Variables_Rows - Fatal编程技术网

从数据库中的某个字段创建一个包含所有数据的字符串-PHP

从数据库中的某个字段创建一个包含所有数据的字符串-PHP,php,mysql,database,variables,rows,Php,Mysql,Database,Variables,Rows,我有一个博客CMS,在数据库中,每个博客最多有10个标签。对于每一行,这些标记仅存储为逗号分隔的值 我想选择每一行,然后获取每个字段的数据,然后将其放入一个字符串中 例如: $query = "SELECT * FROM blogs"; $query_params = array(); try{ $stmt = $db->prepare($query); $result = $stmt->execute($query_params); $row = $stmt-

我有一个博客CMS,在数据库中,每个博客最多有10个标签。对于每一行,这些标记仅存储为逗号分隔的值

我想选择每一行,然后获取每个字段的数据,然后将其放入一个字符串中

例如:

$query = "SELECT * FROM blogs"; 
$query_params = array(); 
try{ 
  $stmt = $db->prepare($query); 
  $result = $stmt->execute($query_params); 
  $row = $stmt->fetch();
  $tags = $row['tags'];
} 
catch(PDOException $ex) 
{ 
  die(); 
} 

echo $tags;
这只是一个测试,但它显然只是将第一行放入$tags变量中。如何将“标记”的每个行表字段放入一个数组中

谢谢


Craig.

您需要读取循环中的所有行,并将它们连接到变量上

$query = "SELECT * FROM blogs"; 
$query_params = array(); 
$tags = '';
try{ 
  $stmt = $db->prepare($query); 
  $result = $stmt->execute($query_params); 
  while ($row = $stmt->fetch()) {
    $tags .= $row['tags'];
  }
} 
catch(PDOException $ex) 
{ 
  die(); 
} 

echo $tags;

您可以使用foreach循环和fetchAll,如下所示:

$rows = $stmt->fetchAll();
foreach ($rows as $row) {
    $tags[] = $row['tags'];
}

$oneHugeString = implode(",", $tags);

(或任何您想要的字符串格式)。

使用$stmt->fetchAll()。如果您只需要标记数据,请使用“从博客中选择标记”,而不是对整个表行进行散列。谢谢,请查看concatenate:)
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC));
$result = "";
foreach($rows as $row) {
   $result .= $row['tags'] . ", ";
}