PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (82): В начало « ... 20 21 22 23 [24] 25 26 27 28 ... » В конец

> Найдено сообщений: 1219
snikers987 Отправлено: 05 Марта, 2012 - 21:34:27 • Тема: Помогите вытощить текст • Форум: Вопросы новичков

Ответов: 12
Просмотров: 793
PHP:
скопировать код в буфер обмена
  1. $test ='onlitu123131312_0998616';
  2. $result = preg_match('/([\d]+)\_([\d]+)/', $test, $found);
  3. $ts1 = $found[1];//123131312
  4. $ts2 = $found[2];//0998616
snikers987 Отправлено: 05 Марта, 2012 - 17:47:46 • Тема: Подсчет возраста по дате рождения • Форум: Пользовательские функции

Ответов: 2
Просмотров: 931
improbable пишет:
колумб

Очень приятно)
snikers987 Отправлено: 05 Марта, 2012 - 11:58:32 • Тема: Уникальный ключ • Форум: Работа с СУБД

Ответов: 10
Просмотров: 3010
Мелкий пишет:
Именно так и должно быть. В теории. Препарированные запросы как раз и должны ускорять одинаковые запросы с различающимися данными.
Но время работы мерить надо. У меня нет данных о том, насколько быстры препарированные запросы.

Ну тогда я лучше сформирую строку запроса и отправлю обычным query().
snikers987 Отправлено: 05 Марта, 2012 - 11:49:22 • Тема: Уникальный ключ • Форум: Работа с СУБД

Ответов: 10
Просмотров: 3010
Мелкий пишет:
snikers987 пишет:
Еще такой вопрос о prepared statement, как организовать чтобы insert был подготовлен, а потом биндить параметры, если изначально количество вставляемых строк не известно?
Возможно ли так?

Так препаруется запрос на вставку 1 строки и потом биндится столько, сколько нужно.


PHP:
скопировать код в буфер обмена
  1. $stmt = $mysqli->prepare('INSERT INTO `test` (`f1`) VALUES (?)');
  2. for($i=0; $i < 10; $i++){
  3.         $stmt->bind_param('i', $i);
  4.         $stmt->execute();
  5. }

Тоесть так? Если $stmt->execute(); вынести за пределы цикла, то вставляется 1 строка.
А так получается каждая строка вставляется отдельным запросом?
Что не верно?
ЗЫ PHP 5.3.8 , MySQL 5.6
snikers987 Отправлено: 05 Марта, 2012 - 10:53:24 • Тема: Уникальный ключ • Форум: Работа с СУБД

Ответов: 10
Просмотров: 3010
Мелкий пишет:
Я бы вытянул в массив id'шники юзверей, убрал бы подзапрос.

так и сделал.
Еще такой вопрос о prepared statement, как организовать чтобы insert был подготовлен, а потом биндить параметры, если изначально количество вставляемых строк не известно?
Возможно ли так?
snikers987 Отправлено: 05 Марта, 2012 - 10:14:51 • Тема: PDO • Форум: Вопросы новичков

Ответов: 3
Просмотров: 143
f0rce win или *nix?
snikers987 Отправлено: 05 Марта, 2012 - 10:03:54 • Тема: Уникальный ключ • Форум: Работа с СУБД

Ответов: 10
Просмотров: 3010
А можно ли тут обойтись без подзапросов?
есть запрос
CODE (SQL):
скопировать код в буфер обмена
  1. INSERT IGNORE INTO `users` (`email`, `name`, `add_to_list`) VALUES ('bla','bla','bla'),...

Он каждый раз вносит 1000 строк.
затем мне нужно добавить записи во вторую таблицу
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. INSERT IGNORE INTO `action` (`pid`, `course_name`, `date`, `course_id`) VALUES ((SELECT `id` FROM `users` WHERE `email` = 'root@domain.com'), 'title', '0000-00-00 00:00:00', 1234),..
  3.  

