Auf meiner Seite habe ich an mehren Stellen eine Datenbankabfrage.Die Datenbankabfragen funktionieren soweit auch ganz gut. Nur gibt es ein Problem, sobald ich das erstellte Inhaltsverzeichnis, der Cathegory oder der Section anwähle werden diese Abfragen aus dem Beitrag, der auf home liegt übernommen. Das soll aber nicht geschehen. Hier müßte eine Bedinung geschaffen werden, die Abruf unterbindet, oder mit einer anderen Regel austauscht. Im großen und ganzen handelt es sich um Berichte, die in der Datenbank unter jos_content eingeordnet sind. Handelt es sich um keine Datei, die daraus komplett erstellt wird, sondern um ein Inhaltsverzeichnis, dann soll diese DBAbfrage nicht stattfinden.
Bedingungen um das Inhaltsverzeichnis von einer Datenbankabfrage abzuhalten
Einklappen
X
-
Der Derzeitige Code ist:
PHP-Code:<?php
global $database;
$id = mosGetParam( $_REQUEST, 'id' );
$query = "SELECT introtext FROM `jos_content` WHERE id='$id'";
$result = mysql_query($query) ;
/* Ausgabe der Ergebnisse in HTML */
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
/* Freigeben des Resultsets */
mysql_free_result($result);
?>
PHP-Code:if {($jos_content)
$sql = "SELECT introtext FROM `jos_content` WHERE jos_content='$jos_content'"; ){
[der ganze andere Code]
}
- Ist die If Bedingung so korrekt grundsätzlich gestellt?
- Und ist eine Abfrage der Tabelle korrekt bezeichnet, denn das Inhaltsverzeichnis bezieht sich ja auch auf die jos_content Tabelle?
jos_content ist eine Tabelle im SQL, die abgefragt wird, wenn geschriebene Beiträge angezeigt werden.Zuletzt geändert von Yehudi; 04.02.2006, 09:19.
Kommentar
-
Also ehrlich gesagt, dein erstes Posting sagt mir nicht viel, ausser dass du irgendwas überprüfen willst.
Original geschrieben von Yehudi
Die Fragen dazu sind:- Ist die If Bedingung so korrekt grundsätzlich gestellt?
- Und ist eine Abfrage der Tabelle korrekt bezeichnet, denn das Inhaltsverzeichnis bezieht sich ja auch auf die jos_content Tabelle?
Was soll die Variable denn enthalten? Was willst du überprüfen?
Mal abgesehen von den Zwei öffnenden Klammern.
zu 2. siehe 1.
Also ich kann mit den bisherigen Angaben gar nix anfangen, die Beschreibung ist einfach zu mager, das Problem an sich sicher relativ einfach, wie ich das bis jetzt beurteile.mfg - sagg
Kommentar
-
Zu Post 1 - Sorry, das passiert nach einem ganzen Tag vorm PC sitzen. Ich habe mich heute morgen über mich selbst gewundert.
Ich habe mehrere Dokumente die Berichte sind. Das betrifft momentan eigentlich nur erst mal "News" andere Berichte wären dann z.B. : "Witze", "Projecte", etc. Alles das wird über Joomla in jos_content gespeichert. Wenn ich über phpMyAdmin gehe klicke ich die Datenbank Joomla an, und sehe zunächst alle "Tabellen", die in dieser Datenbank enthalten sind. Darunter jos_content. In dieser Tabelle sehe ich alle Berichte, die in mehreren Spalten unterteilt sind.
Die Bedingung soll sein, dass der Aufruf aus der Datenbank nur stattfinden soll, wenn es sich um einen Bericht aus der Tabelle handelt, aber nicht wenn es sich um ein Inhaltsverzeichnis dieser Tabelle handelt.
Auf meinem Testserver sieht das so aus:
Dies ist das Inhaltsverzeichnis:
http://192.168.3.1/Joomla/news_2006/
Das ist der Bericht:
http://192.168.3.1/Joomla-mambo/news...mla_1.0.7.html
Die URL's werden mit mod_rewrite und Open_SEF geändert. Das Prinzip bleibt aber immer das Gleiche.
Section und category sind übergeortnete "Inhaltsverzeichnisse" Werden diese dargestellt, ist die Bedingung nicht erfüllt.
jos_content läßt sich aber nicht so abfragen, wie die "id"
Kommentar
-
Das "192.168..." eine IP aus deinem Netzwerk ist, und man darauf von aussen nicht zugreifen kann, ist dir aber bewusst?
Zu deinem Problem:
Die Seite muss ja irgendwoher die Information haben, das sie den Beitrag direkt, oder das Inhaltsverzeichniss anzeigen soll (Wenn ich dich richtig verstanden habe).
Also wäre ja das einfachste, du nutzt die gleichen Variablen und überprüfst diese auf den Inhalt.
Mach einfach das, was Joomla auch macht.
Und je nach dem, was die Variable beinhaltet, führst du deinen Query entweder aus oder nicht.mfg - sagg
Kommentar
-
Original geschrieben von TobiaZ
ähm, schau dir doch bitte mal die syntax von if an. die parseerror können eigentlich nicht mehr viel mit pseudocode zu tun haben.
mehr kann aber auch ich nicht sagen.
Kommentar
-
Original geschrieben von sagg
Das "192.168..." eine IP aus deinem Netzwerk ist, und man darauf von aussen nicht zugreifen kann, ist dir aber bewusst?
Na klar, soll man ja auch nicht, dafür ist es ja ein Testserver. Die ip würde dann später nur durch www.yehudi.info ausgetauscht sein. Das liegt aber auf einem anderen Server. Ich wäre schön blöd, wenn ich dort rumtesten würde.
Zu deinem Problem:
Die Seite muss ja irgendwoher die Information haben, das sie den Beitrag direkt, oder das Inhaltsverzeichniss anzeigen soll (Wenn ich dich richtig verstanden habe).
Also wäre ja das einfachste, du nutzt die gleichen Variablen und überprüfst diese auf den Inhalt.
Mach einfach das, was Joomla auch macht.
Und je nach dem, was die Variable beinhaltet, führst du deinen Query entweder aus oder nicht.
Kommentar
-
Ich habe einfach alle if Bedingungen in der com_content Datei ausprobiert. Hier ist das Ergebnis:
PHP-Code:<?php
global $database;
$id = mosGetParam( $_REQUEST, 'id', 'com_content' );
if ( $sectionid == 0) {
$query = "SELECT introtext FROM `jos_content` WHERE id='$id'";
$result = mysql_query($query);
/* Ausgabe der Ergebnisse in HTML */
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
/* Freigeben des Resultsets */
mysql_free_result($result);
}
?>
Kommentar
Kommentar