Page 1 of 1
[Gelöst] MySQL Abfrage - Ich verstehe es nicht
Posted: Wed Apr 23, 2008 11:24 am
by VVx
Hallo,
ich bin zur zeit dabei, mein installiertes CMSMS mit einigen Zusatzfunktionen auszustatten. In einem Content einer Seite habe ich den Tag
{database_Test1} eingebunden und steuere damit nun das Smarty Plugin
function.database_Test1.php an. Der Quellcode des Smarty sieht so aus.
");
else
die("Fehler!");
$abfrage = "SELECT nachname,vorname FROM telefon_technik";
$resID = mysql_query($abfrage, $linkID);
if (!$resID) die("Fehler in der Abfrage.");
while ($zeile = mysql_fetch_array($resID,MYSQL_BOTH))
{
echo("Nachname: " . $zeile[0]);
echo("- Name: ". $zeile["login"] . "\n");
}
?>
Angezeigt wird leider (mal wieder

) nichts, d.h. bis zum horizontalen Menü ist alles gut, der Footer + Content Bereich wird nicht dargestellt. Sowas passiert, so habe ich bisher herausgefunden, wenn der Quellcode nicht stimmt. Was stimmt an meinem Quellcode nicht? Was muss ich ändern, damit er funktioniert?
Danke für eure Antworten.
Gruß
VVx
Re: MySQL Abfrage - Ich verstehe es nicht
Posted: Wed Apr 23, 2008 11:33 am
by LeisureLarry
Da Du mysql_fetch_array mit MYSQL_BOTH verwendest, sollten Deine Daten normalerweise in der Schleife mittels $zeile['Spaltenname'] erreichbar sein, wobei der Spaltenname genau der Schreibweise in Deiner Tabelle telefon_technik entsprechen muß.
Grüße aus Nürnberg
LeisureLarry (interiete.net)
Re: MySQL Abfrage - Ich verstehe es nicht
Posted: Wed Apr 23, 2008 11:39 am
by VVx
Hallo,
Danke für deine Antwort. Ich habe den Quellcode nun geändert, allerdings funktioniert es immer noch nicht.
");
else
die("Fehler!");
$abfrage = "SELECT nachname,vorname FROM telefon_technik";
$resID = mysql_query($abfrage, $linkID);
if (!$resID) die("Fehler in der Abfrage.");
while ($zeile = mysql_fetch_array($resID,MYSQL_BOTH))
{
echo("Nachname: " . $zeile["nachname"]);
echo("- Name: ". $zeile["vorname"] . "\n");
}
?>
Hast Du noch eine Idee?
Gruß
VVx
Re: MySQL Abfrage - Ich verstehe es nicht
Posted: Wed Apr 23, 2008 3:23 pm
by thoms
Geh mal Schritt für Schritt Dein Skript durch und schau, was funktioniert und was nicht.
D.h. laß Dir mal den Inhalt der Variablen ausgeben und schau, was da so drinnen steht.
z.B.
Code: Select all
while ($zeile = mysql_fetch_array($resID,MYSQL_BOTH))
{
print_r ($zeile)
}
Wenn Dir in der Schleife nichts angezeigt wird, scheint die Abfrage schon nicht zu funktionieren.
Thomas
Re: MySQL Abfrage - Ich verstehe es nicht
Posted: Thu Apr 24, 2008 7:24 am
by VVx
Hi zusammen,
danke für die bisherigen Antworten. Ich habe nun einmal folgendes versucht, u. a. auch, um meine eigene Dummheit als Fehler auszuschließen

. Ich habe ein neues Smarty erstellt welches
function.database_PHP.php heißt, in einem Content mit dem Tag
{database_PHP} aufgerufen wird und folgenden Inhalt hat:
Das Erwartete wird allerdings nicht dargestellt.

Ich bin am Ende meines Latains. Für jeden Hinweis bin ich sehr dankbar.
Gruß
VVx
Re: MySQL Abfrage - Ich verstehe es nicht
Posted: Thu Apr 24, 2008 8:35 am
by LeisureLarry
Ohne eine Funktionsdeklaration entsprechend der Namenskonventionen wie Du es bei dem anderen Code gemacht hast, kann Smarty auch nix damit anfangen, d.h. es muß ein function_smarty_xyz usw. drumherum.
Grüße aus Nürnberg
LeisureLarry (interiete.net)
Re: MySQL Abfrage - Ich verstehe es nicht
Posted: Thu Apr 24, 2008 3:33 pm
by cyberman
Evtl. hilft dir auch Albys Lösung aus diesem Thread weiter ...
Re: MySQL Abfrage - Ich verstehe es nicht
Posted: Fri Apr 25, 2008 11:40 am
by VVx
Hallo zusammen,
danke für eure Hilfe. Ihc glaube so langsam komme ich klar. Kann es sein, das die MySQL-Syntax im CMSMS Code etwas abgewandelt wird? Ich galube hier liegen meine Schwierigkeiten.
Gruß
VVx
Re: MySQL Abfrage - Ich verstehe es nicht
Posted: Fri Apr 25, 2008 4:48 pm
by NaN
VVx wrote:
Hallo zusammen,
danke für eure Hilfe. Ihc glaube so langsam komme ich klar. Kann es sein, das die MySQL-Syntax im CMSMS Code etwas abgewandelt wird? Ich galube hier liegen meine Schwierigkeiten.
Gruß
VVx
Das liegt daran, dass CMSms auf AdoDB Lite aufbaut.
Soweit ich feststellen konnte, kann man auf die Datenbank, die auch vom CMS verwendet wird nicht einfach direkt mit PHP-Funktionen wie z.B. mysql_fetch_array(); zugreifen.
Dazu muss man die Funktionen des Datanbank-Layers verweden.
Z.B. :
global $gCms;
$db = $gCms->GetDb();
$query = "SELECT * FROM ".cms_db_prefix()."tabellen_name";
$dbresult=$db->Execute($query);
while ($dbresult && $row = $dbresult->FetchRow())
{
$blah = $row['column'];
}
Ich weiß allerdings noch nicht, wie das bei "externen" also anderen Datenbanken, die nix mit dem CMS zu tun habn ist.
Re: MySQL Abfrage - Ich verstehe es nicht
Posted: Sat Apr 26, 2008 8:01 am
by cyberman
cyberman wrote:
Evtl. hilft dir auch Albys Lösung aus diesem Thread weiter ...
Upps, irgend wie war der Link weg

...
http://forum.cmsmadesimple.org/index.ph ... l#msg65749