[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: нужна помощь с записью в базу
udal76
Здравствуйте,суть проблемы:
есть код:

class AminoAcid {
var $id;
var $season;
var $hue;
var $skin;
var $hair;
var $eyes;





function AminoAcid ($aa) {
foreach ($aa as $k=>$v)
$this->$k = $aa[$k];
}
}


function readDatabase($filename) {
// читать xml БД аминокислот
$data = implode("",file($filename));
$parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$data,$values,$tags);
xml_parser_free($parser);






// цикл по этим структурам
foreach ($tags as $key=>$val) {
if ($key == "item") {
$molranges = $val;
// каждая пара вхождений массива это нижняя и верхняя
// границы диапазона для определения каждой молекулы

for ($i=0; $i < count($molranges); $i+=2) {
$offset = $molranges[$i] + 1;
$len = $molranges[$i + 1] - $offset;
$tdb[] = parseMol(array_slice($values, $offset, $len));
}
}
else {
continue;
}
}

return $tdb;
}

function parseMol($mvalues) {
for ($i=0; $i < count($mvalues); $i++)
$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
return new AminoAcid($mol);
}

$db = readDatabase("007Y1.xml");








print_r($db);


Результат: Array ( [0] => AminoAcid Object ( [id] => [season] => [hue] => - [skin] => 07NN [hair] => 08NN [eyes] => 06NN )

Это $db надо прописать в базу.

Помогите разобраться с этим,а то есть как $db прописать в базу MySQL
заранее спасибо






Спустя 46 минут, 3 секунды (6.11.2010 - 23:48) Sanchopansa написал(а):
ну это тебе вернуло массив объектов

сделай что-то типа этого:


foreach ($db as $item)
{
//перед этим нужно инициализаровать поджключение к БД ну и создать собсно таблицу в БД
$res = mysql_query("INSERT INTO `teble` (`id`, `season`, `hue` , `skin`, `hair`, `eyes`) VALUES (null, '{$item->season}', '{$item->hue}','{$item->skin}','{$item->hair}','{$item->eyes}'");
if ($res !== TRUE)
{
echo "Ошибка!";
}
}


Спустя 28 минут, 53 секунды (7.11.2010 - 00:17) udal76 написал(а):
не работает
пишет ошибка!

Спустя 7 минут, 41 секунда (7.11.2010 - 00:25) Sanchopansa написал(а):
а ты создал таблицу в базе данных и произвел подключение?
это впринцыпе рабочее решение... добавь это после того как ты спарсил данные из XML файла

$conn_id = mysql_connect('адрес твоего сервера Mysql', 'имя пльзователя', 'пароль');
mysql_select_db('имя твоей БД', $conn_id);

foreach ($db as $item)
{
if (!mysql_query("INSERT INTO `teble` (`id`, `season`, `hue` , `skin`, `hair`, `eyes`) VALUES (null, '{$item->season}', '{$item->hue}','{$item->skin}','{$item->hair}','{$item->eyes}'", $conn_id))
{
echo "Ошибка!";
}
}

Спустя 2 минуты, 40 секунд (7.11.2010 - 00:28) udal76 написал(а):
Подключение к базе изначально сделано и таблица тоже

Спустя 3 минуты, 34 секунды (7.11.2010 - 00:31) Sanchopansa написал(а):
ну а ты поменял в тексте INSERTa имя таблицы на твое и имена полей в которые заносятся данные?

Спустя 1 минута, 41 секунда (7.11.2010 - 00:33) udal76 написал(а):
конечно поменял

foreach ($db as $item)
{
if (!mysql_query("INSERT INTO `item` (`season`, `hue` , `skin`, `hair`, `eyes`) VALUES ('{$item->season}', '{$item->hue}','{$item->skin}','{$item->hair}','{$item->eyes}'"))
{
echo "Ошибка!";
}
}



Спустя 4 минуты, 51 секунда (7.11.2010 - 00:38) Sanchopansa написал(а):
А что так выводит?
foreach ($db as $item)
{
if (!mysql_query("INSERT INTO `teble` (`id`, `season`, `hue` , `skin`, `hair`, `eyes`) VALUES (null, '{$item->season}', '{$item->hue}','{$item->skin}','{$item->hair}','{$item->eyes}'"))
{
echo mysql_error();
die();
}
}

Спустя 3 минуты, 58 секунд (7.11.2010 - 00:42) udal76 написал(а):
У Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом '' в линии 1

Спустя 3 минуты, 11 секунд (7.11.2010 - 00:45) Self написал(а):
"INSERT INTO `item`
SET `db` = "
.mysql_real_escape_string(serialize($db))

Спустя 22 минуты, 16 секунд (7.11.2010 - 01:07) Sanchopansa написал(а):
2Self А чем тут поможет serialize()?

Забыл закрыть скобку sad.gif
foreach ($db as $item)
{
if (!mysql_query("INSERT INTO `teble` (`id`, `season`, `hue` , `skin`, `hair`, `eyes`) VALUES (null, '{$item->season}', '{$item->hue}','{$item->skin}','{$item->hair}','{$item->eyes}')"))
{
echo mysql_error();
die();
}
}

теперь должно работать!

Спустя 2 минуты, 53 секунды (7.11.2010 - 01:10) udal76 написал(а):
Sanchopansa СПАСИБО БОЛЬШОЕ!
Я ПЯТЬ ДНЕЙ МУЧАЮСЬ,СПАСИБО ЕЩЕ РАЗ,ВИДНО ПРОФИ smile.gif

Спустя 4 минуты, 36 секунд (7.11.2010 - 01:15) Sanchopansa написал(а):
Всегда пожалуйста... рад помочь smile.gif
Быстрый ответ:

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