Autor Zpráva
Fury
Profil *
Ahoj,

mám problém při hromadném updatu do databáze v PHP. Načtu si do pole všechny hodnoty, pak si z nich udělám dotaz do db a ten pak teprve vložím přes mysql_query() do DB.

   $query = '';
    $arr = $_POST['zaplaceno'];
    foreach ($arr as $key => $value) 
    {
      
      $zaplaceno = $_POST['zaplaceno'][$key];
      $sleva = $_POST['sleva'][$key];
      $castka = $_POST['castka'][$key];
      $poznamka =  $_POST['poznamka'][$key];
      $query.="
      UPDATE
        kurzy_registrace_2 
      SET 
        zaplaceno = '$zaplaceno', 
        sleva = '$sleva', 
        castka = '$castka', 
        poznamka = '$poznamka' 
      WHERE 
        id = $key;
        
        ";
    
    }
    echo $query;
   mysql_query($query) or die(mysql_error());

Výsledek vypadá takto:
      UPDATE
        kurzy_registrace_2 
      SET 
        zaplaceno = 'NE', 
        sleva = '5', 
        castka = '150', 
        poznamka = '' 
      WHERE 
        id = 3171;
        
        
      UPDATE
        kurzy_registrace_2 
      SET 
        zaplaceno = 'NE', 
        sleva = '5', 
        castka = '150', 
        poznamka = '' 
      WHERE 
        id = 3172;
        
        
      UPDATE
        kurzy_registrace_2 
      SET 
        zaplaceno = 'NE', 
        sleva = '5', 
        castka = '150', 
        poznamka = '' 
      WHERE 
        id = 3174;

Ale vždy mi to vypíše chybu:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE kurzy_registrace_2 SET zaplaceno = 'NE', ' at line 12

Nevíte kde by mohl být problém?

Díky
Taps
Profil
Fury:
zkus
<?

    $arr = $_POST['zaplaceno'];
    foreach ($arr as $key => $value) 
    {
      
      $zaplaceno = $_POST['zaplaceno'][$key];
      $sleva = $_POST['sleva'][$key];
      $castka = $_POST['castka'][$key];
      $poznamka =  $_POST['poznamka'][$key];
     mysql_query("
      UPDATE
        kurzy_registrace_2 
      SET 
        zaplaceno = '$zaplaceno', 
        sleva = '$sleva', 
        castka = '$castka', 
        poznamka = '$poznamka' 
      WHERE 
        id = '$key'") or die(mysql_error());    
     
    
    }
    ?>
juriad
Profil
Fury:
mysql_query neumožňuje spuštění více dotazů najednou.
mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier.
lionel messi
Profil
Fury:
Keďže mysql_* funkcie sú depracted, mohol by sa hodiť prechod na MySQLi, kt. obsahuje aj funkciu mysqli_multi_query.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: