人がビデオをアップロードできるWebサイトがあり、ユーザーがビデオをアップロードすると、フォルダにvideos
という新しいフォルダが作成されます。 user/Someone/videos/videoname
とvideos
には、ユーザーがアップロードしたすべての動画があります。次に、ビデオをデータベースに挿入します。うまくいきますが、これらのビデオをHTML video
タグでエコーしようとすると問題が発生します。ユーザーはさらに多くの動画をアップロードできるので、$url
と呼ばれるarray
を作成しました。次に、そのユーザーに属しているvideos
($sql = "SELECT * FROM videos WHERE user=?";
)を選択します。次に、すべてのビデオアイテムをその$url
配列にプッシュし、私はforeach
ループでビデオをエコーします。そして、ここに何か間違っています。重複があるので、1つの動画がさらにエコーされ、URLが欠落しています。
whileループ内でforeachループを使用して値をエコーする
コード:
$echo_videos = "";
$items = "";
$url = array();
$sql = "SELECT * FROM videos WHERE user=?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s",$u);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result->fetch_assoc()){
$name = $row["video_file"];
$items .= "user/$u/videos/$name";
array_push($url, $items);
foreach ($url as $key) {
$echo_videos .= '<video width="400" controls><source src="'.$key.'"></video>';
}
}
PS:たぶん$items
変数も配列でなければなりませんが、その後、私は別の配列をプッシュすることができません。
ほとんど良い解決策をエコーではないが、私はこれにあなたの答えを修正したい: 'しばらく($行= $ result-> FETCH_ASSOC()){ \tエコー" '; \t} ' –
そして私は理由はわかりませんが、最初のビデオは表示されません。 –
あなたのコードには($ u)が表示されません。 – scaisEdge