Php 如何在while循环中获取某些数据而不重新绘制
我已经尝试将数据的名字和姓氏移出循环,但没有为数据显示任何内容。我想知道是否可以只重复产品、价格、数量而不重复名字和姓氏Php 如何在while循环中获取某些数据而不重新绘制,php,mysql,mysqli,Php,Mysql,Mysqli,我已经尝试将数据的名字和姓氏移出循环,但没有为数据显示任何内容。我想知道是否可以只重复产品、价格、数量而不重复名字和姓氏 <?php include ('dbconnect.php'); $sql='SELECT * FROM `user_info` ,`customer_order` WHERE user_info.user_id=customer_order.uid'; $run_query=mysqli_query($conn,$sql); if(! $
<?php
include ('dbconnect.php');
$sql='SELECT * FROM `user_info` ,`customer_order` WHERE user_info.user_id=customer_order.uid';
$run_query=mysqli_query($conn,$sql);
if(! $run_query ) {
die('Could not get data: ' . mysqli_error());
}
while($row = mysqli_fetch_array($run_query, MYSQLI_ASSOC)) {
echo "name:{$row['first_name']} ".
"Last:{$row['last_name']} <br> ".
"Product:{$row['p_name']} <br> ".
"Price:{$row['p_price']} <br> " .
"Quanity:{$row['p_qty']} <br> ";
}
在循环中尝试使用if语句检查是否显示相同的名称:
<?php
include ('dbconnect.php');
$sql='SELECT * FROM `user_info` ,`customer_order` WHERE user_info.user_id=customer_order.uid';
$run_query=mysqli_query($conn,$sql);
if(! $run_query ) {
die('Could not get data: ' . mysqli_error());
}
$first_name_saved = "";
$last_name_saved = "";
while($row = mysqli_fetch_array($run_query, MYSQLI_ASSOC)) {
if ($first_name_saved != row["first_name"] && $last_name_saved != row["first_name"]){
echo "name:{$row['first_name']} ".
"Last:{$row['last_name']} <br> ";
}
echo "Product:{$row['p_name']} <br> ".
"Price:{$row['p_price']} <br> " .
"Quanity:{$row['p_qty']} <br> ";
$first_name_saved = $row['first_name'];
$last_name_saved = $row['last_name'];
}
为了简化上面显示的代码,并且由于SQL语句执行速度相对较快,我建议将您的语句分成两部分:首先获取名字/姓氏,然后运行一个循环以获取所需的单元格列表
<?php
include ('dbconnect.php');
// Fetch user info
$sql='SELECT * FROM `user_info` WHERE user_info.user_id=customer_order.uid';
$run_query=mysqli_query($conn,$sql);
if(! $run_query ) {
die('Could not get data: ' . mysqli_error());
}
$row = mysqli_fetch_array($run_query, MYSQLI_ASSOC);
echo "Customer: name:{$row['first_name']} ".
"Last:{$row['last_name']} <br>" ;
// Fetch every orders needed
$sql='SELECT `p_name`, `p_price`, `p_qty` FROM `user_info`, `customer_order` WHERE `user_info.user_id=customer_order.uid';
$run_query=mysqli_query($conn,$sql);
if(! $run_query ) {
die('Could not get data: ' . mysqli_error());
}
while($row = mysqli_fetch_array($run_query, MYSQLI_ASSOC))
echo "Product:{$row['p_name']} <br> ".
"Price:{$row['p_price']} <br> " .
"Quantity:{$row['p_qty']} <br> ";
}
实际上它还在做同样的事情。我需要得到名字和姓氏,以避免重复从该用户订购的相同产品。谢谢Pierre的帮助,但wonskcalb答案正是我想要的。PS:如果您试图获取的行数太多,则不应使用。那会通过储存一张巨大的桌子来吃掉你的公羊。PS2:当我使用PHP时,我曾经使用一个实用程序函数,它自己完成所有连接/执行/错误处理,提供一行代码来执行任何语句。这会变得很难看