如何使用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,您能详细说明一下吗?编辑:没关系,我明白你的意思了,谢谢!我会给你一个正确的答案,但你是在评论中这样做的:)