我有下表中的照片,用户在其中存储基于其user_id的一堆图像。
id:1 |user_photos:image1 |user_id:3
id:2 |user_photos:image2 |user_id:3
id:3 |user_photos:image3 |user_id:3
id:4 |user_photos:image4 |user_id:2
我如何获取user_id 3数据并将其显示在图像标签中以显示该用户的3张图片。
后端数据库代码
let select_photos_sql = "SELECT * FROM photos WHERE user_id = ?";
mysql_connection.query(select_photos_sql, [session_id], function (error,
rows) {
if(error){
res.send("An error has occurred, please try again later.");
} else {
if(rows.length > 0){
var photos_arr = [];
var photo_count = 0;
rows.forEach(function (row) {
let photos = row.user_photos;
console.log(photos);
photos_arr.push(photos);
photo_count = photo_count+1;
});
if (photo_count == rows.length) {
res.render("user_photos", {photos: photos_arr});
}
} else {
res.send("No photos found.");
}
}
});
上面的代码将用户数据放入数组... [图像,图像,图像]。这没有用,因为当我尝试将其放入图像标签时,将导致以下结果... image src =“ image,image,image”。如何单独显示。我原本希望有3个图片标签。
user_photos.ejs
<% for(let i = 0; i < photos.length; i++){ %>
<img src="<%= photos %>" alt="">
<% } %>
由于该特定用户有3张不同的图像,我想查看与此用户对应的3个不同的图像标签。我感谢大家的帮助。谢谢!
在src属性中,您传递了整个数组。在下面,您可以找到一个使用for of
循环而不是经典循环的示例。
<% for(let photo of photos){ %>
<img src="<%= photo %>" alt="">
<% } %>