我的 MySQL 循环遇到问题。 我正在尝试在数据库中建立一个链接到事件和停用我的用户。
我尝试使用 while 循环来显示数据库中的所有用户,然后在他们旁边放置一个链接。
但问题是链接没有显示在正确的用户旁边,我还尝试为链接分配 ID 和用户名,并且显示了正确的信息。
该链接显示比正确用户低 1 步。
这是我的代码。
require('./connect.php');
$query = "SELECT * FROM users ORDER BY id ASC";
$result = mysqli_query($con, $query);
$numrows = mysqli_num_rows($result);
if ($numrows > 0) {
echo '<table class="table" border="1">
<tr style="background-color: #0DF; color: #222; font-weight:bold;">
<td>ID:</td>
<td>User Name:</td>
<td>Email:</td>
<td>First Name:</td>
<td>Last Name:</td>
<td>Domain:</td>
<td>Country:</td>
<td>Phone:</td>
<td>Plan:</td>
<td>Duration:</td>
<td>Payable:</td>
<td>Paid Date:</td>
<td>Active Plan:</td>
<td>Active:</td>
<td>Register Date:</td>
</tr>';
while ( $row = mysqli_fetch_assoc($result) ) {
$dbid = $row['id'];
$dbuser = $row['username'];
$dbemail = $row['email'];
$dbfname = $row['first_name'];
$dblname = $row['last_name'];
$dbdomain = $row['domain'];
$dbcountry = $row['country'];
$dbphone = $row['phone'];
$dbplan = $row['plan'];
$dbduration = $row['duration'];
$dbpayable = $row['payable'];
$dbpaid_date = $row['paid_date'];
$dbactive_plan = $row['active_plan'];
$dbactive = $row['active'];
$dbdate = $row['date'];
echo '
<tr>
<td>'.$dbid.'</td>
<td>'.$dbuser.' <a href="http://www.mydomain.com/admin.php?id='.$dbid.'">Delete</a></td>
<td>'.$dbemail.'</td>
<td>'.$dbfname.'</td>
<td>'.$dblname.'</td>
<td>'.$dbdomain.'</td>
<td>'.$dbcountry.'</td>
<td>'.$dbphone.'</td>
<td>'.$dbplan.'</td>
<td>'.$dbduration.'</td>
<td>'.$dbpayable.'</td>
<td>'.$dbpaid_date.'</td>
<td>'.$dbactive_plan.' '.$changeStatus.'</td>
<td>'.$dbactive.'</td>
<td>'.$dbdate.'</td>
</tr>';
if ( $dbactive_plan == 0) {
$status = "Activate";
$changeStatus = '<a href="http://www.mydomain.com/admin.php?status=1&user='.$dbuser.'">'.$status.'</a>';
}
else {
$status = "Deactivate";
$changeStatus = '<a href="http://www.mydomain.com/admin.php?status=0&user='.$dbuser.'">'.$status.'</a>';
}
}//while loop
echo '</table>';
最佳答案
require('./connect.php');
$query = "SELECT * FROM users ORDER BY id ASC";
$result = mysqli_query($con, $query);
$numrows = mysqli_num_rows($result);
if ($numrows > 0) {
echo '<table class="table" border="1">
<tr style="background-color: #0DF; color: #222; font-weight:bold;">
<td>ID:</td>
<td>User Name:</td>
<td>Email:</td>
<td>First Name:</td>
<td>Last Name:</td>
<td>Domain:</td>
<td>Country:</td>
<td>Phone:</td>
<td>Plan:</td>
<td>Duration:</td>
<td>Payable:</td>
<td>Paid Date:</td>
<td>Active Plan:</td>
<td>Active:</td>
<td>Register Date:</td>
</tr>';
while ( $row = mysqli_fetch_assoc($result) ) {
$dbid = $row['id'];
$dbuser = $row['username'];
$dbemail = $row['email'];
$dbfname = $row['first_name'];
$dblname = $row['last_name'];
$dbdomain = $row['domain'];
$dbcountry = $row['country'];
$dbphone = $row['phone'];
$dbplan = $row['plan'];
$dbduration = $row['duration'];
$dbpayable = $row['payable'];
$dbpaid_date = $row['paid_date'];
$dbactive_plan = $row['active_plan'];
$dbactive = $row['active'];
$dbdate = $row['date'];
if ( $dbactive_plan == 0) {
$status = "Activate";
$changeStatus = '<a href="http://www.mydomain.com/admin.php?status=1&user='.$dbuser.'">'.$status.'</a>';
}
else {
$status = "Deactivate";
$changeStatus = '<a href="http://www.mydomain.com/admin.php?status=0&user='.$dbuser.'">'.$status.'</a>';
}
echo '
<tr>
<td>'.$dbid.'</td>
<td>'.$dbuser.' <a href="http://www.mydomain.com/admin.php?id='.$dbid.'">Delete</a></td>
<td>'.$dbemail.'</td>
<td>'.$dbfname.'</td>
<td>'.$dblname.'</td>
<td>'.$dbdomain.'</td>
<td>'.$dbcountry.'</td>
<td>'.$dbphone.'</td>
<td>'.$dbplan.'</td>
<td>'.$dbduration.'</td>
<td>'.$dbpayable.'</td>
<td>'.$dbpaid_date.'</td>
<td>'.$dbactive_plan.' '.$changeStatus.'</td>
<td>'.$dbactive.'</td>
<td>'.$dbdate.'</td>
</tr>';
}//while loop
echo '</table>';
关于php - MySQL:使用 while 循环链接未显示在正确的列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24615557/