如何使用PHP分离数据库条目并将其显示为单个记录?

如何使用PHP分离数据库条目并将其显示为单个记录?,php,database,Php,Database,我曾经用符号(&)分隔数据库条目,但这会导致某些搜索问题,因此我决定在两侧用$和&符号封装条目,如: 美元这个& 但我无法将单元格的所有条目显示为单个记录。在我使用之前: $unsplitItems = $row['files']; $files = explode("@", $unsplitItems); foreach ($files as $file) { if(strlen($file)) { echo "<li>$file</li>";

我曾经用符号(&)分隔数据库条目,但这会导致某些搜索问题,因此我决定在两侧用$和&符号封装条目,如:

美元这个&

但我无法将单元格的所有条目显示为单个记录。在我使用之前:

$unsplitItems = $row['files'];

$files = explode("@", $unsplitItems);

foreach ($files as $file) {

   if(strlen($file)) {

      echo "<li>$file</li>";

   }

}
$unsplitItems=$row['files'];
$files=explode(“@”,$unsplitItems);
foreach($files作为$file){
if(strlen($file)){
echo“
  • $file
  • ”; } }
    知道如何分割记录并将数组中的所有项目显示为单个条目吗?

    你不应该这样做! 使您的记录独立于数据库条目

    制作另一个包含2个字段的db表-父记录id和您的输入字段。因此,您可以使用数据库功能进行搜索,只需一次查询,您不应该这样做! 使您的记录独立于数据库条目


    制作另一个包含2个字段的db表-父记录id和您的输入字段。因此,您将能够使用数据库功能通过单个查询进行搜索。如果您确实想这样做,请使用一个符号作为分隔符,并确保该符号未用于分隔的字符串中

    但通常情况下,您会创建3个表:

    post (id, post_text, ...)   
    tag (id, tag_name, ...)
    post2tag (post_id, tag_id)
    
    最后一个表允许您为任意帖子分配任意数量的标签


    这种SQL关系称为多对多;您可以看到它的使用示例。

    如果您确实想这样做,请使用一个符号作为分隔符,并确保该符号未在其分隔的字符串中使用

    但通常情况下,您会创建3个表:

    post (id, post_text, ...)   
    tag (id, tag_name, ...)
    post2tag (post_id, tag_id)
    
    最后一个表允许您为任意帖子分配任意数量的标签

    这种SQL关系称为多对多;您可以看到它的使用示例。

    尝试以下方法:

    $unsplitItems = $row['files'];
    
    $files = explode("@", $unsplitItems);
    
    foreach ($files as $file) {
    
       if(empty($file)) continue;
    
       $sub_record = explode('&', $file);
    
       foreach($sub_record as $sr) {
          if(empty($sr)) continue;
          $sr = substr($sr, 1);
          echo "<li>$sr</li>";
       }
    
    }
    
    $unsplitItems=$row['files'];
    $files=explode(“@”,$unsplitItems);
    foreach($files作为$file){
    如果(空($file))继续;
    $sub_record=explode('&',$file);
    foreach($sr的子记录){
    如果(空($sr))继续;
    $sr=substr($sr,1);
    回声“
  • $sr
  • ”; } }
    试试这个:

    $unsplitItems = $row['files'];
    
    $files = explode("@", $unsplitItems);
    
    foreach ($files as $file) {
    
       if(empty($file)) continue;
    
       $sub_record = explode('&', $file);
    
       foreach($sub_record as $sr) {
          if(empty($sr)) continue;
          $sr = substr($sr, 1);
          echo "<li>$sr</li>";
       }
    
    }
    
    $unsplitItems=$row['files'];
    $files=explode(“@”,$unsplitItems);
    foreach($files作为$file){
    如果(空($file))继续;
    $sub_record=explode('&',$file);
    foreach($sr的子记录){
    如果(空($sr))继续;
    $sr=substr($sr,1);
    回声“
  • $sr
  • ”; } }
    我正在制作一个标签功能,一篇文章可以被分配一个标签、一百个标签或根本没有标签。因此,这是我最简单的方法,我没有深入研究mysql的基础知识,因此我不知道如何在两个单独的表之间关联条目。如果要实现“搜索所有具有标记xyz的条目”功能,数据库必须使用这种方法进行完整的表扫描。看看和@VolkerK,我经常听说“加入”表格。我正在制作一个标签功能,一篇文章可以被分配一个标签,一百个标签,或者根本没有标签。因此,这是我最简单的方法,我没有深入研究mysql的基础知识,因此我不知道如何在两个单独的表之间关联条目。如果要实现“搜索所有具有标记xyz的条目”功能,数据库必须使用这种方法进行完整的表扫描。看看和@VolkerK,我经常听说“加入”表格。看起来很棒,我会调查的。你的代码怎么了?您只需在$file=substr($file,1)@electropportal中去掉$s,您能详细说明一下吗?编辑:没关系,我明白你的意思了,谢谢!我会给你一个正确的答案,但你是在评论中这样做的:)你的代码怎么了?您只需在$file=substr($file,1)@electropportal中去掉$s,您能详细说明一下吗?编辑:没关系,我明白你的意思了,谢谢!我会给你一个正确的答案,但你是在评论中这样做的:)