Второй запрос может добавить за раз около 5000 строк, правильно ли я получаю pid ?
работа этих запросов будет раз в неделю, но с большим количеством строк
(Добавление)
Мелкий пишет:
snikers987, любой ключ, в том числе и первичный, может быть составным. Для уникального или первичного составного ключа поведение будет соответствовать именно описанному в задаче.

Спасибо, учту.
snikers987 Отправлено: 05 Марта, 2012 - 09:19:54 • Тема: Уникальный ключ • Форум: Работа с СУБД

Ответов: 10
Просмотров: 3010
Panoptik пишет:
первичный ключ по двум полям

Первичный ключ не может вообще повторяться, а мне нужно было исключить повторения в паре.Решение я написал в первом посте.
snikers987 Отправлено: 04 Марта, 2012 - 21:25:31 • Тема: Уникальный ключ • Форум: Работа с СУБД

Ответов: 10
Просмотров: 3010
Можно ли сделать что-то типа уникального ключа, но примерно так:

в таблице есть два поля, по отдельности каждое из них может повторятся, а вместе они не могут повторятся в одной строке.

Примерно так:
1 | 2
2 | 1
1 | 3
2 | 3

но не так
1 | 2
2 | 1
1 | 2
2 | 1
(Добавление)
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE UNIQUE INDEX `mykey`
  3. ON `table` (`field`, `field2` )
  4.  
snikers987 Отправлено: 03 Марта, 2012 - 14:49:36 • Тема: Не работает код mail(); или $_POST[] • Форум: Вопросы новичков

Ответов: 17
Просмотров: 677
денвер?
snikers987 Отправлено: 03 Марта, 2012 - 14:17:23 • Тема: Не работает код mail(); или $_POST[] • Форум: Вопросы новичков

Ответов: 17
Просмотров: 677
snikers987 Отправлено: 03 Марта, 2012 - 13:48:22 • Тема: Выборка из объединенных таблиц • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 123
Tatyanko_O 'NULL' !== NULL
snikers987 Отправлено: 01 Марта, 2012 - 19:08:20 • Тема: Подсчет возраста по дате рождения • Форум: Пользовательские функции

Ответов: 2
Просмотров: 931
Цитата:

int getAgeFromDate (string $date)

PHP:
скопировать код в буфер обмена
  1. function getAgeFromDate($date){
  2.         return floor((time()-strtotime($date))/(60*60*24*365.25));
  3. }


Эта однострочная функция довольно точно подсчитывает возраст, при чем даже на граничных датах - за 1 день до дня рождения возраст будет верным.

пример:
PHP:
скопировать код в буфер обмена
  1. //database connection is already established
  2. $rgResult = $mysqli->query("SELECT DATE_FORMAT(`birthday`, '%d %M %Y') as birthdate FROM `users` WHERE `user_id` = 1")->fetch_assoc();
  3. echo getAgeFromDate($rgResult['birthdate']); //тоесть формат даты, к примеру, 1 April 1957
  4.  

Естественно поле birthday в бд должно иметь тип date или timestamp или datetime
snikers987 Отправлено: 29 Февраля, 2012 - 08:54:32 • Тема: Встроить переменную в класс • Форум: Вопросы новичков

Ответов: 6
Просмотров: 278
PHP:
скопировать код в буфер обмена
  1.  
  2. class Foo{
  3.     protected $rgConfig;
  4.     public function __construct($rgConfig = array()){
  5.         $this->rgConfig = $rgConfig;
  6.     }
  7.     public function getConfig(){
  8.         return $this->rgConfig;
  9.     }
  10.  
  11. }
  12. $conf['data'] = 1;
  13. $foo = new Foo($conf);
  14. $myconfig = $foo->getConfig();
  15. echo $myconfig['data']; //1
  16.  
snikers987 Отправлено: 28 Февраля, 2012 - 16:04:33 • Тема: Как правильно? • Форум: Вопросы новичков

Ответов: 12
Просмотров: 391
Цитата:
в курс БД включен РНР

Не пришей рукав к ...
Надо еще и Си включить..

Страниц (82): В начало « ... 20 21 22 23 [24] 25 26 27 28 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB