PHP mysql - 以表格形式显示数据库中的逗号分隔值
Posted
技术标签:
【中文标题】PHP mysql - 以表格形式显示数据库中的逗号分隔值【英文标题】:PHP mysql - Display comma separated value from the database in tabular form 【发布时间】:2017-05-19 21:00:42 【问题描述】:我是初学者 我想以表格形式显示数据库中的逗号分隔值
从下面的图片链接我们可以看到数据是如何被逗号分隔的:
这是我下面的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表不应该是这样的。在编写更多代码或尝试修复此问题之前,请查找有关数据库规范化的教程并阅读该教程。 每次在新代码中使用themysql_
数据库扩展a Kitten is strangled somewhere in the world 时,它都已被弃用,并且已经存在多年,并且在 PHP7 中永远消失了。如果您只是在学习 PHP,请花精力学习 PDO
或 mysqli
数据库扩展。 Start here
您好,感谢您的快速回复。我迫切需要完成这项工作,因为我们的项目中有数千个代码。由于我们已经到了最后期限,所以无法更改。在后期我们可以进行数据库规范化并更改代码。是否有任何替代解决方案。
您可能还想检查您的浏览器调试控制台并修复 javascript 错误
【参考方案1】:
只需从表中获取数据并分解username
和useremail
以创建数组,然后循环并显示值。
下面粘贴的代码可能会对您有所帮助。
<?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数据库表中的内容,并以表格形式显示在页面上。