php:在连续显示数据的同时
好的,我有一个名为users的表,其中包含:php:在连续显示数据的同时,php,html,mysql,Php,Html,Mysql,好的,我有一个名为users的表,其中包含: Students Name: Grade: 1. Ben 1 2. Cathy 1 3. Tom 1 4. Mark 1 5. Lisa 1 6. Bernard 1 7. John 2 8. Macy 2 9. Rose 2 10. Maynard
Students Name: Grade:
1. Ben 1
2. Cathy 1
3. Tom 1
4. Mark 1
5. Lisa 1
6. Bernard 1
7. John 2
8. Macy 2
9. Rose 2
10. Maynard 2
11. Bill 2
12. Sherlock 2
因此,基本上,我有6名一年级学生和6名二年级学生。我想使用两列表格根据他们的成绩显示他们:
----------------------------------
Grade 1
----------------------------------
Table 1 | Table 2
|
|
这样做的目的是为了节省空间,我不想在一列中显示所有的等级1,我希望表1和表2根据记录分别显示3个等级1
我尝试使用以下代码:
$sql = "SELECT * FROM users WHERE grade = '$grade1' LIMIT 3";
$result = mysqli_query($connectdb,$sql);
while($row=mysqli_fetch_assoc($result)) {
$name = $row['name'];
echo "<tr>";
echo "<td>";
echo $name;
echo "</td>";
echo "</tr>";
}
我怎样才能用这样的方式制作:
----------------------------------
Grade 1
----------------------------------
Table 1 |Table 2
Ben | Mark
Cathy | Lisa
Tom | Bernard
请原谅我的知识不足,我实际上不熟悉WHILE命令。问题是您只检索前3名学生的数据并显示两次 有两条路第一条路
$sql = "SELECT * FROM users WHERE grade = '$grade1'";
$result = mysqli_query($connectdb,$sql);
$i=0;
while($row=mysqli_fetch_assoc($result)) {
if($i==0 || $i==3){
echo "<table>"
}
$name = $row['name'];
echo "<tr>";
echo "<td>";
echo $name;
echo "</td>";
echo "</tr>";
if($i==0 || $i==3){
echo "</table>"
}
$i++;
}
$sql=“从等级为“$grade1”的用户中选择*;
$result=mysqli\u查询($connectdb,$sql);
$i=0;
while($row=mysqli\u fetch\u assoc($result)){
如果($i==0 | |$i==3){
回声“”
}
$name=$row['name'];
回声“;
回声“;
echo$name;
回声“;
回声“;
如果($i==0 | |$i==3){
回声“”
}
$i++;
}
第二种方法是再添加一个,在这里您将检索剩余的3个学生数据,并需要将其显示在不同的表中
$sql = "SELECT * FROM users WHERE grade = '$grade1' LIMIT 3,3";
$result = mysqli_query($connectdb,$sql);
while($row=mysqli_fetch_assoc($result)) {
$name = $row['name'];
echo "<tr>";
echo "<td>";
echo $name;
echo "</td>";
echo "</tr>";
}
$sql=“从等级=“$grade1”限制为3,3”的用户中选择*;
$result=mysqli\u查询($connectdb,$sql);
while($row=mysqli\u fetch\u assoc($result)){
$name=$row['name'];
回声“;
回声“;
echo$name;
回声“;
回声“;
}
如果执行同一查询两次,那么为什么会得到不同的结果?第二次执行查询时,将$grade1
的值从1更改为2警告:使用mysqli
时,您应该使用和向查询中添加用户数据。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能是非常有害的。要在两列中执行此操作,您必须获取两个结果集,然后通过排序将它们折叠到另一个数组中。@tadman,哇!谢谢我不知道这样直接将数据链接到查询是危险的。非常感谢你!谢谢,我想这是我喜欢的一个,我只是不知道“限制3,3”为什么还有第二个“3”,我怎么能用第二个表来显示4-6而不是1-3?第二个3-3告诉你需要多少记录,第一个告诉你从哪里开始。所以如果我想从4-6开始显示,我将只写限制4,3
对吗?不,这是限制3,3,因为表中的行索引从0开始,所以代码限制4,3表示从5到7
$sql = "SELECT * FROM users WHERE grade = '$grade1' LIMIT 3,3";
$result = mysqli_query($connectdb,$sql);
while($row=mysqli_fetch_assoc($result)) {
$name = $row['name'];
echo "<tr>";
echo "<td>";
echo $name;
echo "</td>";
echo "</tr>";
}