2017-08-27 58 views
-1

我有一个名为email的列名。在那里,我有超过100行。某些行有超过10个记录(逗号(,)一些只有1个记录。我必须在一行中显示所有记录。如何使用php显示单列和所有行中的多条记录

这是我的表

enter image description here

我越来越像输出

enter image description here

我在一条线需要,这样我可以导出它的输出。

$sql ="SELECT email FROM email12"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) { 
    $a=$row['email']; 
    $b = explode(',',$a); 
    echo '<pre>'; print_r($b);echo '<pre>'; 
    } 
    } 
+0

你需要附上的截图中的问题。不要放置链接。 – Ravi

+0

实际上,我很抱歉,屏幕截图按钮无法在我的键盘上工作 –

+0

有许多工具可用于获取屏幕快照。你可以使用任何。我不会去看那个链接。 – Ravi

回答

0

我将通过爆炸数组遍历:

$sql ="SELECT email FROM email12"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 
while($row = $result->fetch_assoc()) { 
    $a=$row['email']; 
    $b = explode(',',$a); 
    foreach($b as $email) { 
    echo '<pre>'; print_r($email);echo '<pre>'; 
    } 
} 
} 
0

从数据库的角度来看,不推荐使用数据作为逗号分隔列表,这不是一个好习惯。你应该考虑normalizing你的数据库。话虽如此,你应该按照以下程序达到目前(或暂时)所需的结果。

while循环开始之前创建一个空数组(例如,$resultArr)。在while循环的每次迭代中,explode电子邮件列值并将它们追加到$resultArr数组。最后,在循环出来后,只需对结果数组执行implode操作即可显示一行中的所有记录

$sql ="SELECT email FROM email12"; 
$result = $conn->query($sql); 
if ($result->num_rows > 0) { 
    $resultArr = array(); 
    while($row = $result->fetch_assoc()) { 
     $resultArr[] = explode(',',$row['email']); 
    } 
    echo implode(',', $resultArr); 
} 
相关问题