Tek bir sorgu kullanarak bir MySQL tablodaki birden fazla kayıt güncellemek istiyorum. Temel olarak, bu farklı tarihlerde farklı insanlar için atamaları sahip olan bir görevleri tablodur. Bu atamaları değişti ve online form aracılığıyla teslim edildiğinde (hemen hemen tüm bekleyen atamalar) teslim alır POST verilerinin bir çok şey var. Ben bütün bu bilgileri sıralar ve ben bunun dışında istediğini alır bir algoritma yazdım, ama ben MySQL tablosunu güncelleştirmek için sorguyu yazmaya şaşırıp:
// Find the modified records and save their information
$update = 0;
for ( $n = 0; $n < $total_records; $n++ )
{
if ( $_POST['update'.$n] == true )
{
$updates_arr[$update] = array( intval($_POST['user_id'.$n]), intval($_POST['task'.$n]), $_POST['date'.$n] );
$update++;
}
}
if ( $mysql_db = OpenDatabase() )
{
$query = "UPDATE tasks_tbl";
if ( $updates_arr[0] )
{
$query .= " SET task = ".$updates_arr[0][1]." WHERE user_id = ".$updates_arr[0][0]." AND date = ".$updates_arr[0][2];
}
for ( $n = 1; $n < $updates; $n++ )
{
$query .= ", SET task = ".$updates_arr[$n][1]." WHERE user_id = ".$updates_arr[$n][0]." AND date = ".$updates_arr[$n][2];
}
$result = mysql_query( $query, $mysql_db );
if ( $result )
{
$page .= "<p>Success!</p>\n\n";
}
else
{
$page .= "<p>Error: ".mysql_error()."</p>\n\n";
}
}
Bu oluşturulan sorgu:
UPDATE tasks_tbl
SET task = 1
WHERE user_id = 16
AND date = 2010-05-05,
SET task = 1
WHERE user_id = 17
AND date = 2222-02-22
Herhangi bir öneriniz mutluluk duyacağız. Teşekkürler.