[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: БД Mysql и конструкция If and Else
OTDUSHIWINSTON
Вот в чём заключается сложность:
Есть форма из которую мы вводим сумма, которая в свою очередь отправляется в ДБ и отнимается от суммы в графе summa.
В БД на Mysql есть 2 графы: summa и min.
Нужно создать условие такое, что есть в введённое значение суммы больше чем значения в графах 'summa' - 'min' то на вывод echo "Не возможно обновить БД" иначе возможно. Вот как ето можно сделать:

Форма из которой отправляем
<form action="" method="post" name="form">
<tr
align="center">
<td
width="200">
<select
name="namezapros"><option value="Пользователь 1">Пользователь 1</option><option value="Пользователь 2">Пользователь 2</option><option value="Пользователь 3">Пользователь 3</option><option>Пользователь 7</option> </select></td>
<td
width="200"><input type="text" value="" name="summazapros" width="20"> </td>
<td
width="200" rowspan="2"><input type="submit" name="button" value="Отправить"> </td>
</tr>
</form>



Подключаемся к БД
$db = mysql_connect("localhost","FLIK","111111");
mysql_select_db("VKBD",$db);





Делаем выборку
$result=mysql_query('SELECT * FROM users',$db);
$myrow=mysql_fetch_array($result);


И условие
$z=$_POST['summazapros'];	
if ($z>$myrow['summa']-$myrow['min'])
{
echo "Не возможно обновить БД";
}
Else
{
$result1 = mysql_query("UPDATE users SET summa = summa - $z WHERE id = '2'",$db);
$result1 = mysql_query("UPDATE users SET summa = summa + $z WHERE id = '1'",$db);

}


И вот не пашет нифига. Помогите разобраться в логике, как ето объяснить кампутеру?



Спустя 43 минуты, 4 секунды (9.01.2012 - 21:13) 10ozoz написал(а):
Я не уверен что в этом но что это ?
if ($myrow['summa']>$myrow['summa']-$myrow['min'])

Может так ?
if ($myrow['summa']>($myrow['summa']-$myrow['min']))

Спустя 18 минут, 23 секунды (9.01.2012 - 21:31) OTDUSHIWINSTON написал(а):
не не катит((( то что z и z1 то исправил, они одинаковые и всё равно не пашет

Спустя 1 час, 27 минут, 29 секунд (9.01.2012 - 22:59) inpost написал(а):
Код показывать целиком, а не отрывками. То есть ты выбираешь все записи, значит должен быть какой-то цикл, но цикла с проверкой данных не вижу.

Спустя 22 минуты, 11 секунд (9.01.2012 - 23:21) OTDUSHIWINSTON написал(а):
Выбираю всю таблицу
$result=mysql_query('SELECT * FROM users',$db);

потом всю первую строку
$myrow=mysql_fetch_array($result);

А ето графы находящиеся в первой строке с типом varchar
if ($z>$myrow['summa']-$myrow['min'])

Это работает есе от туда убрать $z которая отправленна с помощью $_POST, как их заставить работать вместе?

Спустя 7 минут, 27 секунд (9.01.2012 - 23:28) Игорь_Vasinsky написал(а):
с varchar - нельзя арифмитические вычесления проводить. INT

Спустя 8 минут, 45 секунд (9.01.2012 - 23:37) OTDUSHIWINSTON написал(а):
переименовал тип в INT, всё равно не катит, такое чувство что разные переменные и он их не видит када они вместе сравниваются

Спустя 51 минута, 19 секунд (10.01.2012 - 00:28) inpost написал(а):
OTDUSHIWINSTON
$temp = (int)$var1-(int)$var2;
if($z < $temp)
{
действие
}

Спустя 7 минут, 26 секунд (10.01.2012 - 00:36) Winston написал(а):
if ($z > ((int)$myrow['summa'] - (int)$myrow['min']))

Спустя 8 часов, 52 минуты, 51 секунда (10.01.2012 - 09:29) OTDUSHIWINSTON написал(а):
Сделал так:
$temp = (int)$myrow['summa']-(int)$myrow['min'];
if ($select=='Пользователь 1'&& $z > $temp)

и так
if ($select=='Пользователь 1' && $z > ((int)$myrow['summa'] - (int)$myrow['min']))

Такая же песня, при любом $z делает действие Else. Такое чувство что программа вместе с $z не видит переменные вытягиваемые из БД. Что ж делать та? :blink:

Спустя 16 минут, 20 секунд (10.01.2012 - 09:45) OTDUSHIWINSTON написал(а):
Ага понял чё за фигня. Он вытаскивает из первой строчки, а мне надо чтоб со второй начинал. В другом коде чтоб с 3ей, ет как ему задать?

Спустя 53 минуты, 58 секунд (10.01.2012 - 10:39) OTDUSHIWINSTON написал(а):
Спасибо ребята всё получилось!)))) Самый лучший форум тут, остальные молчат, всех друзей по заказам к Вам отправлять буду))))

Спустя 32 минуты, 37 секунд (10.01.2012 - 11:12) Winston написал(а):
Цитата (OTDUSHIWINSTON @ 10.01.2012 - 09:39)
всех друзей по заказам к Вам отправлять буду

Во! Давай, заказчиков здесь не хватает на всех smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.