|
|
|
|
|
для: cheops
(20.10.2006 в 12:50)
| | Разобрался кажется .. спасибо | |
|
|
|
|
|
|
|
для: Bu1D0zeR
(19.10.2006 в 23:57)
| | У вас первичный ключ таблицы sites не снабжён атрибутом AUTO_INCREMENT, поэтому передача пустой строки приводит к ошибке - не срабатывает автоувеличение столбца. | |
|
|
|
|
 134.3 Кб |
|
|
для: Trianon
(20.10.2006 в 09:04)
| | Ой .. простите .. не ту картинку прилепил ... сейчас та что надо ...
ЗЫ. Предыдущую можно удалить ...
To Trianon:
Ну может эти самые строки можно обозвать ячейками ... | |
|
|
|
|
|
|
|
для: Bu1D0zeR
(19.10.2006 в 23:57)
| | >то есть записи в таблице начинаются со второй строки столбца..
>Но я считал что они расцениваются в запросе как "ничего не добавлять" ..
Впечатление такое, что Вы полагаете, что у каждого столбца свои собственные строки. Это не так. | |
|
|
|
|
|
|
|
для: cheops
(19.10.2006 в 23:45)
| |
Ошибка - Duplicate entry '' for key 1
|
Хм..
Кажется понял ... дублируются - ' '
Но я считал что они расцениваются в запросе как "ничего не добавлять" ..
Переделал запрос ... сделал вот так ради теста:
$query = mysql_query ("INSERT INTO sites VALUES ('".$i."','".mysql_escape_string($links[1][$i])."','".$i."','".$i."','".$i."')");
|
Линки добавляются !!
Но ... смотрите прикрепленный скриншот экрана...
ЗЫ. Вы извините если вот так по крупицам приходится с меня информацию тянуть (: ... просто досадно что "то что кажется простым, на самом деле довольно сложно" | |
|
|
|
|
|
|
|
для: Bu1D0zeR
(19.10.2006 в 23:40)
| | А ошибку (mysql_error()) он какую теперь выводит? | |
|
|
|
|
|
|
|
для: cheops
(19.10.2006 в 22:57)
| | Вот так вот:
INSERT INTO sites VALUES (' ','<a tabindex=\"2\" onclick=\"r(this, \'iweb/path=80.22.82\');\" href=\"http://www.cyberguru.ru/\" target=\"_blank\">\r\nCyberGuru - <b>программирование</b> и софт, все о компьютерах и ... </a>',' ',' ',' ')
|
и еще если закоментировать первый блок кода в котором записываются URL сайтов, то один линк записывается в базу (но почему только один..)
<?php
include "db.php";
$parsed_file = file_get_contents ("test.htm");
preg_replace ('|[\r\n\t\s]{2,}|','<br>',$parsed_file);
/*
if (preg_match_all ('|<a tabindex.*?([a-zA-Z]+://[-a-zA-Z0-9.]+[a-zA-Z]{2,4}).*?<\/a>|is',$parsed_file,$site_url)) {
for ($i = 0; $i <= count($site_url[1]); $i++) {
echo $site_url[1][$i]."<br>";
$query = mysql_query ("INSERT INTO sites VALUES ('".mysql_escape_string($site_url[1][$i])."','','','','')");
//if(!$query) echo ("Ошибка - ".mysql_error()."<br>INSERT INTO sites VALUES ('".mysql_escape_string($site_url[1][$i])."','','','','')");
}
}
*/
if (preg_match_all ('|(<a tabindex.*?>(.*?)<\/a>)|is',$parsed_file,$links)) {
for ($i = 0; $i <= count($links[1]); $i++) {
//echo htmlspecialchars ($links[1][$i])."<br><br>";
mysql_query ("INSERT INTO sites VALUES ('','".mysql_escape_string($links[1][$i])."','','','')");
echo "INSERT INTO sites VALUES (' ','".mysql_escape_string($links[1][$i])."',' ',' ',' ')<br>";
//if(!$query) exit("Ошибка - ".mysql_error()."<br>INSERT INTO sites VALUES ('".mysql_escape_string($links[1][$i])."','','','','')");
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Bu1D0zeR
(19.10.2006 в 18:24)
| | У вас одиночные кавычки нарушают структуру SQL-запроса - их следует экранировать... Странно, вообще mysql_escape_string() должна бы помочь. Выведите не работающий SQL-запрос в окно браузера
<?php
echo "INSERT INTO sites VALUES (' ','".mysql_escape_string($links[1][$i])."',' ',' ',' ')<br>";
?>
|
Как он выглядит? | |
|
|
|
|
|
|
|
для: cheops
(19.10.2006 в 17:19)
| | Вот такие вот ссылки находятся в $links:
<a tabindex="2" onclick="r(this, 'iweb/path=80.22.82');" href="http://www.cyberguru.ru/" target="_blank">
CyberGuru - <b>программирование</b> и софт, все о компьютерах и ... </a>
|
А сам файл - html страница Yandex-а где идёт вывод найденых сайтов (ну то есть набрали слово .. нажали Поиск .. наблюдаем эту самую страницу)..
Первым regexp-ом я URL-и сайтов вытягиваю ... вторым - Ссылки на эти сайты ..
ЗЫ. Попробовал по Вашему совету mysql_escape_string() ... всё равно зараза не пишет линки в базу :( | |
|
|
|
|
|
|
|
для: Bu1D0zeR
(19.10.2006 в 14:44)
| | А что находится в $links? Лучше экранировать вставляемые данные при помощи фукцнии mysql_escape_string()
<?php
include "db.php";
$parsed_file = file_get_contents ("test.htm");
preg_replace ('|[\r\n\t\s]{2,}|','<br>',$parsed_file);
if (preg_match_all ('|<a tabindex.*?([a-zA-Z]+://[-a-zA-Z0-9.]+[a-zA-Z]{2,4}).*?<\/a>|is',$parsed_file,$site_url)) {
for ($i = 0; $i <= count($site_url[1]); $i++) {
echo $site_url[1][$i]."<br>";
mysql_query ("INSERT INTO sites VALUES ('".mysql_escape_string($site_url[1][$i])."',' ',' ',' ',' ')");
}
}
if (preg_match_all ('|(<a tabindex.*?>(.*?)<\/a>)|is',$parsed_file,$links)) {
for ($i = 0; $i <= count($links[1]); $i++) {
echo $links[1][$i]."<br>";
mysql_query ("INSERT INTO sites VALUES (' ','".mysql_escape_string($links[1][$i])."',' ',' ',' ')");
}
}
?>
|
| |
|
|
|
|