2017-01-05 15 views
5

Tôi hoàn toàn mới bắt đầu Tôi muốn hiển thị dấu phẩy giá trị tách ra khỏi cơ sở dữ liệu dưới dạng bảngPHP mysql - Hiển thị dấu phẩy tách giá trị từ cơ sở dữ liệu dưới dạng bảng

Từ liên kết hình ảnh dưới đây chúng ta có thể thấy cách dữ liệu được nhận thêm vào nhau bằng dấu phẩy:

Databaseimage

tôi muốn hiển thị dưới dạng bảng trong trang/php html giống như dưới đây:

Table image

Đây là trang của tôi html dưới đây: -

<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"/> 

Html page

tập tin Javascript cho thêm đầu vào bổ sung: -

$(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(); 
}); 

}); 

Và dưới đây là đoạn code PHP để chèn vào cơ sở dữ liệu: -

<?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) 
?> 
+8

Vì bạn mới bắt đầu, hãy để tôi nhẹ nhàng chỉ ra rằng các bảng SQL không nên như vậy. Xin vui lòng tìm một hướng dẫn về bình thường hóa cơ sở dữ liệu và đọc nó trước khi viết thêm bất kỳ mã nào hoặc cố gắng sửa lỗi này. – e4c5

+0

Mỗi khi bạn sử dụng [mysql_'] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) phần mở rộng cơ sở dữ liệu trong mã mới ** [ một con mèo bị bóp nghẹt ở đâu đó trên thế giới] (http://2.bp.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg) ** nó không được chấp nhận và đã tồn tại trong nhiều năm và đã biến mất cho bao giờ trong PHP7. Nếu bạn chỉ học PHP, hãy dành năng lượng của bạn để học các phần mở rộng cơ sở dữ liệu 'PDO' hoặc' mysqli'. [Bắt đầu tại đây] (http://php.net/manual/en/book.pdo.php) – RiggsFolly

+0

Xin chào, Cảm ơn bạn đã trả lời nhanh. Tôi cần điều này được thực hiện khẩn trương bởi vì có hàng ngàn mã trong dự án của chúng tôi. Không phải ở một vị trí để thay đổi kể từ khi chúng tôi đã đáp ứng thời hạn. Trong giai đoạn sau, chúng tôi có thể đi qua bình thường hóa cơ sở dữ liệu và thay đổi mã. Có giải pháp thay thế nào cho việc này không. –

Trả lời

2

Chỉ cần lấy dữ liệu từ bảng và phát nổ cả hai usernameuseremail để tạo mảng và chỉ lặp lại và trao đổi các giá trị.

Dưới đây mã được dán có thể giúp bạn.

<?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>";   
} 
?> 

Hãy hiểu điều này để thử thực hiện trong mã của bạn.

+0

Mã này rất hữu ích và nó cho tôi kết quả chính xác những gì tôi muốn. . –

+0

Nếu câu trả lời đúng thì vui lòng bỏ phiếu cho cùng một câu hỏi. Sau đó, chỉ sau đó ngăn xếp newbie tràn có thể reffer này. –

2

Lý tưởng nhất, bạn sẽ muốn tên người dùng và email được lưu trữ trong hàng mới cho mỗi người dùng. Điều này sẽ làm cho nó đơn giản hơn rất nhiều cho chính bạn.

Tuy nhiên, hãy thử một cái gì đó như:

<?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]; 
} 

tôi đã không có cơ hội để kiểm tra điều này, nhưng hy vọng nó hoạt động.

Các vấn đề liên quan