Проблем с масив

kiro24

New Member
Здр. От 2 дена се опитвам да направя нещо така и не мога :). Значи с CURL вадя от едина страница която има странициране искам да извадя всички клипове. С curl както казах го направих да ми ги изважда и филтрирам да се показват само изображенията и заглавните текстове с линк и времето на клипа. Това филтриране го правя с PREG_MATCH_ALL. Сега целта ми е да ги запиша в базата данни и тук идва ГОЛЕМИЯ проблем! Ето вижде кода от preg_match_all на долу и дайте идея ако можете! :)

PHP:
preg_match_all('/<img id=\"thumb[0-9]+\" src=\"(.+)\" num=\"([0-9]+)\" width=\"160\" height=\"120\"/i', $as, $pics); //SNIMKI
preg_match_all('/<h1><a href=\"(.+)\">(.+)<\/a><\/h1>/i', $as, $links);  //linkove
preg_match_all('/<h2>([0-9]+)<span>:<\/span>([0-9]+)<\/h2>/i', $as, $times); //vreme

foreach($links[0] as $k){

 mysql_query("INSERT INTO cars (header) VALUES ('$k') ") or die(mysql_error());
}

Като го направя така ми дава mysql erorr-
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's candy')' at line 1
Явно това candy')' е някаде текс с апострофи и скоби и нз още какво и дава грешка. Качва до някаде линкове и спира. Аз мислех да кача всички едно по едно (..$pics..) но така НЕ стана.

Пробвах и така:
for($ii=0; $ii<=2; $ii++){
mysql_query("INSERT INTO `cars` (`header`, `image`, `time`)
VALUES ('$links[0][$ii]', '$pics[0][$ii]', '$times[0][$ii]')") or die(mysql_error());

}

Така пък ми вкарва ,но не линкове ,а само ми пише в полета ARRAY[1], ARRAY[2] и така.. някакви идей ???
 
От: Проблем с масив

Това
foreach($links[0] as $k){
ти дава ключа на масива, за да вземеш стойността ти трябва as $k => $stoinost

 
От: Проблем с масив

мм да месри ,но все пак защо ми излиза тази грешка от mysql . Вкарва ми някакви линкове и явно нещо се бърка sql като има "",'',() и така..
Как да го поправя ? :/

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'S THE ONE BY DI')' at line 1


А всички линкове към изображенията ги вкарвам с foreach:

foreach($pics[0] as $k1 => $st1)
{
mysql_query("INSERT INTO cars(image) VALUES ('$st1') ") or die(mysql_error());
}

Но другите линкове $links не става винаги я искарва тази грешка като стигне до някаде ????????
 
Последно редактирано:
От: Проблем с масив

Или по интересно ми е ако някой може да ми каже защо като напиша ECHO $pics[0][1]; и ми искарва изображение.. като тръгна да вкарвам в базата данни с цикъл и ми вкарва в полетата текстове ARRAY[0]..1..2.. и така :) с цикъла for и с while се тая:

