DB-Abfragen?!?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Welche Fehlermeldung erhältst du denn?
KB:knigge
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag 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
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag 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
Benutzeravatar
SD582
Mitglied
Beiträge: 307
Registriert: 08.07.2005 13:15
Wohnort: Salzburg
Kontaktdaten:

Beitrag 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
Wer einen Rechtschreibfehler findet, darf ihn ruhig behalten. Ich habe noch genug davon auf Lager.
--- Sendet mir bitte KEINE PMs - Ich bevorzuge richtige email!
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag 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
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag 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
t2004
Mitglied
Beiträge: 81
Registriert: 30.05.2005 14:08
Wohnort: Bremen

Beitrag 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
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag 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
t2004
Mitglied
Beiträge: 81
Registriert: 30.05.2005 14:08
Wohnort: Bremen

Beitrag 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
Benutzeravatar
leopittoni
Mitglied
Beiträge: 1162
Registriert: 26.04.2004 20:17

Beitrag 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
Antworten

Zurück zu „Coding & Technik“