Никак не могу решить проблему : у нас есть массив, который содержит ряд ссылок $link[0] , нужно сделать так : что бы каждая ссылка из этого массива записывалась в БД, причём одна ссылка, в одну строку. Как такое реализовать, и можно ли вообше? Заранее спасибо!
PHP: <?php $query = "INSERT INTO tbl (links) "; $beg = true; foreach ($link as $val) { if (!$beg) $query .= ", "; $query .= "VALUES ('$val')"; $beg = false; } mysql_query($query);
Ну тогда так=) PHP: <?php $query = "INSERT INTO tbl (links) VALUES "; $beg = true; foreach ($link as $val) { if (!$beg) $query .= ", "; $query .= "('$val')"; $beg = false; } mysql_query($query);
Хм, у меня пишет ошибку : Warning: Invalid argument supplied for foreach() in W:\home\localhost\www\1.php on line 33
Мм ну вот весь код моего приложения Код (Text): $file = "http://www.photoshop-master.ru/rss_les2.php"; $XML = file_get_contents($file); if(!$XML) continue; $ITEMS = GetXMLAllVal($XML, 'item'); foreach($ITEMS as $item){ $title = GetXMLFirstVal($item, 'title'); $link = GetXMLFirstVal($item, 'link'); $text = GetXMLFirstVal($item, 'description'); $date = GetXMLFirstVal($item, 'pubDate'); $title = html_entity_decode($title, ENT_QUOTES); $text = html_entity_decode($text, ENT_QUOTES); print("<em><a href=\"$link\" style=\"text-decoration: none\" >".$title."</a></em> <i>".$date."<br /><hr color=\"#CCCCCC\" />".$text."<br /><hr color=\"#CCCCCC\" /><br /><br />"); } function GetXMLFirstVal($r,$t) { if(preg_match_all('/<('.$t.')[^>]{0,}>(.*)<\/\\1>/Usi',$r,$o)) return $o[2][0]; return ''; } function GetXMLAllVal($r,$t) { if(preg_match_all('/<('.$t.')[^>]{0,}?>(.*)<\/\\1>/Usi',$r,$o)) return $o[2]; return array(); }
Попробуй так PHP: <?php $file = "http://www.photoshop-master.ru/rss_les2.php"; $XML = file_get_contents($file); if(!$XML) continue; $ITEMS = GetXMLAllVal($XML, 'item'); $query = "INSERT INTO tbl (links) VALUES "; $beg = true; foreach($ITEMS as $item){ $title = GetXMLFirstVal($item, 'title'); if (!$beg) $query .= ", "; $link = GetXMLFirstVal($item, 'link'); $query .= "('$link')"; $beg =false; $text = GetXMLFirstVal($item, 'description'); $date = GetXMLFirstVal($item, 'pubDate'); $title = html_entity_decode($title, ENT_QUOTES); $text = html_entity_decode($text, ENT_QUOTES); print("<em><a href=\"$link\" style=\"text-decoration: none\" >".$title."</a></em> <i>".$date."<br /><hr color=\"#CCCCCC\" />".$text."<br /><hr color=\"#CCCCCC\" /><br /><br />"); } function GetXMLFirstVal($r,$t) { if(preg_match_all('/<('.$t.')[^>]{0,}>(.*)<\/\\1>/Usi',$r,$o)) return $o[2][0]; return ''; } mysql_query($query); function GetXMLAllVal($r,$t) { if(preg_match_all('/<('.$t.')[^>]{0,}?>(.*)<\/\\1>/Usi',$r,$o)) return $o[2]; return array(); }
Хм... выводит : Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in W:\home\localhost\www\1.php on line 25 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in W:\home\localhost\www\1.php on line 25 Я сам разобраться немогу.... Вообше у меня цель такая : всю информацию из $title, $date, $description забить в БД построчно, а потом это выводить в цикле... Главное мне их в Бд забить...
Так, ошибку исправил, просто коннект к базе не подписал (вот я идиот), ошибок нету, но и в базу ничего не добовляется
Тут ошибка элементарная, в готовый запрос бы догадался кто посмотреть. Скобки должны один раз открываться и один раз закрываться, значения в них должны идти через запятую. А у вас куча скобок получается.
Напиши тогда так PHP: <? $res = mysql_query($query) or die($res); Посмотри если ничего не выведет значит должен записывать=)
free-bits [vs] Дык вроде каждый линк должен быть на новой строчке в таблице да мне так именно нужно, просто свосем необязательно что бы эти данны изменялись при изменянии в рсс ленте, насколько я понимаю, все перменные в коде это массивы... и вот из них, всю информацию надо раскидать построчно соотвествено : ссылка1 - название1- описание1 ; ссылка2-названи2-описание2 и так до конца...
Когда надо несколько срок добавить в таблицу в одно запросе это выглядит так? Код (Text): INSERT INTO ... (..., ...) VALUES (..., ...), (..., ...) Или так? Код (Text): INSERT INTO ... (..., ...) VALUES (..., ...), VALUES (..., ...)