抱歉我的英文。 我学习PHP并尝试创建一个小成员区域,我认为这是一种很好的学习方式。 在我的会员区,一些会员已经过验证"有些不是。
如何使用PHP基于数据stored in Mysql
显示不同的图片?
我想要的是显示"Picture1" if "1" is the value stored in a MySQL column and "Picture2" if "2"
是值等等......你是"未经证实的成员"所以你看到图片1,经过验证的会员见图2 ...
我知道如何SELECT data using MySQLi
但我无法找到接下来要做的事情?
谢谢。
答案 0 :(得分:2)
有几种方法。如果它总是遵循一个数字系统...使用这个:
$picture = "Picture" . $verified;
// example: $picture = "Picture1", if $verified = 1
连接的很多方法......
$pic = "Picture$verified.png";
$picture = "Picture" . $verified . ".jpeg";
这将取决于你如何设置..
switch($verified){
case 1:
$picture = "Picture1";
break;
case 2:
$picture = "Picture2";
break;
case default:
$picture = "Picture1";
break;
}
另一种方式......
if($verified == 1){ $picture = "Picture1"; } else { $picture = "Picture2"; }
switch语句或if if / else语句的原因是它可以说明已验证等于0,null或其他非1或2值,无论出于何种原因可能存储在数据库中。对于第一个示例,如果$ verified(验证列= 1或2)具有奇数值,则图片#可能实际上不是真实的。
现在,当然这只是为了处理不同的方式。您必须确保它与您的实际图像正确对齐...
$picture = "Picture1"; // would be dynamic to code above
$ext = ".png"; // optional, could be added into the $picture variable above easily too
$filePath = "/images/user_uploads/"; // make sure path is correct
$filePathName = $filePath . $picture . $ext;
// see? We combine path/pictureName/extension to create an image URL
if(file_exists($filePathName) !== false){ // make sure exists
$imageCode = "<img src='$filePathName' alt='Not Found'>";
} else {
// file does not exist! ut oh!
}
答案 1 :(得分:1)
这取决于您的图像如何映射到数据库中的值,但假设您有一个简单的关系,如:
1
:/images/1.jpg
2
:/images/2.jpg
只需从数据库中获取数据并将其映射到变量(在我的示例中为$image
),然后将其与echo
语句内<img src>
语句内的文件路径连接起来。 } attribute:
<img src="<?php echo '/images/' $image . '.jpg'; ?>"/>
这将输出:
<img src="/images/1.jpg"/>
<img src="/images/2.jpg"/>
基于所选图像。
现在您只需根据条件将该变量设置为正确的值:
<?php
if ($authenticated) {
$image = 1;
}
else {
$image = 2;
}
?>
<img src="<?php echo '/images/' $image . '.jpg'; ?>"/>
或更简洁的三元:
<?php ($authenticated ? $image = 1 : $image = 2) ?>
<img src="<?php echo '/images/' $image . '.jpg'; ?>"/>
答案 2 :(得分:1)
让我们假设你有一个名为db的数据库和一个带有列名和验证的tb的表。名称是字符串,验证是布尔值。如果用户已经过验证,则还要验证存储1;如果用户已验证,则验证存储为1。
所以,你可以通过迭代语句(使用if else或switch语句)来完成它。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$query="SELECT * FROM `tb`";
$sql=$conn->query($query);
if($sql->num_rows>0)
{
while($row=$sql->fetch_assoc())
{
//display name
echo $row['name'];
//check if user is verified or not
//using if else statement
if($row['verify']=="0")
{
echo '<img src="./picture1.jpg">';
}
else
{
echo '<img src="./picture2.jpg">';
}
//using switch case
switch($row['verify'])
{
case(0):
{
echo '<img src="./picture1.jpg">';
}
case(1);
{
echo '<img src="./picture2.jpg">';
}
}
//remember i have used both methods hence it will show the image twice , i did it just you possible ways , you choose any one from it.(if else or switch case)
}
}
$conn->close();
?>
答案 3 :(得分:0)
试试这个:
<img src="<?php echo "/pictures/Picture{$number}.jpg"; ?>" />