2014-01-29 3 views
0

Я использую несколько форм, чтобы выбрать, что обновлять. только моя последняя форма исчезает после отправки. Я не думаю, что он даже обрабатывает обновление, которое он должен делать при подаче. , пожалуйста, помогите мне!проблемы с моей отправкой

код PHP:

if ($collect == "foto"){ 

          $sql = mysqli_query($link, "SELECT * FROM foto"); 
          $row = mysqli_fetch_assoc($sql); 
          $array = array(); 


           echo "<form method='POST'>"; 
           while ($row = mysqli_fetch_assoc($sql)) 
           { 
            echo "<input type='text' name='foto[]' value=".htmlspecialchars($row['foto'])."></input>"; 
           } 
           echo "<input type='submit' name='submit3' value='update'></input></form>"; 

           if (isset($_POST['submit3'])) { 
            echo "Finally!"; 
            $array = $_POST['foto']; 
            $i = 0; 
            foreach ($array as $foto) { 
            $ufoto = $array[$i]; 
            $sql =" 
             UPDATE 
              foto 
             SET 
              foto = '$ufoto' 
             WHERE 
              id = $i 
             "; 
            mysqli_query($link, $sql); 
            $i ++; 

            var_dump($array); 
            } 
           } 
          } 
+0

Из того, что я могу видеть, вы только открыть форму один раз; у вас нет предложения 'where' в вашем обновлении, поэтому все они будут одинаковыми, вы должны хотя бы пройти по« id »или некоторому полю для дифференциации. Помимо этого, я не совсем уверен, что вы говорите, идет не так. – Jon

+0

@jon без утверждения where в обновлении он обновляет все правильно? это цель. также проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю кнопку «Отправить», ничего не происходит. – Moopsish

+1

Итак, в таблице 'foto' у вас есть поле с именем' foto', которое вы хотите, чтобы каждый из них в базе данных менялся на входной текст? Если да, то как вы планируете это делать, все они будут обновлены до последнего в массиве, так как вам больше нечего отличать от других. – Jon

ответ

1
$_POST['foto'] = $array['foto']; 

должен, скорее всего, будет:

$array = $_POST['foto']; 

сценарий также открыт для атак с внедрением SQL.

+0

, изменяя это. Спасибо за информацию! – Moopsish

0

Перед редактированием я видел, что вы пренебрегли помещением action -трибута в свой form -tag. Этот атрибут action указывает, какой php-сайт должен обработать форму.

Подробнее здесь: http://www.w3schools.com/tags/att_form_action.asp

+0

Если «действие» не определено, оно отправляется самому себе. – Jon

+0

'В HTML5 атрибут действия больше не требуется.' - он представит себе, что атрибут действия опущен. – Prisoner

+1

Проклятье, html5! – npst

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