基本上,我在我的数据库中有这个列的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结构中有嵌套而多个循环会制动它)。注意:我希望显示表格中的所有视频以及每个名称,描述等。我想根据数据库附加到每个视频。
非常感谢!我真的坚持这件事。提前致谢。
答案 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>";
}