[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с добавлением строки в mysql
svolota
$dblocation = "localhost"; // Имя сервера
$dbuser = "root"; // Имя пользователя
$dbpasswd = "root"; // Пароль
$dbconnect = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbconnect) // Если дескриптор равен 0 соединение не установлено
{
echo("ошибка соед с базой данных");
exit();
}

//изменяем базу данных
$products_id = 0;
$shablon_prname = '"(.*)"';//шаблон названия
$shablon_space = '([[:space:]]+)';

foreach ($products_mass as $val)//$products_mass - массив заполн. строками типа (9999 "Баян" 29.0 22.2)
{
if (ereg ($shablon_prname, $val, $name_pharse))
{
echo $name_pharse[0].'<br>';//название продукта
$val=str_replace($name_pharse,'',$val);//удаляем имя которое в базе не нужно
}
// то что ниже пока не думал как сократить
if (ereg ($shablon_space, $val, $name_pharse))
$val=str_replace($name_pharse,'*',$val);
if (ereg ($shablon_space, $val, $name_pharse))
$val=str_replace($name_pharse,'*',$val);

//разделяем запись на 3 части символами '*'
$product_descr = explode('*',$val);
$products_model = $product_descr[0];//products_model
//$val теперь в формате xx*xx.x*xx.x
//$products_model - код продукта
//$product_descr[1] - цена продукта
//echo $product_descr[2].' баллы<br>';

mysql_query("use spi;");
$zapr = mysql_query("select * from products where products_model = $products_model;");

if($zapr)
{
while($row = mysql_fetch_row($zapr))
{
echo "id: ".$row[0].'<br>';//products_id
echo "products model: ".$row[6].'<br>';//products_model
echo "price: ".$row[12].'<br><br>';//products_price
//intval();преобразует 15.000 в 15

mysql_query("UPDATE products SET products_price=$product_descr[1] WHERE products_model=$row[6];");
}
}

else {echo 'gogi';}


база имеет следующий вид:
product_id int(11) PRI auto_incr
product_model int(11)
product_price
....
я так понимаю, что если не $zapr т.е в массиве product_mass оказался элемент с product_ model которого нет в базе, то вместо того, чтобы напечатать мне id, product_model и price он должен напечатать gogi, но что то не печатает, помогите плз.




Спустя 13 минут, 28 секунд (13.06.2011 - 22:16) linker написал(а):
Нет, ты не так понимаешь. $zapr - есть ссылка на ресурс (или иначе, переменной ресурсного типа), который является результатом работы SQL-запроса. Даже при нулевом результате $zapr будет true, и только в случае ошибки в SQL-запросе, $zapr будет равен false. mysql_num_rows() поможет.

Спустя 15 минут, 16 секунд (13.06.2011 - 22:31) svolota написал(а):
Спс большое! Работает B) Исправил:
$zapr = mysql_query("select * from products where products_model = $products_model;");
$kol_sovp = mysql_num_rows(mysql_query("select * from products where products_model = $products_model;"));
//$zapr2 = mysql_query("select * from products;");
//$summ_rowsdb = mysql_num_rows($zapr2);
//echo $summ_rowsdb;


if($zapr)
{
while($row = mysql_fetch_row($zapr))
{
echo "id: ".$row[0].'<br>';//products_id
echo "products model: ".$row[6].'<br>';//products_model
echo "price: ".$row[12].'<br><br>';//products_price
//intval();преобразует 15.000 в 15

mysql_query("UPDATE products SET products_price=$product_descr[1] WHERE products_model=$row[6];");
}
}

if ($kol_sovp==0) {echo 'gogi';}

Спустя 14 минут, 30 секунд (13.06.2011 - 22:46) linker написал(а):
$zapr = mysql_query("select * from products where products_model = $products_model;") or die(mysql_error());
if (mysql_num_rows($zapr))
{
while($row = mysql_fetch_row($zapr))
{
...
}
}

else
echo 'gogi';

Спустя 14 часов, 11 минут, 10 секунд (14.06.2011 - 12:57) svolota написал(а):
$zapr = mysql_query("select * from products where products_model = $products_model;") or die(mysql_error());

к слову о пользе "or die(mysql_error())" очень полезная штука :) , попросту лень было писать, из-за этого убил 30 минут времени на поиск ошибки в коде, в итоге написал. Ошибку возвр sql - неверный формат даты - забыл в ковычки заключить дату B)
Быстрый ответ:

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