PHP mysql - 以表格形式显示数据库中的逗号分隔值

Posted

技术标签:

【中文标题】PHP mysql - 以表格形式显示数据库中的逗号分隔值【英文标题】:PHP mysql - Display comma separated value from the database in tabular form 【发布时间】:2017-05-19 21:00:42 【问题描述】:

我是初学者 我想以表格形式显示数据库中的逗号分隔值

从下面的图片链接我们可以看到数据是如何被逗号分隔的:

我想在 html/php 页面中以表格形式显示,如下所示:

这是我下面的html页面:-

<form action="insert.php" method="POST">

<div id="items">
    <input type="text" placeholder="name" name="user_name[]" />
    <input type="text" placeholder="email" name="user_email[]" />   
</div>

<input type="button" value="add entry" id="add"/>
<input type="submit"  value="submit"/>

用于添加额外输入的javascript文件:-

$(document).ready(function()

$("#add").click(function (e)
event.preventDefault()
$('#items').append('<div><input type="text" placeholder="Name"   name="user_name[]" ><input type="text" placeholder="email" name="user_email[]">'
+'<input type="button" value="delete" id="delete"/></div>');    

); 

$('body').on('click','#delete',function(e)
    $(this).parent('div').remove();
);

);

下面是插入数据库的PHP代码:-

 <?php
$con = mysql_connect("localhost","root","");
if (!$con)
  
  die('Could not connect: ' . mysql_error());
  

mysql_select_db("dynamic", $con);

$user_name = $_POST["user_name"];
$value = implode(',', $user_name); 
$user_email = $_POST["user_email"]; 
$valueone = implode(',', $user_email); 

$sql="INSERT INTO dynamicdata (user_name, user_email)
VALUES
('$value','$valueone')";

if (!mysql_query($sql,$con))
  
  die('Error: ' . mysql_error());
  
echo "1 record added";

mysql_close($con)
?>

【问题讨论】:

既然你是刚开始,让我温和地指出,SQL表不应该是这样的。在编写更多代码或尝试修复此问题之前,请查找有关数据库规范化的教程并阅读该教程。 每次在新代码中使用the mysql_ 数据库扩展a Kitten is strangled somewhere in the world 时,它都已被弃用,并且已经存在多年,并且在 PHP7 中永远消失了。如果您只是在学习 PHP,请花精力学习 PDOmysqli 数据库扩展。 Start here 您好,感谢您的快速回复。我迫切需要完成这项工作,因为我们的项目中有数千个代码。由于我们已经到了最后期限,所以无法更改。在后期我们可以进行数据库规范化并更改代码。是否有任何替代解决方案。 您可能还想检查您的浏览器调试控制台并修复 javascript 错误 【参考方案1】:

只需从表中获取数据并分解usernameuseremail 以创建数组,然后循环并显示值。

下面粘贴的代码可能会对您有所帮助。

<?php
$ArrUserName=explode($username,','); //exploding the coma separated username to make array of user names
$ArrUserEmail=explode($username,',');//exploding the coma separated user email to make array of user email
echo '<table><tr><td>Name</td><td>EMAIL</td></tr>';
for($i=0;$i<count($ArrUserName);$i++)
    echo "<tr>";
        echo"<td>".$ArrUserName[$i]."</td>"; //display user name
        echo"<td>".$ArrUserEmail[$i]."</td>"; // diaplay user email
    echo"</tr>";        

?>

请理解这一点并尝试在您的代码中实现。

【讨论】:

这段代码非常有用,它给了我想要的结果。 . 如果答案是正确的,那么请投上一票。然后只有 stack overflow newbie 才能引用这个。【参考方案2】:

理想情况下,您希望将用户名和电子邮件存储在每个用户的新行中。这会让你自己更简单。

但是,请尝试以下操作:

<?php 

$query   = mysql_query('SELECT * FROM dynamicdata LIMIT 1', $con);
$results = mysql_fetch_assoc($query);

$usernames = explode(',', $results['user_name']);
$emails    = explode(',', $results['user_email']);

//Now we should be able to loop over them.
for($row = 0; $row <= count($usernames); $row++) 
    echo $usernames[$row] . ' : ' . $emails[$row];

我没有机会对此进行测试,但希望它有效。

【讨论】:

以上是关于PHP mysql - 以表格形式显示数据库中的逗号分隔值的主要内容,如果未能解决你的问题,请参考以下文章

利用PHP实现登录与注册功能以及使用PHP读取mysql数据库——以表格形式显示数据

怎么提取mysql数据库表中的内容,并以表格形式显示在页面上。

php用表格的形式显示连接的一张mysql表格,并具有直接在表格中修改、删除mysql表中数据的功能

php 如何将数据库中的数据以表格的形式打印到html页面

如何在 PHP 中以字符串的形式显示数据库中表的内容?

以 PHP 形式编辑 MYSQL 行