php - 试图回显一个返回的加入My_SQL查询与foreach循环

问题描述:

下面的代码打印每一行的单词,然后打破,这是我编码做的。php - 试图回显一个返回的加入My_SQL查询与foreach循环

不过,我希望它是更聪明,并尝试在同一行打印*$single*三次,所以它会说的第一个用户名,姓,和它们的顺序描述所有的同一行

我该如何去做这件事?

<?php 
//turn off error reporting for security 
//connecting to database as mysqli class 
$db = new mysqli("localhost", "root", "banana2", "cool"); 
if($db->connect_errno){ 
    echo $db->connect_errno; 
} 
$query1 = $db->query("SELECT first_name, last_name, orders.order_description FROM 
users JOIN orders on users.id=orders.employee_id"); 
$sharp = $query1->fetch_all(MYSQLI_ASSOC); 

function doAgain($sharp){ 
foreach($sharp as $single){ 
    if(is_array($single)){ 
     doAgain($single); 
    } 
    else{ 
     echo $single."<br>"; 
    } 
}  
} 

doAgain($sharp); 
?> 

只需使用一个单一的foreach循环,打印在同一行的每一行:

foreach ($sharp as $row) { 
    echo "$row[first_name] $row[last_name] $row[order_description]<br>"; 
} 

你需要的功能doAgain?

$rows = $query1->fetch_all(MYSQLI_ASSOC); 

foreach ($rows as $row) { 
    foreach ($row as $fieldname => $value) { 
     echo $value . ' '; 
    } 
    echo '<br/>'; 
} 
+0

我喜欢你的逻辑了很多,但不知道如何$字段名=>值进场时,它有与fetch_all功能呢? – user3340015

+0

哦,你可以使用($行作为$值) - 值将是每列的值,所以你不必命名它们 –

mySQL列是数组的索引。例如,你可以呼应

echo $single['first_name'].$single['last_name'];