for($ii=0; $ii<=2; $ii++){
mysql_query("INSERT INTO `cars` (`image`, `time`)
VALUES ('$pics[0][$ii]', '$times[0][$ii]')") or die(mysql_error());

}
 
От: Проблем с масив

Ето с това опитай:
mysql_query("INSERT INTO cars(`image`) VALUES ('".$st1."') ") or die(mysql_error());
 
От: Проблем с масив

Пак искарва тази грешка :/ .. да не би с curl да има някакав друг начин за взимането на данни.
 
От: Проблем с масив

мхмм а сега искарах с print_r и ми искарва от PREG_MATCH масива с линковете на двоен масив един път таговете и един път линкове. Какво да исползвам вместо preg_match ? Някакви идей да оправя проблема ?
 
Последно редактирано:
От: Проблем с масив

И добре примерно като искарам всичко с
foreach($links[0] as $k)
{
echo $k.
}
и ми искарва всички линкове като ги запиша с записва само 1 ???
foreach($links[0] as $k)
{
$ipcounter = "today.txt";
$fp = fopen($ipcounter, 'w+');
fwrite($fp, $k);
fclose($fp);
}
 
От: Проблем с масив

Това с единиците в текстовия файл ли ги записва или в базата данни?
 
От: Проблем с масив

Ами в базата данни ,но с цикъла FOR като се опитам да запиша $LINKS и $PICS заедно и ги записва само ARRAY[1] ARRAY[2] и така. А иначе сега искам в текстов файл да пробва заради онази грешка с кавичките. :? Ето цялата ми работа: Как да запиша с цикъла FOR без да имам проблеми с записа ???

<?php
$connect=mysql_connect("localhost" ,"root", "") or die ('Dont have!');
mysql_select_db("kiro24", $connect) or die('Dont have!');

$page= 1;

for($page=0;$page<1;$page++){

$ch = curl_init();

$userAgent='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6';
curl_setopt($ch, CURLOPT_URL, "localhost/fronter/as.php?page=$page");
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$as=curl_exec($ch);

curl_close($ch);

preg_match_all('/<img id=\"thumb[0-9]+\" src=\"(.+)\" num=\"([0-9]+)\" width=\"160\" height=\"120\"/i', $as, $pics); //images
preg_match_all('/<h1><a href=\"(.+)\">(.+)<\/a><\/h1>/i', $as, $links); //links

for($i=0; $i<=2; $i++){

mysql_query("INSERT INTO `amateur` (`image`, `links`) VALUES ('$pics[0][$i=]=>', '$links[0][$i]')") or die(mysql_error());
}
}
?>
 
Последно редактирано:
От: Проблем с масив

Опитай вместо да изпълниш заявката с mysql_query(...) да я изведеш с echo да видиш какво ще ти покаже.
 
От: Проблем с масив

Ами извежда ми:

Notice: Undefined variable: ii in C:\xampp\htdocs\indexx.php on line 56

Notice: Undefined index: in C:\xampp\htdocs\indexx.php on line 56

Notice: Undefined variable: ii in C:\xampp\htdocs\indexx.php on line 56


 
Последно редактирано:
От: Проблем с масив

Може с отваряне на файла. Използвай:
$handle = fopen($filename, 'r');
$data = fread($handle, filesize($filename));
$rowsArr = explode("\n", $data);
Така във $rowsArr ще ти е масива с редовете от файла.
 
От: Проблем с масив

ето този ерор пак:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 're too big for a star>')' at line 1

if(isset($_POST['get'])){

$links_file="links.txt";
$handle1 = fopen($links_file, 'r');
$data1 = fread($handle1, filesize($links_file));
$rowsArr_links = explode("\n", $data1);

$image_file="images.txt";
$handle = fopen($image_file, 'r');
$data = fread($handle, filesize($image_file));
$rowsArr_image = explode("\n", $data);


foreach ($rowsArr_image as $ad){
mysql_query("INSERT INTO `cars` (`image`) VALUES (".$ad.")") or die(mysql_error());

}

foreach ($rowsArr_links as $ad1){
mysql_query("INSERT INTO `cars` (`header`) VALUES (".$ad1.")") or die(mysql_error());

}
echo 'You have it!';
}

Какво може да се направи по въпроса ???
 
Последно редактирано:
От: Проблем с масив

Оправих го мерсим много за помоща. Искам само да те попитам сега всички дали ще мога да търрся в полетата при положение ,че са ми с име:

<h1><a href="/watch/610540/xtreme-cars/?from=categ">People who want to be crazy!</a></h1>

Примерно с търсачка да търся текста тук и да вадя това и линка кам картинката?
 
От: Проблем с масив

Принципно всичко можеш да си търсиш в базата данни.
Как се реши проблема? В кавичките ли беше?
За някой може да е полезна информация.
 

Горе