Seite 1 von 2

Problem bei eigenem TV-CMS

Verfasst: 21.11.2006 22:16
von Lohgock-Trainer
Ich habe mal ein kleines CMS geschrieben. Nun, Adminpanel etc. geht, nur die Ausgabe spinnt. Die soll nämlich so aussehen (simpel)

Code: Alles auswählen

<?php
	$id = $_GET['id'];
	settype($id,"integer");
	$where = $epi_number[$id];
	if(empty($id)) $sql = "SELECT epi_number, staffel, staffel_number, titel, guide FROM tv";
	else $sql = "SELECT epi_number, staffel, staffel_number, titel, guide FROM tv WHERE epi_number = '$epi_number'";
	$result = mysql_query($sql) OR die(mysql_error());
	while($ds = mysql_fetch_object($result)) {
		$epi_number = $ds->epi_number;
		$staffel = $ds->staffel;
		$staffel_number = $ds->staffel_number;
		$titel = $ds->titel;
		$guide = $ds->guide;
		echo "<div>#".$epi_number." ".$titel."</div>";
		echo "<div>Staffel: ".$staffel." / Staffelnummer: ".$staffel_number."</div>";
		echo "<div>".$guide."</div>";
	}
	?>
Dort wird allerdings nichts angezeigt. Woran liegt das?

Verfasst: 22.11.2006 13:11
von gn#36
Wo kommt $epi_number her? Ich sehe keine Stelle wo das eingetragen wird.
Außerdem sieht es in der Zeile

Code: Alles auswählen

$where = $epi_number[$id]
so aus, als wäre das ein Array, da du das aber später im WHERE Abschnitt deiner Abfrage verwendest würde abgefragt ob in der Spalte epi_number "Array" drin steht, was vermutlich nicht so ist.

Verfasst: 22.11.2006 14:09
von Lohgock-Trainer
Epi_number kommt in nem anderen Teil vor, aber hast Recht, habe das Array vergessen...

Verfasst: 22.11.2006 18:30
von Lohgock-Trainer
Habe nun das Array hinzugefügt; jetzt gibt es aberdas Problem das immernoch alles bei http://....?id=0 angezeigt wird. Sonst nirgends.

Code: Alles auswählen

<?
	$epi_number = array("Episoden-Nummer");
	$sql = "SELECT DISTINCT(epi_number) FROM tv ORDER BY epi_number";
	$result = mysql_query($sql) OR die(mysql_error());
	while($ds = mysql_fetch_object($sql)) $epi_number[] = $ds->epi_number;
	foreach($epi_number as $index => $menue) echo "<p><a href=\"?id=$index\">$menue</a></p>";
	
	$id = $_GET['id'];
	settype($id,"integer");
	$where = $epi_number[$id];
	if(empty($id)) $sql = "SELECT epi_number, staffel, staffel_number, titel, guide FROM tv";
	else $sql = "SELECT epi_number, staffel, staffel_number, titel, guide FROM tv WHERE epi_number = '$epi_number'";
	$result = mysql_query($sql) OR die(mysql_error());
	while($ds = mysql_fetch_object($result)) {
		$epi_number = $ds->epi_number;
		$staffel = $ds->staffel;
		$staffel_number = $ds->staffel_number;
		$titel = $ds->titel;
		$guide = $ds->guide;
		echo "<div>#".$epi_number." ".$titel."</div>";
		echo "<div>Staffel: ".$staffel." / Staffelnummer: ".$staffel_number."</div>";
		echo "<div>".$guide."</div>";
	}
	?>

Verfasst: 22.11.2006 19:09
von Miriam
das immernoch alles bei http://....?id=0 angezeigt wird. Sonst nirgends.
Was heisst das auf Deutsch? Wo ist sonst nirgends?

Verfasst: 22.11.2006 19:28
von Lohgock-Trainer
gebe ich nun id=1 an erscheint dort nichts.

Verfasst: 22.11.2006 21:34
von Miriam
Schauen wir mal:

Code: Alles auswählen

if(empty($id)) 
         $sql = "SELECT epi_number, staffel, staffel_number, titel, guide FROM tv";
else 
         $sql = "SELECT epi_number, staffel, staffel_number, titel, guide FROM tv WHERE epi_number = '$epi_number'";
Wenn $id = 0, dann wird er IF Zweig ausgeführt, bei ganzen Zahlen > 0 der ELSE Zweig.

Dummerweise ist $epi_nummer = '' (leer) und somit die Abfrage in ELSE Zweig:

Code: Alles auswählen

SELECT epi_number, staffel, staffel_number, titel, guide FROM tv WHERE epi_number = ''
Und das bringt kein Ergebnis.

Zum restlichen Code sage ich erstmal nichts.... :oops:

Verfasst: 22.11.2006 21:48
von Lohgock-Trainer
Ach, das ganze Teil kann ich wegwerfen

Verfasst: 22.11.2006 22:12
von Lohgock-Trainer
Hey, i-wie klappt es jetzt, habe nur was geändert

Code: Alles auswählen

<?
	$epi_number = array("Episoden-Nummer");
	$sql = "SELECT DISTINCT(epi_number) FROM tv ORDER BY epi_number";
	$result = mysql_query($sql) OR die(mysql_error());
	while($ds = mysql_fetch_object($result)) $epi_number[] = $ds->epi_number;
	foreach($epi_number as $index => $menue) echo "<p><a href=\"?id=$index\">#$menue</a></p>";
	
	$id = $_GET['id'];
	settype($id,"integer");
	if($id < 0 OR $id >= count($epi_number)) $id=0;
	$where = $epi_number[$id];
	$select = "*";
	if(empty($id)) $sql = "SELECT $select FROM tv";
	else $sql = "SELECT $select FROM tv WHERE epi_number '$where'";
	$result = mysql_query($sql) OR die(mysql_error());
	while($ds = mysql_fetch_object($result)) {
		$epi_number = $ds->epi_number;
		$staffel = $ds->staffel;
		$staffel_number = $ds->staffel_number;
		$titel = $ds->titel;
		$guide = $ds->guide;
		echo "<div>#".$epi_number." ".$titel."</div>";
		echo "<div>Staffel: ".$staffel." / Staffelnummer: ".$staffel_number."</div>";
		echo "<div>".$guide."</div>";
	}
	?>
EDIT: Ach verdammt, die IDs werden nicht korrekt angezeigt

Verfasst: 22.11.2006 22:29
von Miriam
Wo hängt's denn????

Und Du hast nicht wirklich $select = "*"; geschrieben, Oder? :o :o :o