找到了解决办法!谢谢“北基多南”和“道格·利瑞”。
解决方案守则;
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<li class='list-group-item'>" . $row["user_name"];
if ($row["user_name"] == "TacoLover22") {
echo "<span class='badge'>Dev</span>";
}
echo "</li>";
}我有一个用户名列表,我有一个代码来检查用户名是否存在,如果它确实存在,我希望在其中追加一个div。这是一张解释这个的图片
但是,我的代码可以工作,但它没有将该div分配给所选的用户名。
这是PHP代码;
<?php
if (
$row["user_name"] === "TacoLover22");{
echo "<span class='badge'>Dev</span>";
}
?>下面是获取所有用户名的另一个php代码;
<?php
$servername = "####";
$username = "####";
$password = "########";
$dbname = "########";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT user_name FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<li class='list-group-item'>" . $row["user_name"];
}
} else {
echo "0 results";
}
$conn->close();
?> 此代码的结果可以找到这里。。
编辑:这是建议中的完整代码,它似乎仍然不起作用。跨度现在还没有出现。
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<li class='list-group-item'>" . $row["user_name"];
if ($row["user_name"] === "TacoLover22") {
echo "<span class='badge'>Dev</span>";
}
echo "</li>";
}谢谢你的帮助。
发布于 2014-12-16 07:50:58
您必须在mysql-fetch-循环中追加<span> (注意:您正在讨论div,但使用的是span,这在html中是不同的)。
while($row = $result->fetch_assoc()) {
echo "<li class='list-group-item'>" . $row["user_name"];
if ($row["user_name"] == "TacoLover22")
{
echo "<span class='badge'>Dev</span>";
}
}解释:-循环中正在迭代mysql-查询的结果集。变量$row是指向结果各自行的指针。
在while-循环完成后,“指针”将始终显示到mysql-查询的最后一个结果行。因此,$row["user_name"]将始终设置为数据库中找到的最后一个用户名。这就是为什么你必须在时间循环中访问它。
如何处理多个用户(根据请求):
我决定在这里使用switch而不是if elseif语句,因为阅读更好,写imho更少:
while($row = $result->fetch_assoc()) {
echo "<li class='list-group-item'>" . $row["user_name"];
switch($row["user_name"])
{
case "TacoLover22":
echo "<span class='badge'>Dev</span>";
break;
case "AnotherUser":
echo "<span class='badge'>User</span>";
break;
}
}发布于 2014-12-16 07:48:43
我想这样就行了:
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<li class='list-group-item'>" . $row["user_name"];
if ($row["user_name"] === "TacoLover22") {
echo "<span class='badge'>Dev</span>";
}
echo "</li>";
}发布于 2014-12-16 07:59:34
假设您正在使用sqli扩展,列user_username是特殊用户列表,否则您将需要2个表,一个表来存储用户,一个辅助表来存储特殊用户。
//query
$sql = "SELECT user_name FROM users";
//send to mysql, get result
$sendquery = $conn->query($sql);
//fetch results as array
while ($result=$sendquery->fetch_array) {
echo 'username:' . $result['user_name'] . '<span class='badge'>Dev</span>';
}但是您的问题令人困惑,如果您有不同类型的用户,则应该使用两个表。
TABLE USERS user_id | name | dev_id | email | password | ...
TABLE DEVS dev_id | name | level | access | ....
SQL query, using LEFT JOIN
SELECT
usern.name as username, dev.name as devname
FROM USERS as user
LEFT JOIN DEVS as dev
USING dev_id
php output use $result['devname']如果您只需要"TacoLover22“来显示,则在while循环中添加一个if,以防这是您唯一需要添加的人
//query
$sql = "SELECT user_name FROM users";
//send to mysql, get result
$sendquery = $conn->query($sql);
//fetch results as array
while ($result=$sendquery->fetch_array) {
if ($result['user_name'] == "TacoLover22") {
echo 'username:' . $result['user_name'] . '<span class='badge'>Dev</span>';
}
else {
echo $result['user_name'];
}
}https://stackoverflow.com/questions/27499791
复制相似问题