• 7 odgovora
  • 3.227 pregleda
script PHP&XML problem 15.07.2007. u 12:17 · pre 234 meseci #1
Zbog nečega neće da radi ovaj script ali ja ne znam u čemu je stvar. Skripta čita jedan RSS fajl, smešta nodove u bazu i izbacuje ih na ekran.
Code:
<?php
$xml=simplexml_load_file("http://www.b92.net/info/rss/sport.xml");
$prva1=$xml->xpath("/channel/item/title[0]");
$druga1=$xml->xpath("/channel/item/link[0]");
$treca1=$xml->xpath("/channel/item/description[0]");
$prva2=$xml->xpath("/channel/item/title[1]");
$druga2=$xml->xpath("/channel/item/link[1]");
$treca2=$xml->xpath("/channel/item/description[1]");
$prva3=$xml->xpath("/channel/item/title[2]");
$druga3=$xml->xpath("/channel/item/link[2]");
$treca3=$xml->xpath("/channel/item/description[2]");
$prva4=$xml->xpath("/channel/item/title[3]");
$druga4=$xml->xpath("/channel/item/link[3]");
$treca4=$xml->xpath("/channel/item/description[3]");
$prva5=$xml->xpath("/channel/item/title[4]");
$druga5=$xml->xpath("/channel/item/link[4]");
$treca5=$xml->xpath("/channel/item/description[4]");
$prva6=$xml->xpath("/channel/item/title[5]");
$druga6=$xml->xpath("/channel/item/link[5]");
$treca6=$xml->xpath("/channel/item/description[5]");
$prva7=$xml->xpath("/channel/item/title[6]");
$druga7=$xml->xpath("/channel/item/link[6]");
$treca7=$xml->xpath("/channel/item/description[6]");
$prva8=$xml->xpath("/channel/item/title[7]");
$druga8=$xml->xpath("/channel/item/link[7]");
$treca8=$xml->xpath("/channel/item/description[7]");
$prva9=$xml->xpath("/channel/item/title[8]");
$druga9=$xml->xpath("/channel/item/link[8]");
$treca9=$xml->xpath("/channel/item/description[8]");
$con=mysql_connect("localhost", "user", "pass") or die ("Can't connect");
mysql_select_db("sport", $con);
mysql_query("create table vesti(ID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(ID), Title text, Link text, Description text)");
mysql_query("insert into vesti (Title, Link, Description) values ($prva1, $druga1, $treca1)");
mysql_query("insert into vesti (Title, Link, Description) values ($prva2, $druga2, $treca2)");
mysql_query("insert into vesti (Title, Link, Description) values ($prva3, $druga3, $treca3)");
mysql_query("insert into vesti (Title, Link, Description) values ($prva4, $druga4, $treca4)");
mysql_query("insert into vesti (Title, Link, Description) values ($prva5, $druga5, $treca5)");
mysql_query("insert into vesti (Title, Link, Description) values ($prva6, $druga6, $treca6)");
mysql_query("insert into vesti (Title, Link, Description) values ($prva7, $druga7, $treca7)");
mysql_query("insert into vesti (Title, Link, Description) values ($prva8, $druga8, $treca8)");
mysql_query("insert into vesti (Title, Link, Description) values ($prva9, $druga9, $treca9)");
// Nisam siguran da li se ubacuju navodnici u polja tabele kada su u pitanju promenljive
$rezultat=mysql_query("select * from vesti");
while ($data=mysql_fetch_array($rezultat))
{
    echo $data['Title'] . " " . $data['Link'] . " " . $data['Description'] . "<br>";
}
mysql_free_result($rezultat);
mysql_close($con);
// Ne znam gde je greska. Ne pokazuje gde je, samo izbacuje prazan ekran
?>

Da li uopšte valja ova moja zamisao ili ako neko ima bolji predlog neka se javi.
Hvala!
Re: script PHP&XML problem 15.07.2007. u 18:48 · pre 234 meseci #2
Skript ne treba da ti svaki put kreira tabelu u bazi, to se radi samo prvi put, pri instalaciji, ili dodaj klauzulu "IF NOT EXIST".

Potrebno je staviti navodnike (apostrofe) oko vrednosti promenljivih:
...values ('$prva1', '$druga1', '$treca1')
a još bolje bi bilo kad bi te vrednosti prvo propustio kroz addslashes funkciju.
Potpis
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
Re: script PHP&XML problem 17.07.2007. u 23:41 · pre 234 meseci #3
Citat:
Skript ne treba da ti svaki put kreira tabelu u bazi, to se radi samo prvi put, pri instalaciji, ili dodaj klauzulu "IF NOT EXIST".

Kako?
(početnik).
Re: script PHP&XML problem 18.07.2007. u 00:20 · pre 234 meseci #4
Neki moj prelog... (skraćena vrezija)

