웹 사이트의 데이터를 mysql 데이터베이스에 저장하려고합니다. 나는 내가 구하고 싶어했던 것의 대부분을 구할 수 있었지만 특별한 문제가있다. 내가 압축을 푼 링크는 저장하고 있지만 링크를 다른 속성과 동일한 행에 넣고 싶습니다. 아래는 데이터베이스에 정보를 추출하고 저장하는 내 CURL 및 mysql 쿼리입니다.mysql 데이터베이스의 다른 데이터와 별도로 링크 저장
$target_url = "http://www.ucc.ie/modules/descriptions/BM.html";
$codeS = "BM";
$html = file_get_contents("http://www.ucc.ie/modules/descriptions/BM.html");
@$doc = new DomDocument();
@$doc->loadHtml($html);
//discard white space
@$doc->preserveWhiteSpace = false;
$xpath = new DomXPath($doc);
//Read through dd tags
$options = $doc->getElementsByTagName('dd');
//Go into dd tags and look for all the links with class modnav
$links = $xpath->query('//dd //a[@class = "modnav"]');
//Loop through and display the results for links
foreach($links as $link){
echo $link->getAttribute('href'), '<br><br>';
}
foreach ($options as $option) {
$option->nodeValue;
echo "Node Value (Module name/title)= $option->nodeValue <br /><br /> <br />";
// save both for each results into database
$query3 = sprintf("INSERT INTO all_modulenames(code,module_name,description_link,gathered_from)
VALUES ('%s','%s','%s','%s')",
mysql_real_escape_string ($codeS),
mysql_real_escape_string($option->nodeValue),
mysql_real_escape_string($link->getAttribute('href')),
mysql_real_escape_string($target_url));
mysql_query($query3) or die(mysql_error()."<br />".$query3);
}
echo "<br /> <br /> <br />";
Here is the table
-- ----------------------------
-- Table structure for `all_modulenames`
-- ----------------------------
DROP TABLE IF EXISTS `all_modulenames`;
CREATE TABLE `all_modulenames_copy` (
`code` varchar(255) NOT NULL,
`module_name` varchar(255) NOT NULL,
`description_link` varchar(255) NOT NULL,
`gathered_from` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of all_modulenames
-- ----------------------------
그래서 문제는 떠나고 나머지 데이터에 의해 처음 저장 한 후 준수 save.The 링크에 노력하고 별도로 다른 콘텐츠에서 저장되어있는 "$ 링크 ->의 getAttribute ('HREF')"입니다 일부 행은 비어 있지만 모든 것을 모두 저장하려고합니다. 즉 각 행을 채우고 각 명령문이 끝날 때까지 두 번째 행으로 이동합니다. 내가 어떻게 이럴 수 있니? 어떤 도움을 주시면 감사하겠습니다 !!
조회가 루프 –
($$ 링크 ->의 getAttribute는 mysql_real_escape_string 여분의 달러 기호 '('또한 거기에 내부되어야한다 href ')), 의도적으로 보이지는 않습니다. 이 경우 해당 입력란이 비어있을 가능성이 큽니다. –
안녕하세요, 루프의 쿼리가 있는데 여전히 동일한 결과가 나타납니다. @Sean Johnson과 나는 $$의 실수를 수정하고 여전히 같은 결과를 얻고 있습니다. – user1444442