2013-04-08 98 views
2

有點混淆我也解釋這一點,但我仍然會盡我所能解釋。添加數據到表格sql並存儲回新數據庫

因爲我是新的PHP和MySQL我不明白如何做到這一點。

請看看圖像,請用我的卡住點引導我。

see this image i hope it explain what i need

總之,我需要的是:如何做到這一點的數據庫連接和更新等!

回答

0

首先,你需要選擇從數據帶有如下查詢的第一張表格:

<?php 
//connect to the database server 
$objConnect = mysql_connect("localhost","root","Dropje123") or die(mysql_error()); 
//select the database 
$objDB = mysql_select_db("NAW"); 
//select which data you want to get. 
$sql   = "SELECT * FROM tb1"; 
$objQuery  = mysql_query($sql); 
$objResult  = mysql_fetch_array($objQuery); 
?> 

然後你需要像這樣使用html創建表格:

<form id="form" action="insert.php" method="post"> 
<table width="700" border="1"> 
<tr> 
<th width="20"> <div align="center">Roll_no </div></th> 
<th width="98"> <div align="center">Name </div></th> 
<th width="98"> <div align="center">Class </div></th> 
<th width="98"> <div align="center">Marks </div></th> 
<th width="98"> <div align="center">Subject1 </div></th> 
<th width="98"> <div align="center">Sub2 </div></th> 
<th width="98"> <div align="center">Sub3 </div></th> 
<th width="98"> <div align="center">Adress </div></th> 
<th width="98"> <div align="center">Phone </div></th> 
</th> 
</tr> 
<tr> 
<td><input type="hidden" name="Roll_No" value="<?=$objResult["Roll_No"];?>"></td> 
<td><div align="center"><?=$objResult["Roll_No"];?></div></td> 
<td><input type="text" name="Name" value="<?=$objResult["Name"];?>"></td> 
<td><input type="text" name="Class" size="20"></td> 
<td><input type="text" name="Marks" size="20"></td> 
<td><input type="text" name="Subject1" size="20"></td> 
<td><input type="text" name="Sub2" size="20"></td> 
<td><input type="text" name="Sub3" size="20"></td> 
<td><input type="text" name="Adress" size="20"></td> 
<td><input type="text" name="Phone" size="20"></td> 
</tr> 
<button type="submit" id="send">Verzenden</button> 
</form> 

這會將插入的數據發送到insert.php。該insert.php會是這個樣子:

<html> 
<head> 
<title>Insert</title> 
</head> 
<body>  
<?php 
mysql_connect('localhost','root','root'); 
mysql_select_db('yourdb') or die (mysql_error()); 

$Roll_No   = $_POST['Roll_No']; 
$Name    = $_POST['Name']; 
$Class    = $_POST['Class']; 
$Marks    = $_POST['Marks']; 
$Subject1   = $_POST['Subject1']; 
$Sub2    = $_POST['Sub2']; 
$Sub3    = $_POST['Sub3']; 
$Adress   = $_POST['Adress']; 
$Phone    = $_POST['Phone']; 

$sql = mysql_query("INSERT INTO db2 (Roll_No, Name, Class, Marks, Subject1, Sub2, Sub3, Adress, Phone) VALUES ('".$Roll_No."', '".$Name."', '".$Class."', '".$Marks."','".$Subject1."', '".$Sub2."', '".$Sub3."', '".$Adress."', '".$Phone."')") or die (mysql_error()); 

if ($sql === false) { 

die (mysql_error()); 

} 

else { 

echo 'The data is inserted in the database!.<br><br> 
} 
?> 
</body> 
</html> 

你只需要修改這個代碼位,以滿足您的需求。我希望這會有所幫助,祝你好運!

編輯: 要顯示所有從數據庫中的行,你可以使用一個for循環是這樣的:

<?php 
$i = 0; 
while($objResult = mysql_fetch_array($objQuery)) 
{ 
$i++; 
?> 
<tr> 
<td><input type="text" name="Roll_No" value="<?=$objResult["Roll_No"];?>"></td> 
<td><input type="text" name="Name" value="<?=$objResult["Name"];?>"></td> 
<td><input type="text" name="Class" size="20"></td> 
<td><input type="text" name="Marks" size="20"></td> 
<td><input type="text" name="Subject1" size="20"></td> 
<td><input type="text" name="Sub2" size="20"></td> 
<td><input type="text" name="Sub3" size="20"></td> 
<td><input type="text" name="Adress" size="20"></td> 
<td><input type="text" name="Phone" size="20"></td> 
</tr> 
<?php 
} 
?> 

注:如果您使用此for循環,你將不得不從SQL刪除以下行部分或者它不會從數據庫中顯示的第一行:

$objResult  = mysql_fetch_array($objQuery); 

注2:這隻會顯示所有從數據庫中的行,但如果你提交該會剛插入1行中的第2個數據庫。你將需要在insert.php中獲得某種循環,但我不確定這是如何工作的。

有關SQL部分的某些說明,您可以查看this tutorial!

+0

非常感謝,最後一個問題。是否有一個特定的循環方法來調用,所以我不需要創建100個記錄的表,該循環包含在上面的函數呢? – devilcrab 2013-04-08 08:15:54

+0

你能解釋一下你的sql代碼段嗎? – devilcrab 2013-04-08 08:23:38

+1

@devilcrab看看我的編輯。 – Daanvn 2013-04-08 08:37:37

0

繼承人的基礎知識如果你踩你使用PHP和MySQL ..


MSQLI

FIRST初學者:搭建配置數據庫USER,PASS,HOST,DBNAME

$conn = new mysqli('database_server','database_username','database_password','database_name'); 

第二:創建查詢(你可以插入,選擇,更新,刪除此處查詢)..

$result= $conn->query("SELECT * FROM users"); 

決賽:使用MySQL的功能顯示的記錄如..

while($row = $result->fetch_assoc()){ 
    echo $row['dabatase_columnname']; 
    echo $row['database_columnname']; 
} 
+0

謝謝!你能告訴我,有一個功能,我認爲在PHP或SQL,所以我們可以顯示像100首先自動記錄然後像24小時後101-200記錄等等..所以如何做到這一點? – devilcrab 2013-04-08 08:00:09

+1

參考http://dev.mysql.com/doc/refman/5.6/en/limit-optimization.html使用限制來顯示特定數量的記錄。 – 2013-04-08 08:01:50

+1

請不要建議初學者使用'mysql_query'。這是一個不推薦使用的界面,如果使用不當,會很危險,並且它將在未來的PHP版本中消失。你在這裏做的傷害比好。 – tadman 2013-04-10 05:34:34

0
//For connection setup 
$con=mysql_connect("localhost","root","");//For localhost 
//DB choosing 
mysql_select_db("sampldb",$con); 
//For inserting 
mysql_query("insert into table1 (name,rollno) values ('$name','$rollno')"); 
mysql_query("insert into table2 (name,rollno) values ('$name','$rollno')"); 

Dont update,insert the values in both the table at the time of inserting.So it is easy for you. 
+0

你也謝謝:) – devilcrab 2013-04-08 08:00:59

+0

請不要向初學者建議他們使用'mysql_query'。這是一個不推薦使用的界面,如果使用不當,會很危險,並且它將在未來的PHP版本中消失。你在這裏做的傷害比好。這個簡短的例子有一個[巨大的SQL注入漏洞](http://bobby-tables.com/),簡而言之,它代表了爲什麼你不應該使用mysql_query。 – tadman 2013-04-10 05:35:19

相關問題