• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP: auslesen von verschieden kategorien

pluto

New member
hi

folgenden php script hab ich
PHP:
<?php
define (NL,"");/*was bedeutet das eigentlich?*/
$cx=odbc_pconnect("*","*","","");
$cur=odbc_exec($cx,"SELECT * FROM [News] ORDER BY [Erfasstam] DESC");
while(odbc_fetch_row($cur) AND $x<10){
$id=odbc_result($cur,1);
$newsart=odbc_result($cur,2);
$titel=odbc_result($cur,3);
$text=odbc_result($cur,4);
$zeit=odbc_result($cur,5);
$temp=explode("-",$zeit);
$temp2=explode(" ",$temp[2]);
$temp3=explode(":",$temp2[1]); 
echo "<a href='read.php?id=$id'>$titel".NL;
echo "$temp2[0].$temp[1].$temp[0] - $temp3[0]:$temp3[1]
".NL; 
$x=$x+1;
}
?>

jetzt möchte ich noch das man die news kategorie auswählen kann ($newsart), über einen link.

wie mache ich das am besten?

mfg
pluto
 
1. Mit Define legt man sog. Konstanten fest.
2. In der Schleife öffnest du einen Link, der nicht geschlossen wird anschleinen ;)
3. Wenn du nur eine Kategorie auswählen willst, brauchst du in deinem SQL Statement eine WHERE Clause bsp:

PHP:
<?php
define (NL,"");/*was bedeutet das eigentlich?*/
$cx=odbc_pconnect("*","*","","");
$cur=odbc_exec($cx,"SELECT * FROM [News] WHERE kategroie='news' ORDER BY [Erfasstam] DESC");
while(odbc_fetch_row($cur) AND $x<10){
$id=odbc_result($cur,1);
$newsart=odbc_result($cur,2);
$titel=odbc_result($cur,3);
$text=odbc_result($cur,4);
$zeit=odbc_result($cur,5);
$temp=explode("-",$zeit);
$temp2=explode(" ",$temp[2]);
$temp3=explode(":",$temp2[1]); 
echo "<a href='read.php?id=$id'>$titel".NL;
echo "$temp2[0].$temp[1].$temp[0] - $temp3[0]:$temp3[1]
".NL; 
$x=$x+1;
}
?>

Wenn du das ganze über einen Link machen willst, würd ich folgendes machen:

PHP:
<?php
define (NL,"");/*was bedeutet das eigentlich?*/
$cx=odbc_pconnect("*","*","","");
$query ="SELECT * FROM [News] ";
if($isset($kategorie)){
$query .="WHERE kategorie='$kategorie' ";
}
$query .="ORDER BY [Erfasstam] DESC";
$cur=odbc_exec($cx,$query);
while(odbc_fetch_row($cur) AND $x<10){
$id=odbc_result($cur,1);
$newsart=odbc_result($cur,2);
$titel=odbc_result($cur,3);
$text=odbc_result($cur,4);
$zeit=odbc_result($cur,5);
$temp=explode("-",$zeit);
$temp2=explode(" ",$temp[2]);
$temp3=explode(":",$temp2[1]); 
echo "<a href='read.php?id=$id'>$titel".NL;
echo "$temp2[0].$temp[1].$temp[0] - $temp3[0]:$temp3[1]
".NL; 
$x=$x+1;
}
?>
Als link würde dann folgendes funzen:
PHP:
<a href="index.php?kategorie=news</a>

Zum testen kannst du Dir dann $query jeweils mit

PHP:
echo "Debug: ".$query."<br>";

ausgeben lassen.
 
vielen dank für deine hilfe!

die erste variante funktioniert.

bei den zweiten bekomme ich folgenden fehler:
Fatal error: Call to undefined function: () in D:\...\news_test.php on line 5

auf line 5 steht: if($isset($kategorie)){

hast du eine idee an was das liegen könnte?
 
vielen dank nochmals.

nur leider funktioniert es nicht, es gibt zwar keine fehlermeldung aber wenn ich auf den link klicke passiert nichts. die debug funktion zeigt mir folgendes an:

SELECT * FROM [News] ORDER BY [Erfasstam] DESC

also on where.
 
Hallo!

Du hast den Link von style-guide aber schon vervollständigt,oder?

<a href="index.php?kategorie=news</a> ==>>> <a href="index.php?kategorie=news">NEWS</a>

Wenn ja lass das isset einfach mal weg,also:

if($kategorie) {
 
2 fragen habe ich noch:

wie stelle ich es an das am anfang noch keine news erscheinen, wenn noch keine kategorie ausgewählt wurde?

ich möchte gerne noch einen textlink machen wo man die nächsten 10 news anzeigen kann (so wie in einer suchmaschine). eine idee hab ich schon:
...
while(odbc_fetch_row($cur) AND $x<10+$next){
...
$next=10
...
aber wie mache ich das mit einem link?

mfg
pluto
 
Zurück
Oben