2013-05-02 73 views
0

我試圖在一個while循環中使用implode插入多行,但似乎無法使它工作。請幫助。我想插入多個名爲「weight」的值。像值30,20,15,10,5和其餘的emp_id和task_id。原諒我是一個新手,但請裸露在我身上。我還在學習。PHP - 在while循環中插入多行

page1.php中

$sql = mysql_query("SELECT 
        task_tbl.task_id, 
        task_tbl.task_name, 
        task_tbl.task_sem, 
        task_tbl.task_yr, 
        task_tbl.post_id, 
        post_tbl.post_id, 
        post_tbl.post_name AS ppost_name 
        FROM 
        task_tbl 
        LEFT JOIN 
        post_tbl 
        ON 
        task_tbl.post_id = post_tbl.post_id 
        WHERE 
        task_sem = '$sem' 
        AND 
        task_yr = '$yr' 
        ORDER BY 
        task_id ASC"); 

echo '<form action = "upds_peval.php" name = "add" method = "post">'; 

while($row = mysql_fetch_assoc($sql)){ 

     echo "<br/>"; 
     echo "<b>Employee ID No.:</b>"; 
     echo '<input size = "2" type = "text" name = "emp_id'.$id.'" value = "'; 
     echo $_POST['emp_id']; 
     echo '"/>'; 
     echo "<br/>"; 
     echo "<b>Work/Activity ID No.:</b> "; 
     echo '<input size = "2" type = "text" name = "task_id'.$row['task_id'].'" value = "'; 
     echo $row['task_id']; 
     echo '"/>'; 
     echo "<br/>"; 
     echo "<b>Work/Activity:</b> "; 
     echo $row['task_name']; 
     echo "<br/>"; 
     echo "<b>Weight:</b> "; 
     echo '<input size = "1" type="text" name="weight" value = ""/>'; 
     echo "%"; 
     echo "<br/>"; 

     } 

     echo '<input type="submit" name="submit" value="ADD"/>'; 
     echo "</form>"; 

輸出會是這樣:

員工ID編號:1001 工作/活動號2002: 工作/活動:監督維護和計算機的故障排除 重量:[__]%

員工ID號:1001 工作/活動ID號:2003 工作/活動:監督軟件安裝特徵研和維護 重量:[__]%

員工ID編號:1001 工作/活動ID號:2004年 工作/活動:維護,監控,並排除虛擬終端 重量:[__]%

|提交消息|

使page2.php

mysql_connect ("localhost", "root","") or die (mysql_error()); 
    mysql_select_db ("emp_db0"); 

    if(isset($_POST['submit'])){ 
    $_POST['weight']; 


    $vals=implode(",",$_POST); 

    error_reporting(E_ALL^E_NOTICE); 

    mysql_query("INSERT INTO peval_tbl(weight,task_id,emp_id) VALUES('$vals')"); 
    echo "<br/>"; 
    echo "You have successfully added work/activities!"; 
    echo "<br/>"; 
    } 
+0

輸出應該的,但你想說什麼?沒有?錯誤的輸出? – 2013-05-02 01:03:37

+0

你是否將'$ _POST ['weight']'的值賦給了任何變量?您的語句中的$ _POST'包含了什麼值$ vals = implode(「,」,$ _ POST)'? – 2013-05-02 01:05:08

+0

你爲什麼使用implode?爲什麼不是''。$ _ POST ['weight']。「','」。$ _ POST ['task_id']。「','」。$ _ POST ['emp_id']。「' – shapeshifter 2013-05-02 01:05:50

回答

1

根據我對您的問題的印象,您想要一個可擴展的表單,您可以在其中以一個名稱訪問其所有實例?

形式樣品的第一個實例:

<input size = "2" type = "text" name = "emp_id[]" value = "1"> 
<input size = "2" type = "text" name = "task_id[]" value = "5001"> 
<input size = "2" type = "text" name = "weight[]" value = "50"> 

第二個實例樣本:

<input size = "2" type = "text" name = "emp_id[]" value = "2"> 
<input size = "2" type = "text" name = "task_id[]" value = "5003"> 
<input size = "2" type = "text" name = "weight[]" value = "30"> 

這將您的文章轉換成數組

訪問:

$var_emp_id = $_POST["emp_id"]; 
$var_task_id = $_POST["task_id"]; 
$var_weight_id = $_POST["weight"]; 

使用一個循環訪問這些變量。 訪問EMP_ID的第一個實例u使用:

$var_emp_id[0]; //will output 1 
$var_emp_id[1]; //will output 2 

$var_task_id[0]; //will output 5001 
$var_task_id[1]; //will output 5003 

,將其插入您的數據庫:

for ($i = 0; $i <= count($var_emp_id); $i++){ 
    mysql_query("INSERT INTO peval_tbl(weight,task_id,emp_id) VALUES('$weight[$i]','$var_task_id[$i]','$var_emp_id[$i]')"); 
} 
+0

TNX很多隊友......它的工作就像魅力!爲你歡呼! – raziel2101 2013-05-02 04:26:45

+0

NP :),但我建議你使用PDO或mysqli作爲你的查詢,mysql_query已經被折舊了。 – Viscocent 2013-05-02 05:38:46

0

您正在處理$ _POST數組不正確,因此而不是重新編寫腳本試試這個。

這一行則page2.php添加到您的代碼中的mysql_connect

echo '<pre>' . print_r($_POST,true) . '</pre>'; 

此之前將轉儲後陣列的一個不錯的打印,所以你可以看到數據是如何到達$ _ POST。

+0

TNX ..我只得到這個 – raziel2101 2013-05-02 01:25:59

+0

'陣列 ( [EMP_ID] => 1001 [task_id5001] => 5001 [重量] => 90 [task_id5002] => 5002 [task_id5003] => 5003 [ task_id5004] => 5004 [task_id5005] => 5005 [task_id5006] => 5006 [task_id5009] => 5009 [提交] => ADD )' – raziel2101 2013-05-02 01:26:56

+0

名稱 「wieght」 是錯誤的。嘖。我如何一個接一個地打電話給他們,然後把他們一起插入? – raziel2101 2013-05-02 01:28:47

-2
$sql = "select * from login where nombre !='carlos'"; 
$result = $conn->query($sql); 
$index = 1; 
while($row = mysqli_fetch_array($result)){ 
    $valor = $row["nombre"]; 
    $valor2 = $row["apellido"]; 
    $insertsql= "insert into lista (`dato1`,`dato2`)values ('$valor', now())"; 
    // mysql_query($insertsql); 
    $conn->query($insertsql); 
    $index++; 
} 

http://www.baulphp.com/insertar-multiples-registros-ciclo-while-php/