Seite 2 von 3

Verfasst: 22.07.2005 21:02
von Pyramide
Welche Fehlermeldung erhältst du denn?

Verfasst: 23.07.2005 13:23
von leopittoni
Hallo

Erhalte:

Ungueltige Abfrage: Unknown column 'MONTAG1' in 'where clause'

MONTAG1 ist aber ein Feld in meiner DB...

Code: Alles auswählen

$result = mysql_query("SELECT fach,status FROM meinetabelle WHERE stunde=MONTAG1");
die Tabelle meinetabelle sieht so aus:

stunde fach status
MONTAG1 mathe verschoben
MONTAG2 frz
MONTAG3 ital gestrichen

usw...

und MONTAG1 existiert... dass heisst dass ich warscheinlich was falsch mache bei der Abfrage...

Wer kann mir helfen?

Danke, Léo

Verfasst: 23.07.2005 13:33
von leopittoni
Hallo

HIer nochmals meine ganze php-Datei. Sie ist im root-verzeichnis, die benötigte DB-Tabelle ist in der selben DB wie das phpBB.

Code: Alles auswählen

<?php
//Benˆtigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './phpBB2/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


$result = mysql_query("SELECT fach,status FROM meinetabelle WHERE stunde=MONTAG1");

if (!$result) {
die('Ungueltige Abfrage: ' . mysql_error());
}


$row = mysql_fetch_row($result);
$fach = $row[1];
$status = $row[2];




$template->set_filenames(array(
'db_abfragen' => 'db_abfragen.tpl'
));


$template->assign_vars(array(
'FACH' => $fach,
'STATUS' => $status
));



$template->pparse('db_abfragen');

?>
Danke, Léo

Verfasst: 23.07.2005 13:35
von SD582
Hi

Deine Tabelle enthält kein Feld namens MONTAG1 sondern das Feld stunde enthält in einem Datensatz den Wert 'MONTAG1'

Deine Query muß also so aussehen:
"SELECT fach,status FROM meinetabelle WHERE stunde='MONTAG1'"

Siehst du den feinen Unterschied?

MONTAG1 ist der Inhalt eines Textfeldes und muß daher in Anführungsstrichen (einfachen-) stehen.

Gruß
Franz

Verfasst: 23.07.2005 13:43
von leopittoni
Hallo

Vielen Dank: Jetzt kommt keine Fehlermeldung mehr, aber dafür eine leere Seite...

Die Werte erscheinen leider nicht, wieso nicht? Eigentlich sollte es "fach" und "status" ausgeben.

Hier nochmals meine ganze PHP-Datei:

Code: Alles auswählen

<?php
//Benˆtigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './phpBB2/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


$result = mysql_query("SELECT fach,status FROM meinetabelle WHERE stunde='MONTAG1'");

if (!$result) {
die('Ungueltige Abfrage: ' . mysql_error());
}


$row = mysql_fetch_row($result);
$fach = $row[1];
$status = $row[2];




$template->set_filenames(array(
'db_abfragen' => 'db_abfragen.tpl'
));


$template->assign_vars(array(
'FACH' => $fach,
'STATUS' => $status
));



$template->pparse('db_abfragen');

?>
und meine .tpl:

Code: Alles auswählen

<html>
<head>
</head>
<body>
{FACH}{STATUS}
</body>
</html>
Danke für die Hilfe, Léo

Verfasst: 24.07.2005 14:52
von leopittoni
Hi und sorry für das doppel-post...

Aber... Kann mir niemand sagen, wieso die Daten nicht angezeigt werden, und nur eine weisse Seite kommt.?!

Ich danke Euch im Voraus, Léo

Verfasst: 24.07.2005 18:06
von t2004
Moin,
Original:

Code: Alles auswählen

$fach = $row[1];
$status = $row[2]; 
Aber müßte es nicht eher so lauten?

Code: Alles auswählen

$fach = $row['fach'];
$status = $row['status'];
mfg

Verfasst: 24.07.2005 18:20
von leopittoni
Hallo

Ich denke nicht, da oben ja steht:

$row = mysql_fetch_row($result);
$fach = $row[1];
$status = $row[2];

Oder schon?

Danke, Léo

Verfasst: 24.07.2005 19:16
von t2004
*achselzuck* So ist es auf jedenfall überall in den Forums-PHP-Dateien eingetragen...und es funktioniert. Ausserzeit verlierst Du ja nichts, wenn Du es so mal versuchst ;)

mfg

Verfasst: 24.07.2005 19:43
von leopittoni
probiert hab ichs, funktionieren tuts nicht.


Ich habe jetzt die Lösung gefunden:
$row = mysql_fetch_row($result);
$fach = $row[0];
$status = $row[1];

So gehts.

Momentan frage ich die DB ja so ab:

$result = mysql_query("SELECT fach,status FROM emeinetabelle WHERE stunde='MONTAG1'");

Ich habe aber noch MONTAG2, MONTAG3 usw. Soll ich das alles einzeln so abfragen oder gibts da eine Möglichkeit, alles zusammen abzufragen?

Danke, Léo