2014-11-02 36 views
0

我需要從名爲wishlist的表中插入數據到另一個表(wishlisturi_salvate)中,並且儘管插入看起來沒問題,但是某些東西不能正常工作並且沒有進行任何操作。感謝您的幫助, 對此,我真的非常感激。使用while循環插入到數據庫

<?php 
session_start(); 
include ('conex.php'); 
$sel2="select id_wishlist from wishlisturi_salvate"; 
$que2=mysql_query($sel2); 
while($rez2=mysql_fetch_array($que2)) 
{ 
$a=$rez2['id_wishlist']; 
} 
$id_wishlist=$a; 
echo $id_wishlist; 
$sel="SELECT * from wishlist"; 
$que=mysql_query($sel); 
while ($rez=mysql_fetch_array($que)) 
{ 
$insert="INSERT INTO 'wishlisturi_salvate'('id_user', 'id_wishlist', 'id_produs',  'nume_produs', 'pret_produs', 'cantitate_produs', 'suma') 
    VALUES('".$_SESSION['id']."','".$id_wishlist."','".$rez['id_produs']."','".$rez['nume_produs']."','".$rez['pret_produs']."','".$rez['cantitate_produs']."','".$rez['suma']."')"; 
if(!mysql_query($insert)) echo "fml"; 
echo "<br>".$insert; 
} 

if(mysql_query($insert)) 
{ 
header("location:user.php"); 
} 
else echo "Nu s-a facut inserarea"; 
?> 
+0

'回聲mysql_error()'是你的朋友。 – 2014-11-02 10:27:10

回答

1

無插入被作出,因爲查詢中錯誤的最有可能的:

蝙蝠權,已經有一個錯誤:

INSERT INTO 'wishlisturi_salvate'('id_user', 'id_wishlist', 'id_produs',  'nume_produs', 'pret_produs', 'cantitate_produs', 'suma') 

正確表的報價/列名必須是backtickts,而不是單引號

INSERT INTO `wishlisturi_salvate` (`id_user`, `id_wishlist`, `id_produs`, `nume_produs`, `pret_produs`, `cantitate_produs`, `suma`) 

或者只是忽略它們,它在這個行不行案件。

強制性注:

Please, don't use mysql_* functions in new code . They are no longer maintained and are officially deprecated . See the red box ? Learn about prepared statements instead, and use PDO or MySQLi - this article will help you decide which. If you choose PDO, here is a good tutorial .

旁註:

如果您還沒有準備好,隨時打開錯誤報告:

error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
+0

是的,我犯了一個錯誤,但我沒有使用單引號和反提示嘗試,但它仍然不能正常工作,所以這不是主要問題。你能想出來嗎?我真的需要得到這個東西,因爲這是一個項目,我沒時間了...... – mihaicata1205 2014-11-02 10:35:09

+0

@ mihaicata1205只是做一步一步的調試,從第一個查詢開始,檢查ID是否正確回顯,接下來爲下一個查詢構建sql語句,再次回顯,並且可以使用'mysql_query(..)或者die(mysql_error());' – Ghost 2014-11-02 11:54:56

+0

是的,我試過了,但我無法弄清楚問題:插入有什麼問題嗎?(除了單引號) – mihaicata1205 2014-11-02 12:12:39

0

首先我會rcomend你使用PDOmysqli而不是mysql來避免SQL注入。

無論如何,如果你想插入一個表中的元素到另一個表中,我建議你使用插入語句和子選擇。這樣會更快,你會浪費更少的內存。

0

不是答案,更多是觀察;循環遍歷結果來構建一次發送給db的單個SQL插入多條語句會更有效率。

$insert = "INSERT INTO 'wishlisturi_salvate'('id_user', 'id_wishlist', 'id_produs',  'nume_produs', 'pret_produs', 'cantitate_produs', 'suma') VALUES "; 

foreach(of your results){ 
$insert .= "(x,y,z,a,b,c,d),"; 
} 

// now trim off last comma, then send to db. 
// or create an array then join it to the $insert 

同樣的信息可以在這裏讀到:http://www.electrictoolbox.com/mysql-insert-multiple-records/

+0

啊是的,子選擇爲user1514329說。在你的db中完成這項工作。 – Cups 2014-11-02 10:28:52

+0

這是正確的,感謝您的建議,但首先我需要得到這件事,比我可以優化它。 – mihaicata1205 2014-11-02 10:36:31