php foreach döngüsü ile yardım

6 Cevap php

Bazı feryat foreach php döngü ile neyin yanlış olduğunu söyle lütfen edebilirsiniz.

foreach ($_POST[sortlist] as $key => $value) 
{
    $sql = "UPDATE sortable 
            SET color_order = " . mysql_real_escape_string($key) . " 
            WHERE id = " . mysql_real_escape_string($value);

    $result = mysql_query($sql) or die(mysql_error());
}

I keep getting warning: invalid argument suplied foreach() in .... when i upload to server

Teşekkürler

6 Cevap

$_POST['sortlist'], muhtemelen bir dizi değil. print_r($_POST) Orada ne var görmek için deneyin.

Değişim $_POST[sortlist] $_POST['sortlist'] çalışın

Ben $ _POST [sortList] bir dizi olmadığını varsayarak yaşıyorum. Bu yapmak için çalışıyoruz ne muhtemelen:

foreach ($_POST as $varname => $varvalue) {
    $sql = "update sortable set color_order = ".mysql_real_escape_string($varname)."   where id = ".mysql_real_escape_string($varvalue);
    $result = mysql_query($sql) or die(mysql_error());
 }

Ya $ _POST ['sortList'] bir dizi ise, bu deneyin:

foreach ($_POST['sortlist'] as $varname => $varvalue) {
    $sql = "update sortable set color_order = ".mysql_real_escape_string($varname)."   where id = ".mysql_real_escape_string($varvalue);
    $result = mysql_query($sql) or die(mysql_error());
 }

Bir ipucu: hata mesajı foreach satır anlamına gelir. Bu sadece bir değişken, döngü içinde değiştirilmez ki $ _POST [sortList], okur. Yani tüm SQL şeyler yok sayabilirsiniz; bu sorun ile alakalı değil. Hala hata kodu mümkün olan en küçük parçasına sorunu azaltabilir. İşte bunu çözmeye yardımcı olacaktır.

mysql_query onun çok güvensiz ve önerilmiyor kullanmayın.

mysqli_query, PDO kadar güvenli değil ama çok daha iyi olacak kullanmaya başlayabilirsiniz.

, Internet aşk için, bir SQL sorgusu kendinizi inşa etmeyin. Kullan PDO.