Zamolila bih Vas za pomoc, koristila sam simple html php dom parser za preuzimanje podataka sa jednog sajta, napravila sam klasu koja bi trebalo da parserovanim podacima popuni bazu,
problem je sto se podaci ne insertuju u bazu
Jel ima neko ideju kako da resim problem?
evo koda:
i jos
na ovom linku je taj prakticni parser:
dom parser
Hvala puno na svakoj sugestiji,
PHP Juniorka
problem je sto se podaci ne insertuju u bazu
Jel ima neko ideju kako da resim problem?
evo koda:
Code:
<?php
$server="localhost";
$user="root";
$pass="";
$db="baza_bioskopa";
include_once('simple_html_dom.php');
require_once('config.php');
include_once('database.php.inc');
if(isset($database)) { echo "true"; } else { echo "false"; }
echo "<br />";
echo $database->mysql_prep("it's working? <br/>");
$conn=new MySQLDatabase($server,$user,$pass,$db);
$conn->open_connection();
function nadjiPozicijuStringa($search, $string, $offset)
{
$arr = explode($search, $string);
switch( $offset )
{
case $offset == 0:
return false;
break;
case $offset > max(array_keys($arr)):
return false;
break;
default:
return strlen(implode($search, array_slice($arr, 0, $offset)));
}
}
$html = file_get_html('http://www.filmoskop.com/bioskopi');
foreach($html->find('div.list-compact') as $e)
{
$bioskop = $e->find('a');
$podaci = $e->find('span');
$filmovi = $e->find('li');
echo "BIOSKOP: " . $bioskop[0]->attr["name"];
//echo "<br>PODACI: " . $podaci[1]->innertext;
echo "<br>FILMOVI: <br>";
foreach($filmovi as $film)
{
$pozicija_drugog_vece = nadjiPozicijuStringa(">", $film, 2);
$pozicija_treceg_manje = nadjiPozicijuStringa("<", $film, 3);
$imefilma = substr($film , $pozicija_drugog_vece+1, $pozicija_treceg_manje-$pozicija_drugog_vece-1);
echo $imefilma . "<br>";
echo $film->plaintext. '<br>';
//ekstrakcija vremena
$pozicija_treceg_vece = nadjiPozicijuStringa(">", $film, 3);
$pozicija_cetvrtog_manje = nadjiPozicijuStringa("<", $film, 4);
$svavremena = substr($film , $pozicija_treceg_vece+1, $pozicija_cetvrtog_manje-$pozicija_treceg_vece-1);
$svavremena = substr($svavremena, 3);
$vremenaniz = explode(", ", $svavremena);
foreach($vremenaniz as $vreme) {
echo "POCETAK PROJEKCIJE:" . $vreme. '<br>';
}
}
}
$sql = "INSERT INTO bioskopi (ID_bioskopa, naziv_bioskopa, podaci) VALUES (1,$bioskop,'$podaci')";
$sql = "INSERT INTO repertoar (ID_filma, ID_bioskopa, vreme_projekcije) VALUES (1,1,'$vreme') ";
//$sql = "INSERT INTO filmovi (ID_filma, naziv_filma, opis_filma) VALUES ('$imefilma') ";
$result = $database->query($sql);
$conn->close_connection();
?>
<?php
$server="localhost";
$user="root";
$pass="";
$db="baza_bioskopa";
include_once('simple_html_dom.php');
require_once('config.php');
include_once('database.php.inc');
if(isset($database)) { echo "true"; } else { echo "false"; }
echo "<br />";
echo $database->mysql_prep("it's working? <br/>");
$conn=new MySQLDatabase($server,$user,$pass,$db);
$conn->open_connection();
function nadjiPozicijuStringa($search, $string, $offset)
{
$arr = explode($search, $string);
switch( $offset )
{
case $offset == 0:
return false;
break;
case $offset > max(array_keys($arr)):
return false;
break;
default:
return strlen(implode($search, array_slice($arr, 0, $offset)));
}
}
$html = file_get_html('http://www.filmoskop.com/bioskopi');
foreach($html->find('div.list-compact') as $e)
{
$bioskop = $e->find('a');
$podaci = $e->find('span');
$filmovi = $e->find('li');
echo "BIOSKOP: " . $bioskop[0]->attr["name"];
//echo "<br>PODACI: " . $podaci[1]->innertext;
echo "<br>FILMOVI: <br>";
foreach($filmovi as $film)
{
$pozicija_drugog_vece = nadjiPozicijuStringa(">", $film, 2);
$pozicija_treceg_manje = nadjiPozicijuStringa("<", $film, 3);
$imefilma = substr($film , $pozicija_drugog_vece+1, $pozicija_treceg_manje-$pozicija_drugog_vece-1);
echo $imefilma . "<br>";
echo $film->plaintext. '<br>';
//ekstrakcija vremena
$pozicija_treceg_vece = nadjiPozicijuStringa(">", $film, 3);
$pozicija_cetvrtog_manje = nadjiPozicijuStringa("<", $film, 4);
$svavremena = substr($film , $pozicija_treceg_vece+1, $pozicija_cetvrtog_manje-$pozicija_treceg_vece-1);
$svavremena = substr($svavremena, 3);
$vremenaniz = explode(", ", $svavremena);
foreach($vremenaniz as $vreme) {
echo "POCETAK PROJEKCIJE:" . $vreme. '<br>';
}
}
}
$sql = "INSERT INTO bioskopi (ID_bioskopa, naziv_bioskopa, podaci) VALUES (1,$bioskop,'$podaci')";
$sql = "INSERT INTO repertoar (ID_filma, ID_bioskopa, vreme_projekcije) VALUES (1,1,'$vreme') ";
//$sql = "INSERT INTO filmovi (ID_filma, naziv_filma, opis_filma) VALUES ('$imefilma') ";
$result = $database->query($sql);
$conn->close_connection();
?>
i jos
Code:
<?php
require_once('config.php');
class MySQLDatabase{
/* var $server="localhost";
var $user="root";
var $pass="";
var $database="baza_bioskopa";
var $conn=0;
var $upit=0;*/
private $connection;
function __construct() {
$this->open_connection();
}
public function open_connection() {
$this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$this->connection) {
die("Database connection failed: " . mysql_error());
} else {
$db_select = mysql_select_db(DB_NAME, $this->connection);
if (!$db_select) {
die("Database selection failed: " . mysql_error());
}
}
}
public function close_connection() {
if(isset($this->connection)) {
mysql_close($this->connection);
unset($this->connection);
}
}
public function query($sql) {
$result = mysql_query($sql, $this->connection);
$this->confirm_query($result);
return $result;
}
private function confirm_query($result) {
if (!$result) {
die("Database query failed: " . mysql_error());
}
}
public function mysql_prep( $value ) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists( "mysql_real_escape_string" ); // i.e. PHP >= v4.3.0
if( $new_enough_php ) { // PHP v4.3.0 or higher
// undo any magic quote effects so mysql_real_escape_string can do the work
if( $magic_quotes_active ) { $value = stripslashes( $value ); }
$value = mysql_real_escape_string( $value );
} else { // before PHP v4.3.0
// if magic quotes aren't already on then add slashes manually
if( !$magic_quotes_active ) { $value = addslashes( $value ); }
// if magic quotes are active, then the slashes already exist
}
return $value;
}
}
$database = new MySQLDatabase();
$db =& $database;
?>
<?php
require_once('config.php');
class MySQLDatabase{
/* var $server="localhost";
var $user="root";
var $pass="";
var $database="baza_bioskopa";
var $conn=0;
var $upit=0;*/
private $connection;
function __construct() {
$this->open_connection();
}
public function open_connection() {
$this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$this->connection) {
die("Database connection failed: " . mysql_error());
} else {
$db_select = mysql_select_db(DB_NAME, $this->connection);
if (!$db_select) {
die("Database selection failed: " . mysql_error());
}
}
}
public function close_connection() {
if(isset($this->connection)) {
mysql_close($this->connection);
unset($this->connection);
}
}
public function query($sql) {
$result = mysql_query($sql, $this->connection);
$this->confirm_query($result);
return $result;
}
private function confirm_query($result) {
if (!$result) {
die("Database query failed: " . mysql_error());
}
}
public function mysql_prep( $value ) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists( "mysql_real_escape_string" ); // i.e. PHP >= v4.3.0
if( $new_enough_php ) { // PHP v4.3.0 or higher
// undo any magic quote effects so mysql_real_escape_string can do the work
if( $magic_quotes_active ) { $value = stripslashes( $value ); }
$value = mysql_real_escape_string( $value );
} else { // before PHP v4.3.0
// if magic quotes aren't already on then add slashes manually
if( !$magic_quotes_active ) { $value = addslashes( $value ); }
// if magic quotes are active, then the slashes already exist
}
return $value;
}
}
$database = new MySQLDatabase();
$db =& $database;
?>
na ovom linku je taj prakticni parser:
dom parser
Hvala puno na svakoj sugestiji,
PHP Juniorka