2017-09-10 36 views
2

人がビデオをアップロードできるWebサイトがあり、ユーザーがビデオをアップロードすると、フォルダにvideosという新しいフォルダが作成されます。 user/Someone/videos/videonamevideosには、ユーザーがアップロードしたすべての動画があります。次に、ビデオをデータベースに挿入します。うまくいきますが、これらのビデオを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変数も配列でなければなりませんが、その後、私は別の配列をプッシュすることができません。

答えて

1

は、なぜあなたは、単にファイル名に

while($row = $result->fetch_assoc()){ 
    echo '<video width="400" controls><source src="user/'.$u.'/videos/'. $row["video_file"].'"> 
     </video>'; 
} 
+0

ほとんど良い解決策をエコーではないが、私はこれにあなたの答えを修正したい: 'しばらく($行= $ result-> FETCH_ASSOC()){ \tエコー" '; \t} ' –

+0

そして私は理由はわかりませんが、最初のビデオは表示されません。 –

+0

あなたのコードには($ u)が表示されません。 – scaisEdge

関連する問題