繁体   English   中英

从php中的数据库中获取分隔的数组值

[英]Fetch separated array values from database in php

我有一个表“历史”的数据库

id             title                subtitle                             file
---------------------------- ----------------------------- -------------------------------------
2    SeriesA*SeriesB*SeriesC  SessionA*SessionB*SessionC   Mircosoft.doc*Windows.docx*Server.doc
4    Objective*Punc*Blank     Shorttype*Paragraph*Match    Mircosoft.doc*Windows.docx*Server.doc

我想将该 ID 的标题、副标题和文件提取到 html 输入值。

$id = $_GET['id'];
$get_history = mysqli_query($mysqli, "SELECT * FROM history WHERE id=".$id."");
$rows = array();
while($row = mysqli_fetch_assoc($get_history))
$rows[] = $row;
foreach($rows as $row) {    
    $title = explode("*" , $row['title']);
    $subtitle = explode("*" , $row['subtitle']);
    $file = explode("*" , $row['file']);    
}                   

<html>
    <body>
        Title: <input type="text" name="name[]" value="<?php echo $title; ?> "/><br>
        Subtitle: <input type="text" name="title[]" value="<?php echo $subtitle; ?> "/><br>
        File: <input type="file" name="file[]" value="<?php echo $file; ?> "/><br>
        <input type="button" class="add" value="Add"/><br>
        <input type="submit" value="submit" name="submit">
    </body>
</html>

我需要像 id=2 时的输出:

Title : SeriesA
Subtitle: SessionA
File: Mircosoft.doc
---------------------
Title : SeriesB
Subtitle: SessionB
File: Windows.docx
---------------------
Title : SeriesC
Subtitle: SessionC
File: Server.doc

查看您的值,您只需循环$name并使用$subtitle$file索引值同时打印它们,如下所示:

<?php

foreach($rows as $row) {    
    $title = explode("*" , $row['title']);
    $subtitle = explode("*" , $row['subtitle']);
    $file = explode("*" , $row['file']);    

    foreach($title as $index => $title_value){
        echo 'Title:' ,$title_value,PHP_EOL;
        echo 'Subtitle:',$subtitle[ $index ],PHP_EOL;
        echo 'File:',$file[ $index ],PHP_EOL;
        echo "----------",PHP_EOL;
    }
}   

当您分解行数据时,您有一个数组,因此您可以执行以下操作:

    foreach($name as $key => $value){
        echo 'name - '.$value;
        if(isset($subtitle[$key])){
            echo 'subtitle - '.$subtitle[$key];
        }
        if(isset($file [$key])){
            echo 'file - '.$file [$key];
        }
    }

但是,如果您不确定名称是否等于字幕和文件的数量,则可以获取数组元素的最高数量,然后这样做:

for($i = 0; $i < $highestCount; $i++){
    ...
    if(isset($subtitle[$i])){
         echo 'subtitle - '.$subtitle[$i];
    }
    ....
}

你可以试试:

$id = $_GET['id'];
$get_history = mysqli_query($mysqli, "SELECT * FROM history WHERE id=".$id."");
$row = mysqli_fetch_assoc($get_history);

下面这三个将得到从原始数据中分解出来的数据。

$title = explode("*" , $row['title']);
$subtitle = explode("*" , $row['subtitle']);
$file= explode("*" , $row['file']);

显示它们:

Title : $title[0]
Subtitle: $subtitle[0]
File: $file[0]
---------------------
Title : $title[1]
Subtitle: $subtitle[1]
File: $file[1]
---------------------
Title : $title[2]
Subtitle: $subtitle[2]
File: $file[2]

让我知道这个是否奏效 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM