artikelabfrage für sitemap?

Hans Hansen

Grünschnabel
Hallo Leute,

ich hab mir da mal ein kleines Script zusammengestellt um alle Artikel aus der Datenbank auszulesen und als Sitemap darzustellen.

Habe allerdings kaum oder gar keine Ahnung von php+mysql

Nur findet er keine Ergebnisse? Eine Fehlermeldung gibts auch nicht. Artikel sind vorhanden.

PHP:
<?
$abfrage = "SELECT * FROM " . TABLE_ARTIKEL . " where 1";
$ergebnis = mysql_query($abfrage);
While ($row = mysql_fetch_object($ergebnis))
{
 $all_artikels[] = $row;
}
;
	
require($dateiPfad . "templates/" . $rowTemp->name . "/artikeluebersicht/header_uebersicht.tpl");


$tpl_artikelname = "<a href=\"index.php?id=" . $row->id ."&action=detail\" class=\"kontrast\">" . $row->artikel_name . "</a>";

$maketpl_uebersicht[] = array('id'=>$row->id,
	
'artikel_name'=>$tpl_artikelname);

require($dateiPfad . "templates/" . $rowTemp->name . "/artikeluebersicht/uebersicht.tpl");
?>

die datei wird includet, daher ist hier kein dbconnect drin.

Hat einer eine Idee, oder kann mir einer mal ein anderes kurzes Script für Abfrage und Ausgabe posten. das ich das mal so testen kann.
 
hallo hast Du phpmyadmin auf dem server?
wenn ja nimm mal deine sql abfrage select und führe diese bei phpmyadmin aus.

ohh hier ist ein fehler:

$abfrage = "SELECT * FROM " . TABLE_ARTIKEL . " where 1";

das muss

$abfrage = "SELECT * FROM " . $TABLE_ARTIKEL . " where 1";

heissen, das where 1 kannst Du auch weglassen, brauchst Du nicht!
 
ich möchte nichts sagen aber ich habe jetzt in den abschnitt deines scriptes mind. 3 variablen die undefiniert sind

$rowTemp->name hab ich nicht gefunden
$row->ID würde immer nur die letzte ID die ausgelesen wurde ausgeben, da alle infos in $all_artikels[] (mischmasch aus deutsch und english?!) stehe
die anderen kommen wohl aus dem anderen skript

TABLE_ARTIKEL kann auch eine konstante sein, nicht unüblich, das als konstante zu speichern, weil man ja normalerweise den namen einer tabelle nicht alle 30 sekunden ändert
 
$rowTemp-> wird durch ein ordnername ersetzt der in einer anderen Datei definiert wird.

TABLE_ARTIKEL wird später durch die richtige Tabelle in diesem Fall
testshop_artikel ersetzt, ist in der confidatei definiert.

$row->ID hab ich nicht verstanden.

$all_artikels[] inkl. des Schnipsel hatte ich aus ein anderem forum.

bessere Lösungsvorschläge sind aer immer willkommen.

Mein Ziel: alle Artikel mit Link zur Detailansicht ausgeben (art sitemap)

dafür habe ich eine tabelle namens artikel, mit den Spalten id, artikel_name, aktiv usw.

die id wird später für den link benötigt um den entsprechenden Artikel aufzurufen, "Aktiv" 1 oder 0 heisst, ob der Artikel für Kunden sichtbar ist (ausgegeben wird).

artikel_name ist halt der Name des Artikels.
 
http://dynamic-webpages.de/50.tutorials.php?dwp_tutorialID=7




PHP:
$db = mysql_connect("127.0.0.1","root");//deine db verbindung halt

$abfrage = "SELECT * FROM ".$TABLE_ARTIKEL;
$ergebnis = mysql_query($abfrage,$db);
while ($row = mysql_fetch_row($ergebnis))
{
 echo '1.Spalte',$row[0],'<br>';//erste spalte
 echo '2.Spalte',$row[1],'<br>'; //zweite spalte usw.
}
;

keine ahnung wie Du auf mysql_fetch_object gekommen bist
lass das mal durchlaufen und schaue ob er was zeigt!
Ich würde Dir dringend empfehlen erstmal klein anzufangen und auch erstmal mit DB zu spielen.
Auch bei Funktionen auf gross und kleinschreibung achten! php ist zwar nicht casesensitiv, aber andere sprachen und wenn man hier schon schludert....

Du kannst auch

while(list($date1,$name,$email,$homepage,$icq,$text,$aol,$yahoo) = mysql_fetch_row($ergebnis)) {
schreiben und somit brauchst nicht das array nehmen, sondern hast gleich variablen
 
Zurück