isset89
@isset89
Врёшь, тебе нравится

Как добавить записи в БД?

есть документ excel, в нем есть данные, я их добавляю в базу данных.
Номер | Тариф1 | Тариф2
23 | 130,7 | 0
24 | 22,6 | 33,08

Так вот, если в тарифе2 стоит 0 , то в бд попадает одна запись, иначе 2, в каком виде, должны попасть данные:
id | numb | tar | i
1 | 23 | 130,7 | 1
2 | 24 | 22,6 | 1
3 | 24 | 33,08 | 2

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

$numb = $val[1];
$t1 = $val[2];
$t2 = $val[3];
if (preg_match("/^[0-9]+$/",$t2)) { // собственно проверка на 0 на тариф2
$i=2; $t2 = $t1;
}
else
{
$i=1;
}
while($i <= 2)
{
$query="INSERT INTO mid (numb,tar,i) VALUES ('".addslashes($numb)."','$t2','$i')";
$connection = Doctrine_Manager::connection();
$statement = $connection->execute($query);
$i++;
}

У меня получаются записи вида:
id | numb | tar | i
1 | 23 | 130,7 | 1
2 | 24 | 22,6 | 1
3 | 24 | 22,6 | 2

Не могу понять, как в номер 24 , где i = 2 вставлять значение $tar2 = 33,08
Помогите, плиз
  • Вопрос задан
  • 267 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Alzasr
if (preg_match("/^[0-9]+$/",$t2)) { // собственно проверка на 0 на тариф2
$i=2; $t2 = $t1;
} 
else 
{
$i=1; 
}

В этом куске кода у тебя определяется чему будет равен $i. А дальше цикл по $i, т.е. если у тебя 0 (вернее цифры) то $i = 2 и цикл выполняется 1 раз, а если у тебя есть не только цифры (в твоем случае это запятая), то $i = 1 и цикл выполняется 2 раза. Поправь регулярку (самый простой вариант добавь запятую "/^[0-9,]+$/", но не совсем корректно), хотя я не знаю, чего ты хочешь добиться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 13:02
3000 руб./за проект
23 апр. 2024, в 12:52
15000 руб./за проект