使用单循环从数据库显示视频(通过url)和所有相关信息

时间:2016-03-26 17:16:19

标签: php arrays loops video foreach

基本上,我在我的数据库中有这个列的vid表 - urlv,textacv,decribacv,languagev,levelv我需要显示数据库中的所有视频(使用url - urlv)以及我要显示的视频每个视频的名称(textacv)和描述(decribacv)以及一些标签(languagev,levelv)。

Currentely我所取得的成就是我有一个页面,我的所有视频都是通过网址从数据库中显示出来的。在这里我是如何做到的:

$conn = mysqli_connect('localhost','root','','people');

$query = "SELECT urlv, languagev, 
    levelv, textacv, decribacv FROM vid";
$fetch = mysqli_query($conn,$query);
$videos = array();
while ($row = mysqli_fetch_assoc($fetch)) {
    $videos[] = $row['urlv'];
    $language[] = $row['languagev'];
    $levelv[] = $row['levelv'];
    $textac[] = $row['textacv'];
    $decribac[] = $row['decribacv'];
}
foreach ($videos as $urlv) {

    echo "<div class='wrap'>
        <div class='video-wrap'>
        <div class='blockvidname'>
        <div class='name'><legend class='name-top'>".
            $textac."</legend></div>
        <video class='video'controls>
        <source src='".$urlv."'>
        </video>
        <div class='name-bot'><legend class='name-bottom'>
            This is the name of  the video</legend></div>
        </div>
        <div class='side-bar-wrap'> dfdfdf </div>
        <button class='side-bar-  button'>More Info</button>
        </div>
        </div>";
}

正如您所看到的 - 我已经使用foreach循环从数据库中检索网址并显示视频,现在我需要附加&#39;从我的桌子视频中,每个视频的名称,描述和一些标签。这就是我的所作所为:

while ($row = mysqli_fetch_assoc($fetch)) {
    $videos[] = $row['urlv'];
    $language[] = $row['languagev'];
    $levelv[] = $row['levelv'];
    $textac[] = $row['textacv'];
    $decribac[] = $row['decribacv'];
}
while($row) {

    echo "<div class='wrap'>
        <div class='video-wrap'>
        <div class='blockvidname'>
        <div class='name'><legend class='name-top'>".
        $textac."</legend></div>
        <video class='video'controls>
        <source src='".$urlv."'>
        </video>
        <div class='name-bot'><legend class='name-bottom'>
            This is the name of the video</legend></div>
        </div>
        <div class='side-bar-wrap'> dfdfdf </div>
        <button class='side-bar-button'>More Info</button>
        </div>
        </div>";
}

但它根本没有显示任何东西!我用google搜索了foreach循环中的多个参数&#39;但没有找到任何可以帮助我的东西。

问题是 - 不能在我的数据库中显示单个循环中的多个数据(因为我在我的html结构中有嵌套而多个循环会制动它)。注意:我希望显示表格中的所有视频以及每个名称,描述等。我想根据数据库附加到每个视频。

非常感谢!我真的坚持这件事。提前致谢。

2 个答案:

答案 0 :(得分:1)

通过尝试将列放入自己的数组中,你会过度复杂化。它是可管理的,但不是必需的。只需在初始while循环中执行所有操作。

while ($row = mysqli_fetch_assoc($fetch)) { ?>
    <div class='wrap'>
        <div class='video-wrap'>
            <div class='blockvidname'>
                <div class='name'>
                   <legend class='name-top'><?php echo $row['textacv'] ?></legend>
                </div>
               <video class='video' controls>
                   <source src="<?php echo $row['urlv']?>">
               </video>
               <div class='name-bot'>
                   <legend class='name-bottom'>
                       This is the name of the video
                   </legend>
               </div>
           </div>
           <div class='side-bar-wrap'> dfdfdf </div>
           <button class='side-bar-button'>More Info</button>
        </div>
    </div>
<?php } ?>

然后在回显时使用行的索引。从这里开始应该很直接。

答案 1 :(得分:0)

您可以使用函数each()与数组$videos一起迭代其他数组。

试试这段代码:

$conn = mysqli_connect('localhost','root','','people');

$query = "SELECT urlv, languagev, 
    levelv, textacv, decribacv FROM vid";
$fetch = mysqli_query($conn,$query);
$videos = array();
while ($row = mysqli_fetch_assoc($fetch)) {
    $videos[] = $row['urlv'];
    $language[] = $row['languagev'];
    $levelv[] = $row['levelv'];
    $textac[] = $row['textacv'];
    $decribac[] = $row['decribacv'];
}
foreach ($videos as $urlv) {
    $textacValue = each($textac);
    $languageValue = each($language);
    $levelvValue = each($levelv);
    $decribacValue = each($decribac);

    echo "<div class='wrap'>
        <div class='video-wrap'>
        <div class='blockvidname'>
        <div class='name'><legend class='name-top'>".
        $textacValue."</legend></div>
        <video class='video'controls>
        <source src='".$urlv."'>
        </video>
        <div class='name-bot'><legend class='name-bottom'>
            This is the name of  the video</legend></div>
        </div>
        <div class='side-bar-wrap'> dfdfdf </div>
        <button class='side-bar-  button'>More Info</button>
        </div>
        </div>";
}