我的php上有一个查询,只打印出一行的结果,我需要打印出每个用户的所有行。
这是php:
<?php
// see if the form has been completed
include_once("php_includes/check_login_status.php");
//include_once("php_includes/db_conx.php");
// Initialize any variables that the page might echo
$username = "";
$weight = "";
$weighthist = "";
$id = "";
if(isset($_GET["u"])){
$username = preg_replace('#[^a-z0-9]#i', '', $_GET['u']);
}
$sql = "SELECT users.*, weighthistory.* FROM users JOIN weighthistory USING(id)";
$user_query = mysqli_query($db_conx, $sql);
// check if the user exists in the database
while ($row = mysqli_fetch_array($user_query, MYSQLI_ASSOC)) {
$id = $row ["id"];
$username = $row ["username"];
$weight = $row["weight"];
$weighthist = $row["weighthist"];
$point_hist = $row["point_hist"];
}
// this is to calculate points score
$calweight = $weight - $weighthist;
$points = $calweight * 10;
$res = mysqli_query($db_conx,'SELECT sum(point_hist) FROM points_history');
if (FALSE === $res) die("Select sum failed: ".mysqli_error);
$row = mysqli_fetch_row($res);
$sum = $row[0];
?>
这是HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Profile Update: <?php echo $u; ?></title>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="style.css">
<script src="js/main.js"></script>
<script src="js/javascript.js"></script>
<script src="js/ajax.js"></script>
<style type="text/css">
#updateform{
margin-top:24px;
}
#updateform > div {
margin-top: 12px;
}
#updateform > input {
width: 200px;
padding: 3px;
background: #F3F9DD;
}
</style>
</head>
<body>
<p> </p>
<?php include_once("template_pageTop.php"); ?>
<div id="pageMiddle">
<div id="usernamecss"> Username: <?php echo $username; ?></div>
<table width="100%" border="0">
<tr>
<td>Name</td>
<td>Weight</td>
<td>Rank</td>
<td>Points</td>
</tr>
<tr>
<td><?php echo $username ?></td>
<td><?php echo $weight?></td>
<td><?php echo $rank?></td>
<td><?php echo $sum?></td>
</tr>
</table>
<p> </p>
<strong></strong>
<a href="user.php<?php echo "?u=",$username;?>">Go to Profile</a>
</form>
</div>
<?php include_once("template_pageBottom.php"); ?>
</body>
</html>
我是新手,所以如何打印所有用户ID的所有行,我明白我必须使用foreach循环。
答案 0 :(得分:1)
这就是你可以做到的......
PHP文件
<?php
// see if the form has been completed
include_once("php_includes/check_login_status.php");
//include_once("php_includes/db_conx.php");
// Initialize any variables that the page might echo
$username = "";
$weight = "";
$weighthist = "";
$id = "";
if(isset($_GET["u"])){
$username = preg_replace('#[^a-z0-9]#i', '', $_GET['u']);
}
$sql = "SELECT users.*, weighthistory.* FROM users JOIN weighthistory USING(id)";
$user_query = mysqli_query($db_conx, $sql);
// check if the user exists in the database
while ($row = mysqli_fetch_assoc($user_query)) {
$id = $row ["id"];
$username = $row ["username"];
$weight = $row["weight"];
$weighthist = $row["weighthist"];
$point_hist = $row["point_hist"];
// this is to calculate points score
$calweight = $weight - $weighthist;
$points = $calweight * 10;
$res = mysqli_query($db_conx,'SELECT sum(point_hist) FROM points_history');
if (FALSE === $res) die("Select sum failed: ".mysqli_error);
$row = mysqli_fetch_row($res);
$sum = $row[0];
?>
<div id="pageMiddle">
<div id="usernamecss"> Username: <?php echo $username; ?></div>
<table width="100%" border="0">
<tr>
<td>Name</td>
<td>Weight</td>
<td>Rank</td>
<td>Points</td>
</tr>
<tr>
<td><?php echo $username ?></td>
<td><?php echo $weight?></td>
<td><?php echo $rank?></td>
<td><?php echo $sum?></td>
</tr>
</table>
<p> </p>
<strong></strong>
<a href="user.php<?php echo "?u=",$username;?>">Go to Profile</a>
</form>
</div>
<?php
}
?>
HTML文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Profile Update: <?php echo $u; ?></title>
<link rel="icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="style.css">
<script src="js/main.js"></script>
<script src="js/javascript.js"></script>
<script src="js/ajax.js"></script>
<style type="text/css">
#updateform{
margin-top:24px;
}
#updateform > div {
margin-top: 12px;
}
#updateform > input {
width: 200px;
padding: 3px;
background: #F3F9DD;
}
</style>
</head>
<body>
<p> </p>
<?php include_once("template_pageTop.php"); ?>
<?php include_once("template_pageBottom.php"); ?>
</body>
</html>
编辑:
如果username是points_history表中的列...那么您可以更改此
$res = mysqli_query($db_conx,'SELECT sum(point_hist) FROM points_history');
if (FALSE === $res) die("Select sum failed: ".mysqli_error);
$row = mysqli_fetch_row($res);
$sum = $row[0];
到这个
$query = "SELECT sum(point_hist) FROM points_history WHERE username = $username";
$res = mysqli_query($db_conx, $query);
$row = mysqli_fetch_row($res);
$sum = $row[0];