2013-05-02 5 views
0

Я пытаюсь вставить несколько строк в цикл while с помощью формы с помощью implode, но не может заставить ее работать. Помощь Pls. Я хочу вставить несколько значений с именем «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>"; 

выход будет, как:

Employee ID No .: 1001 Работа/Activity ID No .: 2002 Работа/Деятельность: Контролирует Обслуживание и устранение неполадок компьютеров Вес: [__]%

Employee ID No .: 1001 Работа/Activity ID No .: 2003 Работа/активность: не Руководит Software Instal не ляционной и техническое обслуживание Вес: [__]%

Employee ID No .: 1001 Работа/Activity ID No .: 2004 Работа/активность: Ведет, мониторы и Устраняет неисправность виртуальных терминалов Вес: [__]%

| SUBMIT |

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

Выход должен быть, но то, что вы получаете? Ничего? Неверный выход? –

+0

Вы присваиваете значение '$ _POST ['weight']' любой переменной? какое значение содержится вашим '$ _POST' в вашем заявлении' $ vals = implode (",", $ _ POST) '? –

+0

Почему вы используете implode? Почему не просто «». $ _ POST ['weight']. "','". $ _ POST ['task_id']. "','". $ _ POST ['emp_id']. "' – shapeshifter

ответ

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

второй образец Instance:

<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 и использовать:

$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

+0

np :), но я предлагаю вам использовать PDO или mysqli для ваших запросов, mysql_query уже был обесценен. – Viscocent

0

Вы обращаетесь массив $ _POST неправильно, так что вместо перекодировать ваш сценарий попробовать это.

Добавьте эту строку кода в page2.php перед mysql_connect

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

Это сбросит хороший оттиск почтового массива, так что вы можете увидеть, как данные поступают в $ _POST.

+0

Тпх .. я только получил это – raziel2101

+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

+0

название "Wieght" является неправильным. яй. Как я их называю один за другим и вставляю их вообще? – raziel2101

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

Смежные вопросы