Witam, mam taki problem, że skrypt wywala mi po 1 przejściu For-a błąd walidacji mysql i poprostu nie wiem czemu tak sie dzieje i jak to naprawić.
Siedze nad tym 2 dzień i juz nie moge.
$pytanieSelectKategoria1 = $mysql->query("SELECT `id`, `link1rzad` FROM `kategorie1rzedy` ORDER BY `id` ASC");
while($row = $mysql->fetchArray($pytanieSelectKategoria1)){
$url = 'www.link'.$row["link1rzad"];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$wejscie = curl_exec($ch);
curl_close($ch);
if(preg_match_all( '#<a href="(.*?)" class="leftmenu">(.*?)</a>#', $wejscie, $wyjscie)) {
$kategoriePod=$wyjscie[1];
$nazwyPod=$wyjscie[2];
}
if(preg_match_all( '#<a href="(.*?)" class=leftmenured>(.*?)</a>#', $wejscie, $wyjscie)) {
$kategoriePodRed=$wyjscie[1];
$nazwyPodRed=$wyjscie[2];
}
$data = date('Y-m-d G:H:s'); foreach($kategoriePod as $element => $key){
$kategoriePodExplode = explode('/', $kategoriePod[$element]);
$menuRubik = $row["id"];
$eselect2rzad = $mysql->query("SELECT `nazwaGlowna` ,`linkglowna` FROM `kategorie2rzedy` WHERE `nazwaGlowna` = '".$nazwyPodAdd."' AND `linkglowna` = '".$kategoriePodExplode[4]."&wgr=&new_step=120&lang=en'");
$numrows = $mysql->numRows($eselect2rzad);
if ($numrows>0) {
$rekord = "Rekord kategorii 2 rzędu o nazwie ".$nazwyPodAdd." już Istnieje.";
}else{
$rekord = "Nie ma takiego rekordu. Rekord nazwie ".$nazwyPodAdd." z kategorii 2 rzędu Został dopisany.";
$pytanie2rzedu = "INSERT INTO `kategorie2rzedy` (`id` ,`nazwaGlowna` ,`linkglowna` ,`id_kategoria1rzedu` ,`data`) VALUES (NULL , '".$nazwyPodAdd."', '".$kategoriePodExplode[4]."&wgr=&new_step=120&lang=en', '".$row['id']."', '".$data."');";
$mysql->query($pytanie2rzedu);
}
$insertRaport = "INSERT INTO `raport` (`id` ,`text` ,`data`) VALUES (NULL , '".$rekord."', '".$data."');";
$mysql->query($insertRaport);
}
foreach($kategoriePodRed as $element => $key){
$kategoriePodExplodeRed = explode('/', $kategoriePodRed[$element]); $nazwyPodAddRed = addslashes($nazwyPodRed[$element]); #$menuRubik = "menu_rubrik=".$i;
$pytanieSelect = $mysql->query("SELECT `nazwaGlowna` ,`linkglowna` FROM `makx13_audioline`.`kategorie2rzedy` WHERE `nazwaGlowna` = '".$nazwyPodAddRed."' AND `linkglowna` = '".$kategoriePodExplodeRed[4]."&wgr=&new_step=120&lang=en'");
$numrows = $mysql->numRows($pytanieSelect);
if ($numrows>0) {
$rekord = "Rekord kategorii 2 rzędu o nazwie ".$nazwyPodAddRed." już Istnieje.";
}else{
$rekord = "Nie ma takiego rekordu. Rekord nazwie ".$nazwyPodAddRed." z kategorii 2 rzędu Został dopisany.";
$pytanie2rzeduRed = "INSERT INTO `makx13_audioline`.`kategorie2rzedy` (`id` ,`nazwaGlowna` ,`linkglowna` ,`id_kategoria1rzedu` ,`data`) VALUES (NULL , '".$nazwyPodAddRed."', '".$kategoriePodExplodeRed[4]."&wgr=&new_step=120&lang=en', '".$row['id']."', '".$data."');";
$mysql->query($pytanie2rzeduRed);
}
$insertRaport = "INSERT INTO `makx13_audioline`.`raport` (`id` ,`text` ,`data`) VALUES (NULL , '".$rekord."', '".$data."');";
$mysql->query($insertRaport);
}
}
kod clasy mysql:
<?php
{
private $query;
private $link;
private $q;
function __construct($host, $login, $password, $db)
{
$connect = mysql_connect($host, $login, $password) or
die ("Nie mogę nawiązać połączenia z bazą danych!"); if($connect && $select)
{
$this->link = $connect;
return true;
}
else
{
return false;
}
}
function __call($name, $attr)
{
echo 'BLAD: <strong>Metoda '.$name.' jest niepoprawna</strong><br />';
}
public function debug()
{
}
public function query($query)
{
{
$this->q = $query;
$this->query = $query;
}
}
public function fetchRow()
{
return $row;
}
public function fetchArray()
{
return $array;
}
public function numRows()
{
return $num;
}
public function charset($charset)
{
$charset = mysql_set_charset($charset, $this->link);
return $charset;
}
public function getID()
{
return $id;
}
public function error()
{
{
echo 'BLAD: <strong>'.$err.'</strong><br />'; echo 'Zapytanie: <strong>'.$this->q.'</strong>'; }
}
function __destruct()
{
}
}
?>
Wynik działania:
Rekord kategorii 2 rzÄdu o nazwie Accessoires juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Brillen juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Caps/Tücher/Halswärmer juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Freizeitbekleidung juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Handschuhe juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Kinderbekleidung juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Kommunikation juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Lederbekleidung juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Nierengurte juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Protektoren juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Regenbekleidung juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Stiefel/Schuhe/Socken juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Sturmhauben/U-Wäsche juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie T-Shirts juĹź Istnieje.
Rekord kategorii 2 rzÄdu o nazwie Textilbekleidung juĹź Istnieje.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/makx13/domains/newweb.com.pl/public_html/prace/audioline/stare/db/db.php on line 56
Ten post edytował mainfreme 18.09.2011, 14:56:14