|
|
|
| Есть массив $moments3 со значениями. Пример:
[1045] => Array
(
[minute] => 91
[minute_s] => 91
[seconds] => 6480
[text] => Игрок 29 идет в отбор
[goals1] => 5
[goals2] => 4
[type] => ref
[shots1] => 11
[shots2] => 6
[shots_v_stvor1] => 9
[shots_v_stvor2] => 4
[uglovye1] => 3
[uglovye2] => 1
[offside1] => 8
[offside2] => 3
[narusheniy1] => 4
[narusheniy2] => 3
[yellow1] => 2
[yellow2] => 0
[red1] => 0
[red2] => 0
[vladenie1] => 45.0549450549
[vladenie2] => 54.9450549451
[team] => 0
)
[1046] => Array
(
[minute] => 91
[minute_s] => 91
[seconds] => 6480
[text] => 29 играет чисто
[goals1] => 5
[goals2] => 4
[type] => ref
[shots1] => 11
[shots2] => 6
[shots_v_stvor1] => 9
[shots_v_stvor2] => 4
[uglovye1] => 3
[uglovye2] => 1
[offside1] => 8
[offside2] => 3
[narusheniy1] => 4
[narusheniy2] => 3
[yellow1] => 2
[yellow2] => 0
[red1] => 0
[red2] => 0
[vladenie1] => 45.0549450549
[vladenie2] => 54.9450549451
[team] => 0
)
[1047] => Array
(
[minute] => 91
[minute_s] => 91
[seconds] => 6480
[text] => 1.8 идет вперед
[goals1] => 5
[goals2] => 4
[type] => 0
[shots1] => 11
[shots2] => 6
[shots_v_stvor1] => 9
[shots_v_stvor2] => 4
[uglovye1] => 3
[uglovye2] => 1
[offside1] => 8
[offside2] => 3
[narusheniy1] => 4
[narusheniy2] => 3
[yellow1] => 2
[yellow2] => 0
[red1] => 0
[red2] => 0
[vladenie1] => 45.0549450549
[vladenie2] => 54.9450549451
[team] => 0
)
[1048] => Array
(
[minute] => 91.3333333333
[minute_s] => 91.3333333333
[seconds] => 6500
[text] => С мячом игрок 8
[goals1] => 5
[goals2] => 4
[type] => ref
[shots1] => 11
[shots2] => 6
[shots_v_stvor1] => 9
[shots_v_stvor2] => 4
[uglovye1] => 3
[uglovye2] => 1
[offside1] => 8
[offside2] => 3
[narusheniy1] => 4
[narusheniy2] => 3
[yellow1] => 2
[yellow2] => 0
[red1] => 0
[red2] => 0
[vladenie1] => 45.0549450549
[vladenie2] => 54.9450549451
[team] => 0
)
[1049] => Array
(
[minute] => 91.3333333333
[minute_s] => 91.3333333333
[seconds] => 6500
[text] => Игрок 29 идет в отбор
[goals1] => 5
[goals2] => 4
[type] => ref
[shots1] => 11
[shots2] => 6
[shots_v_stvor1] => 9
[shots_v_stvor2] => 4
[uglovye1] => 3
[uglovye2] => 1
[offside1] => 8
[offside2] => 3
[narusheniy1] => 4
[narusheniy2] => 3
[yellow1] => 2
[yellow2] => 0
[red1] => 0
[red2] => 0
[vladenie1] => 45.2554744526
[vladenie2] => 54.7445255474
[team] => 0
)
|
Сейчас я записываю в базу это так.
foreach($moments3 as $p => $moment)
{
$moment['seconds'] = $match_info ['matchs_date'] + $moment['seconds'] /$dlina;
dbquery
("INSERT INTO matchs_moment
(`moment_matchs_id`, `moment_text`, moment_type, `moment_goals1`, `moment_goals2`, moment_date_real, moment_seconds, moment_minute)
VALUES (
$match_id,
'".$moment['text']."',
'".$moment['type']."',
'".$moment['goals_1']."',
'".$moment['goals2']."',
'".$moment['seconds']."',
'".$moment['seconds']."',
'".$moment['minute']."')
");
}
|
Как записать массив одним запросом? | |
|
|
|
|
|
|
|
для: Sergeous
(22.04.2012 в 17:50)
| | А первичные ключи этого массива, чем являются? Или это просто порядковый индекс? | |
|
|
|
|
|
|
|
для: confirm
(22.04.2012 в 18:09)
| | Просто номер | |
|
|
|
|
|
|
|
для: Sergeous
(22.04.2012 в 18:30)
| | Тогда в цикле получайте из значений массива только те, ключи которые вы используете (судя по примеру вы не все записываете), функцией array_intersect_key, затем с помощью функции array_map экранируете спецсимволы (тут еще надо разобраться с вашей конфигурацией), а затем implode, чтобы в итоге получилась строка мгогостраничного запроса, которая выглядит как:
(val1.1,val2.1,val3.1,...,valN.1),(val1.2,val2.2,val3.2,...,valN.3), и т.д.
У вас еще некоторые значения рассчитываются, так что не забывайте добавлять и их, после array_intersect_key.
Только учтите, такая строка не может быть сколь угодно большой, и ограничивается настройкой mysql - max_allowed_packet. Это значение можно узнать:
mysql_query("SHOW VARIABLES LIKE 'max_allowed_packet'")
на него и нужно ориентироваться. | |
|
|
|
|
|
|
|
для: Sergeous
(22.04.2012 в 18:30)
| | Можно сделать примерно следующее:
$sqd= array();
for($i=0; $i<=count($massiv_s_dannimi); $i++){
$sqd[]="('".mysql_escape_string($dannie1)."', '".mysql_escape_string($dannie2)."', '".mysql_escape_string($dannie3)."')";};
$sql = "INSERT INTO table (dlya_dannih1, dlya_dannih2, dlya_dannih3) VALUES".implode(',', $sqd);
|
| |
|
|
|