Code:
<?php
$xml=simplexml_load_file("http://www.b92.net/info/rss/sport.xml");
$prva1=$xml->xpath("/channel/item/title[0]");
$druga1=$xml->xpath("/channel/item/link[0]");
$treca1=$xml->xpath("/channel/item/description[0]");
$prva2=$xml->xpath("/channel/item/title[1]");
$druga2=$xml->xpath("/channel/item/link[1]");
$treca2=$xml->xpath("/channel/item/description[1]");
$prva11=addslashes($prva1);
$druga11=addslashes($druga1);
$treca11=addslashes($treca1);
$prva22=addslashes($prva2);
$druga22=addslashes($druga2);
$treca22=addslashes($treca2);
$con=mysql_connect("localhost", "user", "pass") or die ("Can't connect");
mysql_select_db("sport", $con);
mysql_query("insert into vesti (Title, Link, Description) values ('$prva11', '$druga11', '$treca11')");
mysql_query("insert into vesti (Title, Link, Description) values ('$prva22', '$druga22', '$treca22')");

$rezultat=mysql_query("select * from vesti");
while ($data=mysql_fetch_array($rezultat))
{
    echo $data['Title'] . " " . $data['Link'] . " " . $data['Description'] . "<br>";
}
mysql_free_result($rezultat);
mysql_close($con);
// Ne znam gde je greska. Ne pokazuje gde je, samo izbacuje prazan ekran
?>

Baza i tabela (vesti) je kreirana...
Re: script PHP&XML problem 18.07.2007. u 00:26 · pre 234 meseci #5
CREATE TABLE IF NOT EXISTS `vesti` (ID int NOT NULL AUTO_INCREMENT, ...

I, jel radi ta skraćena verzija ?
Potpis
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
Re: script PHP&XML problem 18.07.2007. u 01:11 · pre 234 meseci #6
Ma jok. Samo mi izbacuje prazan ekran. Napravio sam bazu i tabelu preko konzole i kada pokrenem skript, pogledam u (preko konzole) tabelu, vidim da su ispunjena polja ID dok su Title, Link i Description prazna. Znači da puni bazu ali ne prikazuje polja u tabeli. Inače ne prijavljuje nikakvu grešku već samo izbacuje prazan ekran. Kada iz konzole izbrišem tabelu vesti, jave se dve greške:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\mysql_functions\samo_proba.php on line 22

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\wamp\www\mysql_functions\samo_proba.php on line 26
Inače kod skraćene verzije je:
Code:
<?php
$xml=simplexml_load_file("http://www.b92.net/info/rss/sport.xml");
$prva1=$xml->xpath("/channel/item/title[0]");
$druga1=$xml->xpath("/channel/item/link[0]");
$treca1=$xml->xpath("/channel/item/description[0]");
$prva2=$xml->xpath("/channel/item/title[1]");
$druga2=$xml->xpath("/channel/item/link[1]");
$treca2=$xml->xpath("/channel/item/description[1]");
$prva11=addslashes($prva1);
$druga11=addslashes($druga1);
$treca11=addslashes($treca1);
$prva22=addslashes($prva2);
$druga22=addslashes($druga2);
$treca22=addslashes($treca2);
$con=mysql_connect("localhost", "user", "pass") or die ("Can't connect");
mysql_select_db("sport", $con);
mysql_query("create table if not exists 'vesti'(ID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(ID), Title TEXT, Link TEXT, Description TEXT)");
mysql_query("insert into vesti (Title, Link, Description) values ('$prva11', '$druga11', '$treca11')");
mysql_query("insert into vesti (Title, Link, Description) values ('$prva22', '$druga22', '$treca22')");

$rezultat=mysql_query("select * from vesti");
while ($data=mysql_fetch_array($rezultat))
{
    echo $data['Title'] . " " . $data['Link'] . " " . $data['Description'] . "<br>";
}
mysql_free_result($rezultat);
mysql_close($con);
// Ne znam gde je greska. Ne pokazuje gde je, samo izbacuje prazan ekran
?>
Re: script PHP&XML problem 18.07.2007. u 02:29 · pre 234 meseci #7
Tebi onda ne radi punjenje promenljivih $Prva1, $Druga1, ....
Iskreno nemam pojma šta je "simplexml_load_file" ali izgleda da ti vraća praznine,
ajd ti to lepo ehuj na ekran pa redom prati kretanje promenljivih.
Potpis
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
Re: script PHP&XML problem 18.07.2007. u 12:39 · pre 234 meseci #8
simplexml_load_file() je funkcija za učitavanje xml fajla, kao i xpath() - traži određeni nod u xml stablu (sve to radi samo pod php-om 5).
Ne vidim razlog zašto ne puni promenljive. Ako sam negde pogrešio neka neko pomogne.
Hvala.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme