News Aus Kategorie auslesen

PC Freak

Erfahrenes Mitglied
hab auf meiner homepage eine rss.php datei welche einen RSS Newsfeed erstelt (news werden aus dem newsscript auf meiner seite gehollt). der code der datei ist folgender:

PHP:
<? 
     /* MySQL-Teil */ 
     $mysql['host'] = 'nicht angegeben'; // MySQL Host 
     $mysql['user'] = 'nicht angegeben'; // MySQL User 
     $mysql['passwort'] = 'nicht angegeben'; // MySQL Passwort 
     $mysql['tabelle'] = 'nicht angegeben'; // Tabelle aus der der Inhalt kommt
     $mysql['db'] = 'nicht angegeben'; // Datenbank Name 
     
     Header("Content-Type: text/xml"); 
     if($_GET['id']>10 || empty($_GET['id'])) $_GET['id']=5; 
     
     echo '<?xml version="1.0" encoding="ISO-8859-1" ?> 
     <rss version="0.91">
      
     <channel> 
     
     <title>Hardware Newsfeed</title> 
     <link>http://www.meineurl.de</link> 
     <description>Die '.$_GET['id'].' aktuellsten News aus der Hardware-Branche</description>
     <language>de-de</language> 
     <copyright>'.date("Y").' http://www.meineurl.de</copyright> 
     <image>
     <url>http://www.meineurl.de</url>  
     <title>Hardware Newsfeed</title> 
     <link>http://www.meineurl.de/</link> 
     </image>
     '; 
     
 @mysql_connect($mysql['host'], $mysql['user'], $mysql['passwort']) or die('Verbindung zum MySQL Server kann nicht aufgebaut werden'); 
     @mysql_select_db($mysql['db']) or die('Datenbank kann nicht selektiert werden'); 
     
     $laenge = 300;
     
     $ergeb=mysql_query("SELECT * FROM corenews2_news ORDER BY id DESC LIMIT 0, $_GET[id]"); 
     while($array=mysql_fetch_array($ergeb)) { 
     echo '<item> 
     <title>'.$array['news_title'].'</title> 
     <description>'.$news_text = substr($array['news_text'], 0, $laenge).'...</description> 
     <link>http://www.meineurl.de/index.php?news_id='.$array['id'].'</link> 
     </item> 
     '; 
     } 
     echo '</channel> 
     </rss>'; 
     ?>

das script hollt sich die news aus dem dem newsscript meiner seite ... nun will ich aber, dass man rss news auch von nur einzelnen kategorien auslesen kann, so das die url zum rss feed dann bsp. so lautet: rss.php?cat=1

Die Kategorie Tabelle in der Datenbank ist so aufgebaut:

http://www.directupload.net/images/050508/e59xKJ6N.gif

kann mir vielleicht jemand sagen wie ich das realisieren kann ? ich hab so gut wie garkeine ahnung von php

wenn mehr infos benötigt werden, einfach schreiben :)
 
Musste gehen wenn es eine Spalte für die ID's der Kategorien gibt:

PHP:
$query="SELECT * FROM corenews2_news ORDER BY id DESC LIMIT 0, $_GET['id'] WHERE cotegory_id=".$_GET['catid'];
 
habs mal in den code eingebaut:

PHP:
 <? 
	 /* MySQL-Teil */ 
	 $mysql['host'] = 'nicht angegeben'; // MySQL Host 
	 $mysql['user'] = 'nicht angegeben'; // MySQL User 
	 $mysql['passwort'] = 'nicht angegeben'; // MySQL Passwort 
	 $mysql['tabelle'] = 'nicht angegeben'; // Tabelle aus der der Inhalt kommt
	 $mysql['db'] = 'nicht angegeben'; // Datenbank Name 
	 
	 Header("Content-Type: text/xml"); 
 
 $query="SELECT * FROM corenews2_news ORDER BY id DESC LIMIT 0, $_GET['id'] WHERE cotegory_id=".$_GET['catid'];
 
	 if($_GET['id']>10 || empty($_GET['id'])) $_GET['id']=5; 
	 
	 echo '<?xml version="1.0" encoding="ISO-8859-1" ?> 
	 <rss version="0.91">
	  
	 <channel> 
	 
	 <title>Hardware Newsfeed</title> 
	 <link>http://www.meineurl.de</link> 
	 <description>Die '.$_GET['id'].' aktuellsten News aus der Hardware-Branche</description>
	 <language>de-de</language> 
	 <copyright>'.date("Y").' http://www.meineurl.de</copyright> 
	 <image>
	 <url>http://www.meineurl.de</url>  
	 <title>Hardware Newsfeed</title> 
	 <link>http://www.meineurl.de/</link> 
	 </image>
	 '; 
	 
 @mysql_connect($mysql['host'], $mysql['user'], $mysql['passwort']) or die('Verbindung zum MySQL Server kann nicht aufgebaut werden'); 
	 @mysql_select_db($mysql['db']) or die('Datenbank kann nicht selektiert werden'); 
	 
	 $laenge = 300;
	 
	 $ergeb=mysql_query("SELECT * FROM corenews2_news ORDER BY id DESC LIMIT 0, $_GET[id]"); 
	 while($array=mysql_fetch_array($ergeb)) { 
	 echo '<item> 
	 <title>'.$array['news_title'].'</title> 
	 <description>'.$news_text = substr($array['news_text'], 0, $laenge).'...</description> 
	 <link>http://www.meineurl.de/index.php?news_id='.$array['id'].'</link> 
	 </item> 
	 '; 
	 } 
	 echo '</channel> 
	 </rss>'; 
	 ?>

erhalte jedoch folgende fehlermeldung:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/web265/html/rss.php on line 11
 
Bist Du sicher, dass Deine Spalte cotegory_id und net category_id heisst?
Ist mir nur grad so aufgefallen...
 
hm... hast Du Dir Deine beiden $_GET Variablen mal ausgeben lassen, die könnten auch nen Parse Error verursachen, falls eine/beide leer ist/sind.
Ich würde auch das GET herausziehen... ob das aber das Problem sein kann..öhh... ausprobieren...
Code:
$query="SELECT * FROM corenews2_news ORDER BY id DESC LIMIT 0, ".$_GET['id']." WHERE cotegory_id=".$_GET['catid'];

vg Clemens
 
mit deinem code gehts es ;)))

allerdings hat das script irgendwie nicht viel gebracht. Wenn ich z.b. rss.php?cat=5 eingebe erscheinen nicht nur die news aus der kategorie 5 sondern alle.

aktueller php code:

PHP:
 <? 
	 /* MySQL-Teil */ 
	 $mysql['host'] = 'nicht angegeben'; // MySQL Host 
	 $mysql['user'] = 'nicht angegeben'; // MySQL User 
	 $mysql['passwort'] = 'nicht angegeben'; // MySQL Passwort 
	 $mysql['tabelle'] = 'nicht angegeben'; // Tabelle aus der der Inhalt kommt
	 $mysql['db'] = 'nicht angegeben'; // Datenbank Name 
	 
	 Header("Content-Type: text/xml"); 
 
 $query="SELECT * FROM corenews2_news ORDER BY id DESC LIMIT 0, ".$_GET['id']." WHERE category_id=".$_GET['catid'];
 
	 if($_GET['id']>10 || empty($_GET['id'])) $_GET['id']=5; 
	 
	 echo '<?xml version="1.0" encoding="ISO-8859-1" ?> 
	 <rss version="0.91">
	  
	 <channel> 
	 
	 <title>Hardware Newsfeed</title> 
	 <link>http://www.meineurl.de</link> 
	 <description>Die '.$_GET['id'].' aktuellsten News aus der Hardware-Branche</description>
	 <language>de-de</language> 
	 <copyright>'.date("Y").' http://www.meineurl.de</copyright> 
	 <image>
	 <url>http://www.meineurl.de</url>  
	 <title>Hardware Newsfeed</title> 
	 <link>http://www.meineurl.de/</link> 
	 </image>
	 '; 
	 
 @mysql_connect($mysql['host'], $mysql['user'], $mysql['passwort']) or die('Verbindung zum MySQL Server kann nicht aufgebaut werden'); 
	 @mysql_select_db($mysql['db']) or die('Datenbank kann nicht selektiert werden'); 
	 
	 $laenge = 300;
	 
	 $ergeb=mysql_query("SELECT * FROM corenews2_news ORDER BY id DESC LIMIT 0, $_GET[id]"); 
	 while($array=mysql_fetch_array($ergeb)) { 
	 echo '<item> 
	 <title>'.$array['news_title'].'</title> 
	 <description>'.$news_text = substr($array['news_text'], 0, $laenge).'...</description> 
	 <link>http://www.meineurl.de/index.php?news_id='.$array['id'].'</link> 
	 </item> 
	 '; 
	 } 
	 echo '</channel> 
	 </rss>'; 
	 ?>
 
upps hatte heute mittag ausversehen hier im thread auf erledigt geklickt, aber garnicht richtig wahrgenommen was dies bedeutet, bis ich grad den pfeil in der überschrift gesehen hab, also das problem ist noch nicht gelöst, siehe vorheriger post ... vielen dank für hilfe
 
Hallo nochmal,

Du machst ja auch gar nix mit der neuen query.
Die hängt da oben in der Gegend rum und wird net abgerufen und unten hast Du die hier
Code:
$ergeb=mysql_query("SELECT * FROM corenews2_news ORDER BY id DESC LIMIT 0, $_GET[id]");
und die gibt Dir natürlich alle aus...
Hast Du eventuell vergessen die alte durch die neue zu ersetzen? :)
Das wär so mein Plan erstmal...
vg Clemens
 
hmm wie ruf ich es den dann ab ? so irgendwie ?

PHP:
$ergeb=mysql_query("SELECT * FROM corenews2_news ORDER BY id DESC LIMIT 0, ".$_GET['id']." WHERE category_id=".$_GET['catid'];

dann erhalt ich nen arse error: parse error, unexpected ';'

hab ka
 
Zurück