Witam,
Stworzyłem skrypt i podpiąłem do niego CRONA, aby po północy robił spis ze wszystkich tabel (dokładnie z 7 tabel) i dodawał wszystkie pola do jednej tabeli.
Poniżej zamieszczam kod (z góry uprzedzam, że jestem początkującym programistą php więc może być lekko nieczytelny):
<?php
$host="localhost"; // Nazwa hosta
$user="#######"; // Nazwa użytkownika - domyślnie: root
$password="#######"; // Haslo do bazy
$database="#######"; // Nazwa bazy
$table=date('Y.m.d'); // Nazwa tabeli
ini_set( "display_errors", 0);
$polaczenie = mysql_connect($host,$user,$password);
mysql_query("SET CHARSET utf8");
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
mysql_select_db($database);
//TWORZENIE TABELI JEŚLI NIE ISTNIEJE
$tworzenietabeli = "CREATE TABLE IF NOT EXISTS `".$table."` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`marka` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`model` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`kod` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`kolor` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`typ` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL,
`cenanormalna` double NOT NULL,
`cenapromocyjna` double NOT NULL,
`r10` int(11) NOT NULL,
`r11` int(11) NOT NULL,
`r12` int(11) NOT NULL,
`r13` int(11) NOT NULL,
`r14` int(11) NOT NULL,
`r15` int(11) NOT NULL,
`r16` int(11) NOT NULL,
`r17` int(11) NOT NULL,
`r18` int(11) NOT NULL,
`r19` int(11) NOT NULL,
`r20` int(11) NOT NULL,
`r21` int(11) NOT NULL,
`r22` int(11) NOT NULL,
`r23` int(11) NOT NULL,
`r24` int(11) NOT NULL,
`r25` int(11) NOT NULL,
`r26` int(11) NOT NULL,
`r27` int(11) NOT NULL,
`r28` int(11) NOT NULL,
`r29` int(11) NOT NULL,
`r30` int(11) NOT NULL,
`r31` int(11) NOT NULL,
`r32` int(11) NOT NULL,
`r33` int(11) NOT NULL,
`r34` int(11) NOT NULL,
`r35` int(11) NOT NULL,
`r36` int(11) NOT NULL,
`r37` int(11) NOT NULL,
`r38` int(11) NOT NULL,
`r39` int(11) NOT NULL,
`r40` int(11) NOT NULL,
`r41` int(11) NOT NULL,
`r42` int(11) NOT NULL,
`r43` int(11) NOT NULL,
`r44` int(11) NOT NULL,
`r45` int(11) NOT NULL,
`r46` int(11) NOT NULL,
`r47` int(11) NOT NULL,
`r48` int(11) NOT NULL,
`r49` int(11) NOT NULL,
`r50` int(11) NOT NULL,
`r51` int(11) NOT NULL,
`r52` int(11) NOT NULL,
`r53` int(11) NOT NULL,
`r54` int(11) NOT NULL,
`r55` int(11) NOT NULL,
`r56` int(11) NOT NULL,
`r57` int(11) NOT NULL,
`r58` int(11) NOT NULL,
`r59` int(11) NOT NULL,
`r60` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;";
mysql_query("$tworzenietabeli");
$zapytanie = 'SELECT * FROM buty';
$rezultat = mysql_query("$zapytanie");
$ile = mysql_num_rows($rezultat);
for ($i = 1; $i <= $ile; $i++)
{
$roz[10]=0;
$roz[11]=0;
$roz[12]=0;
$roz[13]=0;
$roz[14]=0;
$roz[15]=0;
$roz[16]=0;
$roz[17]=0;
$roz[18]=0;
$roz[19]=0;
$roz[20]=0;
$roz[21]=0;
$roz[22]=0;
$roz[23]=0;
$roz[24]=0;
$roz[25]=0;
$roz[26]=0;
$roz[27]=0;
$roz[28]=0;
$roz[29]=0;
$roz[30]=0;
$roz[31]=0;
$roz[32]=0;
$roz[33]=0;
$roz[34]=0;
$roz[35]=0;
$roz[36]=0;
$roz[37]=0;
$roz[38]=0;
$roz[39]=0;
$roz[40]=0;
$roz[41]=0;
$roz[42]=0;
$roz[43]=0;
$roz[44]=0;
$roz[45]=0;
$roz[46]=0;
$roz[47]=0;
$roz[48]=0;
$roz[49]=0;
$roz[50]=0;
$roz[51]=0;
$roz[52]=0;
$roz[53]=0;
$roz[54]=0;
$roz[55]=0;
$roz[56]=0;
$roz[57]=0;
$roz[58]=0;
$roz[59]=0;
$roz[60]=0;
$row = mysql_fetch_assoc($rezultat);
$id = $row['idtowaru'];
$kod = $row['kod'];
$marka = $row['marka'];
$model = $row['model'];
$typ = $row['typ'];
$kolor = $row['kolor'];
$cenapromocyjna = $row['cenapromocyjna'];
$cenanormalna = $row['cenanormalna'];
$zapytanie="INSERT INTO `".$table."` (`id`, `marka`, `model`, `kod`, `kolor`, `typ`, `cenanormalna`, `cenapromocyjna`) VALUES (NULL, '".$marka."', '".$model."', '".$kod."', '".$kolor."', '".$typ."', '".$cenanormalna."', '".$cenapromocyjna."');";
mysql_query("$zapytanie");
$ostatnieid = mysql_insert_id();
//POBIERANIE ROZMIARÓW Z MAGAZYN
for ($rr=10;$rr<=60;$rr++)
{
$zap = "SELECT r".$rr." FROM magazyn WHERE idtowaru=".$id;
$res = mysql_query("$zap");
$x = mysql_result($res, 0, 0);
$pom="r".$rr;
$roz[$rr]=$roz[$rr]+$x;
$up = "UPDATE `".$table."` SET `r".$rr."` = '".$roz[$rr]."' WHERE `id` =".$ostatnieid.";";
mysql_query("$up");
}
//POBIERANIE ROZMIARÓW Z PORAJ
for ($rr=10;$rr<=60;$rr++)
{
$zap = "SELECT r".$rr." FROM poraj WHERE idtowaru=".$id;
$res = mysql_query("$zap");
$x = mysql_result($res, 0, 0);
$pom="r".$rr;
$roz[$rr]=$roz[$rr]+$x;
$up = "UPDATE `".$table."` SET `r".$rr."` = '".$roz[$rr]."' WHERE `id` =".$ostatnieid.";";
mysql_query("$up");
}
//POBIERANIE ROZMIARÓW Z KRUPOWKI
for ($rr=10;$rr<=60;$rr++)
{
$zap = "SELECT r".$rr." FROM krupowki WHERE idtowaru=".$id;
$res = mysql_query("$zap");
$x = mysql_result($res, 0, 0);
$pom="r".$rr;
$roz[$rr]=$roz[$rr]+$x;
$up = "UPDATE `".$table."` SET `r".$rr."` = '".$roz[$rr]."' WHERE `id` =".$ostatnieid.";";
mysql_query("$up");
}
//POBIERANIE ROZMIARÓW Z SUKIENNICE
for ($rr=10;$rr<=60;$rr++)
{
$zap = "SELECT r".$rr." FROM sukiennice WHERE idtowaru=".$id;
$res = mysql_query("$zap");
$x = mysql_result($res, 0, 0);
$pom="r".$rr;
$roz[$rr]=$roz[$rr]+$x;
$up = "UPDATE `".$table."` SET `r".$rr."` = '".$roz[$rr]."' WHERE `id` =".$ostatnieid.";";
mysql_query("$up");
}
//POBIERANIE ROZMIARÓW Z PRZEJSCIE
for ($rr=10;$rr<=60;$rr++)
{
$zap = "SELECT r".$rr." FROM przejscie WHERE idtowaru=".$id;
$res = mysql_query("$zap");
$x = mysql_result($res, 0, 0);
$pom="r".$rr;
$roz[$rr]=$roz[$rr]+$x;
$up = "UPDATE `".$table."` SET `r".$rr."` = '".$roz[$rr]."' WHERE `id` =".$ostatnieid.";";
mysql_query("$up");
}
//POBIERANIE ROZMIARÓW Z RYNEK
for ($rr=10;$rr<=60;$rr++)
{
$zap = "SELECT r".$rr." FROM rynek WHERE idtowaru=".$id;
$res = mysql_query("$zap");
$x = mysql_result($res, 0, 0);
$pom="r".$rr;
$roz[$rr]=$roz[$rr]+$x;
$up = "UPDATE `".$table."` SET `r".$rr."` = '".$roz[$rr]."' WHERE `id` =".$ostatnieid.";";
mysql_query("$up");
}
}
?>
Chodzi mi o to że skrypt wykonuje się prawidłowo, ale tylko do czasu dokładnie 200 sekund (sprawdziłem stoperem), później wywala błąd 500.
Jak mogę edytować ten kod lub co mogę zrobić by nie wywalało tego błędu.
Dodam jeszcze, że wszystko znajduje się na serwerze hekko.
Pozdrawiam,
Krzysiek