我需要帮助循环访问MySQL数据。
我的库存表如下。
我想做的是做一个select语句,它会从stock表中获取所有行,如果它有" numberassigned_vnr"超过1,循环,并显示为单独的行。
我需要帮助编写select语句,它将遍历表并显示结果,如果有" numberassigned_vnr"不止一个,循环并将结果打印到该次数。
所以我应该看到这样的东西。
1 27 300 Black
1 27 300 Black
1 27 300 Black
7 29 315 Black
7 29 315 Black
2 28 315 Black
3 29 315 Black
......
.....
提前谢谢你。
答案 0 :(得分:0)
PHP:
while($row=mysqli_fetch_array($result,MYSQL_ASSOC)){
$numberassigned_vnr=$row['numberassigned_vnr'];
for($i=1;$i<=$numberassigned_vnr;$i++){
echo "your coloumns here like $row[coloumn1] $row[coloumn2]...";
}
}
希望这有帮助
答案 1 :(得分:0)
你可以这样做
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if (!empty($result)) {
foreach ($result as $data) {
for ($i = 0; $i < $data->numberassigned_vnr; $i++) {
echo "$data->id_vnr $data->idstk_vnr $data->width_vnr $data->color_vnr ";
}
}
}
我认为这对你有用。
答案 2 :(得分:0)
如果您要求根据&#39; numberassigned_vnr&#39;多次打印该行,以下是解决方案:
// $conn = your db connection
$result = mysqli_query($conn,"SELECT * FROM your_table");
if(!empty($result)) {
while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)){
for($i=0; $i < $row['numberassigned_vnr']; $i++){
echo $row['id_vnr']." ".$row['idstk_vnr']." ".$row['width_vnr']." ".$row['color_vnr'];
}
}
// Free result set
mysqli_free_result($result);
}
mysqli_close($conn);
答案 3 :(得分:0)
在WHERE
语句中使用PDO
MySQL
句柄,将所有结果都显示在numberassigned_vnr > 1
。
如下:
$db = new PDO("...");
$statement = $db->prepare("SELECT * FROM stock_table WHERE numberassigned_vnr > :nrassigned");
$statement->execute(array(':nrassigned' => 1));
while ($row = $statement->fetchAll(PDO::FETCH_ASSOC)){
var_dump($row); // var_dump complete row
echo $row['id_vnr'] . " " . $row['idstk_vnr'] . " " . $row['width_vnr'] . " " . $row['color_vnr'];
}