Wie erweitert man die Artikelliste??
Wie erweitert man die Artikelliste??
hallo,
da ich ein contenido/php/mysql newbie bin, sind selbst einfache änderungen an den bestehenden modulen für mich sehr schwierig. vielleicht kann mir jemand helfen.
die standard artikelliste (4.4) listet headline, subheadline und den beginn des textes auf. soweit so gut, funktioniert auch alles.
in meinen artikeln sind aber noch diverse andere felder definiert (cms_html[1..x]). wie muss ich die artikelliste anpassen, damit ich auch noch die inhalte anderer felder angezeigt bekomme?
an welcher stelle des codes werden diese aus der datenbank ausgelesen und wie bzw. wo werden sie dann variablen zugewiesen??
bitte um hilfe!
eine andere frage wäre dann noch, wie ist es möglich z.b. die headline (also die ausgabe der artikelliste) zu sortieren? nach anfangsbuchstaben oder zahlen... macht das ein php-skript oder liefert die datenbank sortierfunktionen?
vielen dank für die hilfe!!
greetings dSit.
da ich ein contenido/php/mysql newbie bin, sind selbst einfache änderungen an den bestehenden modulen für mich sehr schwierig. vielleicht kann mir jemand helfen.
die standard artikelliste (4.4) listet headline, subheadline und den beginn des textes auf. soweit so gut, funktioniert auch alles.
in meinen artikeln sind aber noch diverse andere felder definiert (cms_html[1..x]). wie muss ich die artikelliste anpassen, damit ich auch noch die inhalte anderer felder angezeigt bekomme?
an welcher stelle des codes werden diese aus der datenbank ausgelesen und wie bzw. wo werden sie dann variablen zugewiesen??
bitte um hilfe!
eine andere frage wäre dann noch, wie ist es möglich z.b. die headline (also die ausgabe der artikelliste) zu sortieren? nach anfangsbuchstaben oder zahlen... macht das ein php-skript oder liefert die datenbank sortierfunktionen?
vielen dank für die hilfe!!
greetings dSit.
Re: Wie erweitert man die Artikelliste??
am besten suchst du mal nach artikelliste - da gibts schon jede menge threads dazu. die info die du suchst müsste dort zu finden sein.dSit. hat geschrieben:die standard artikelliste (4.4) listet headline, subheadline und den beginn des textes auf. soweit so gut, funktioniert auch alles.
in meinen artikeln sind aber noch diverse andere felder definiert (cms_html[1..x]). wie muss ich die artikelliste anpassen, damit ich auch noch die inhalte anderer felder angezeigt bekomme?
an welcher stelle des codes werden diese aus der datenbank ausgelesen und wie bzw. wo werden sie dann variablen zugewiesen??
bitte um hilfe!
das sortieren erreichst du mit anpassung des sql queriesdSit. hat geschrieben:eine andere frage wäre dann noch, wie ist es möglich z.b. die headline (also die ausgabe der artikelliste) zu sortieren? nach anfangsbuchstaben oder zahlen... macht das ein php-skript oder liefert die datenbank sortierfunktionen?
such in deinem modul die zeile mit $sql oder $query...
so gesehen sorgt das sql query in den meisten fällen für die sortierung
Sortierung funktioniert nicht richtig
Danke für die Hilfe, hat mir schon weitergeholfen!
Jedoch bin ich jetzt auf ein anderes Problem gestoßen:
Die Artikellistenausgabe soll nach einem Wert sortiert werden, der sich bei mir in der Tabelle CONTENT und Spalte value befindet: also con_CONTENT.value. Das Problem ist nur, daß in dieser Zelle mehrere Werte gespeichert sind, die ich zwar mit "idtype=xx" und "typeid=xx" unterscheiden kann, aber das mit dem sortieren klappt nicht so ganz.
Wie kann ich mit dem ORDER BY-Befehl nach einem ganz bestimmten Wert dieser Zelle (zb. idtype=1 AND typeid=3) sortieren?
Vielleicht kann mir jemand das query-Statement ergänzen??
Vielen Dank!!
...und schöne Ostern!
Gruß dSit.
Jedoch bin ich jetzt auf ein anderes Problem gestoßen:
Die Artikellistenausgabe soll nach einem Wert sortiert werden, der sich bei mir in der Tabelle CONTENT und Spalte value befindet: also con_CONTENT.value. Das Problem ist nur, daß in dieser Zelle mehrere Werte gespeichert sind, die ich zwar mit "idtype=xx" und "typeid=xx" unterscheiden kann, aber das mit dem sortieren klappt nicht so ganz.
Wie kann ich mit dem ORDER BY-Befehl nach einem ganz bestimmten Wert dieser Zelle (zb. idtype=1 AND typeid=3) sortieren?
Vielleicht kann mir jemand das query-Statement ergänzen??
Code: Alles auswählen
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY CATART.idart";
...und schöne Ostern!
Gruß dSit.
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Re: Sortierung funktioniert nicht richtig
Hallo,
ich verstehe nicht genau, was Du da wie sortieren willst, aber mit ORDER BY kannst Du nur nach einer bestimmten Spalte und dann aufsteigend (ASC) oder absteigend (DESC) sortieren. Hoechstens mit HAVING und GROUP BY, wenn Du wirklich feste Werte angeben willst.
Gruss
Christa
ich verstehe nicht genau, was Du da wie sortieren willst, aber mit ORDER BY kannst Du nur nach einer bestimmten Spalte und dann aufsteigend (ASC) oder absteigend (DESC) sortieren. Hoechstens mit HAVING und GROUP BY, wenn Du wirklich feste Werte angeben willst.
Gruss
Christa
...per HTMLHEAD[x] habe ich verschiedene Daten in der DB gespeichert. Wie ich das sehe sind diese alle in der Tabelle CONTENT, unter "value" gespeichert.
Die verschiedenen Daten haben alle idtype='1' (wg. HEAD), aber verschiedene typeid's, da verschiedene Werte.
Das Sortieren nach einem Wert klappt (!), aber die so sortierten Werte sollen danach nochmal nach dem anderen Kritierium sortiert werden....
(1. Wert ist das Datum, 2. die Uhrzeit).
Deshalb muss ich ja auf einen einzelnen Eintrag zugreifen können.
Hat darauf jemand ne Antwort, bzw. weißt Du jetzt was ich meine?
Die verschiedenen Daten haben alle idtype='1' (wg. HEAD), aber verschiedene typeid's, da verschiedene Werte.
Das Sortieren nach einem Wert klappt (!), aber die so sortierten Werte sollen danach nochmal nach dem anderen Kritierium sortiert werden....
(1. Wert ist das Datum, 2. die Uhrzeit).
Deshalb muss ich ja auf einen einzelnen Eintrag zugreifen können.
Hat darauf jemand ne Antwort, bzw. weißt Du jetzt was ich meine?
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Ich bin mir nicht ganz sicher ...dSit. hat geschrieben:weißt Du jetzt was ich meine?
Denn Dein Query oben laeuft ueber die Tabelle cat_art, und Du schreibst aber in derselben Nachricht, dass Du nach etwas in der Tabelle content sortieren willst ... Evtl. tut's das hier, falls ich Dich richtig verstanden habe:
Code: Alles auswählen
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
$cfg["tab"]["content"]." AS CONTENT ".
"WHERE CATART.idcat = '$selcat' AND
ARTLANG.idart = CATART.idart AND
CONTENT.idartlang = ARTLANG.idartlang AND
ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1'
ORDER BY CATART.idart, CONTENT.typeid";
Christa
Danke für die schnelle Antwort, aber leider funkts nicht oder ich mach irgendwas falsch.
Sorry,
da ich was php und mysql angeht nicht wirklich zu den Profis gehöre, kann ich leider auch nicht richtig erklären, was das Problem ist.
Versuchen wir´s mal so:
Ziel: eine abgewandelte Artikelliste soll eine Tabelle ausgeben. Die Tabelle hat viel Spalten (demnach müssen VIER Werte irgendwo aus der Datenbank kommen). Diese Werte sind:
DATUM, ORT, ZEIT, NAME
Das mit dem ausgeben klappt auch alles wunderbar. Aber da es sich um ca. 60 Datensätze handelt wäre eine sortierte Ausgabe natürlich schön...
Jetzt das Problem (und nochmal....):
ich möchte nach ORT und nach DATUM sortieren.
1. nach Ort
2. nach Datum
(Diese Daten verweisen auf eine Seite wo die ganze Information steht, funktioniert auch)
...da aber Ort, sowie Datum in der Tabelle CONTENT (.value) gespeichert sind (das hat mir mein phpmyadmin verraten), weiß ich jetzt nicht wie ich sortieren kann....
Die Werte sind also laut phpmyadmin in der gleichen Zelle, aber unter verschiedenen idtype und typeid Werten.
Den query-Befehl habe ich aus meinem Output-Modul, das alle Werte genauso anzeigt, wie ich´s haben will.
Vielleicht fällt Dir ja nochwas dazu ein!!
Vielen Dank und einen schönen Abend,
wünscht dSit.
Sorry,
da ich was php und mysql angeht nicht wirklich zu den Profis gehöre, kann ich leider auch nicht richtig erklären, was das Problem ist.
Versuchen wir´s mal so:
Ziel: eine abgewandelte Artikelliste soll eine Tabelle ausgeben. Die Tabelle hat viel Spalten (demnach müssen VIER Werte irgendwo aus der Datenbank kommen). Diese Werte sind:
DATUM, ORT, ZEIT, NAME
Das mit dem ausgeben klappt auch alles wunderbar. Aber da es sich um ca. 60 Datensätze handelt wäre eine sortierte Ausgabe natürlich schön...

Jetzt das Problem (und nochmal....):
ich möchte nach ORT und nach DATUM sortieren.
1. nach Ort
2. nach Datum
(Diese Daten verweisen auf eine Seite wo die ganze Information steht, funktioniert auch)
...da aber Ort, sowie Datum in der Tabelle CONTENT (.value) gespeichert sind (das hat mir mein phpmyadmin verraten), weiß ich jetzt nicht wie ich sortieren kann....
Die Werte sind also laut phpmyadmin in der gleichen Zelle, aber unter verschiedenen idtype und typeid Werten.
Den query-Befehl habe ich aus meinem Output-Modul, das alle Werte genauso anzeigt, wie ich´s haben will.
Vielleicht fällt Dir ja nochwas dazu ein!!
Vielen Dank und einen schönen Abend,
wünscht dSit.
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Von PHP habe ich in der Tat selbst nicht viel Ahnung, dachte aber, von Datenbanken mehr als genug Ahnung zu haben. 
Dein Problem wird mir immer klarer, aber eine Loesung habe ich leider nicht. DENN: wenn Ort UND Datum innerhalb derselben Zelle enthalten sind, sprich im Prinzip Teil des dort enthaltenen Strings sind (der Datentyp von value ist longtext, also eine lange Zeichenkette), dann KANNST Du einfach NICHT nach Teile dieser Zeichenkette sortieren, wie denn auch?
Gruss
Christa

Dein Problem wird mir immer klarer, aber eine Loesung habe ich leider nicht. DENN: wenn Ort UND Datum innerhalb derselben Zelle enthalten sind, sprich im Prinzip Teil des dort enthaltenen Strings sind (der Datentyp von value ist longtext, also eine lange Zeichenkette), dann KANNST Du einfach NICHT nach Teile dieser Zeichenkette sortieren, wie denn auch?
Das verstehe ich wiederum nicht: wenn Dein Befehl schon die Werte anzeigt, wie Du sie haben willst, wo ist dann das Problem? Stehe ich gerade auf der Leitung?dSit. hat geschrieben: Den query-Befehl habe ich aus meinem Output-Modul, das alle Werte genauso anzeigt, wie ich´s haben will.

Gruss
Christa
der erste query-Befehl sucht wohl nur die relevanten artikel, die ausgabe der einzelnen daten erfolgt dann hiermit:
(davon gibt´s dann logischerweise insgesamt 4)
was würdest Du sagen: muss ich diese mit ORDER BY sortieren, oder im ersten befehl?
Gruß dSit.
Code: Alles auswählen
$sql_zeit = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '4'";
$db->query($sql_zeit);
$db->next_record();
$zeit = urldecode($db->f("value"));
for ($i=CMS_VALUE[6]; $i < CMS_VALUE[6]+20; $i++)
{
$zeit1 = substr($zeit , 0, $i);
$cut = substr($zeit, $i);
if ((ord ($cut) == 32)||(ord ($cut) == 44)||(ord ($cut) == 45)) {
$zeit= substr($zeit , 0, $i);
$zeit .= ' .....';
}
}
was würdest Du sagen: muss ich diese mit ORDER BY sortieren, oder im ersten befehl?
Gruß dSit.
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
puh, das ist mir zu viel PHP auf einmal, und ich kann nur vermuten, waws da passiert.dSit. hat geschrieben:der erste query-Befehl sucht wohl nur die relevanten artikel, die ausgabe der einzelnen daten erfolgt dann hiermit:


Soweit ich das verstehe, ist das in diesem Query auch so, dass erst nur der value-Wert gelesen wird und mit dem etwas 'angestellt' wird, deswegen wuesste ich nach wie vor nicht, wo Du nach dem Teilstring sortieren sollst.

Gruss
Christa
Sortieren der DB-Ausgabe einer abgewandelten Artikelliste
Hallo Contenido-Cracks,
mit einer abgewandelten Artikelliste gebe ich 4 verschiedene Werte aus der Datenbank aus. Das funktioniert mit dem unten stehenden Output-Modul auch ohne Probleme.
Die Ausgabe soll logischerweise sortiert werden (nach "stage" und als zweites nach "date") - aber leider bekomme ich das nicht hin.
Kann mir bitte jemand helfen den Output-Code so anzupassen, dass diese Sortierung funktioniert. Weiter oben habe ich schon versucht zu beschreiben was ich für das Problem halte - schaut´s Euch mal an, wahrscheinlich ist es für Euch nicht schwierig!!
dSit.
mit einer abgewandelten Artikelliste gebe ich 4 verschiedene Werte aus der Datenbank aus. Das funktioniert mit dem unten stehenden Output-Modul auch ohne Probleme.
Die Ausgabe soll logischerweise sortiert werden (nach "stage" und als zweites nach "date") - aber leider bekomme ich das nicht hin.
Kann mir bitte jemand helfen den Output-Code so anzupassen, dass diese Sortierung funktioniert. Weiter oben habe ich schon versucht zu beschreiben was ich für das Problem halte - schaut´s Euch mal an, wahrscheinlich ist es für Euch nicht schwierig!!

Danke und beste Grüße,<?
//Frontendpfad ermitteln
$query = "SELECT frontendpath FROM ".$cfg["tab"]["clients"]." WHERE idclient='".$client."'";
$db->query($query);
$db->next_record();
$frontendpath = $db->f("frontendpath");
$startarton = "AND CATART.is_start = '0' AND";
//soll der startartikel mit ausgegeben werden?.
$print_startartikel = "CMS_VALUE[14]";
if($print_startartikel !=""){
$startarton = "AND";
}
// second db class instance
$db2 = new DB_Contenido;
// selected category
$selcat = "CMS_VALUE[0]";
if($selcat!="0" && $selcat!=""){
// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY CATART.idart";
// execute query
$db->query($query);
unset($articleID);
unset($linkID);
// get id's of sub articles
while ($db->next_record()) {
$articleID[] = $db->f("idartlang");
$linkID[] = $db->f("idart");
} // end while
/****************** start table **************************/
echo '
<table border="1" bgcolor="#FCED98" bordercolor="#F8DE4B" cellpadding="3" cellspacing="0" width="480px"
<tr>
<td width="30px"><font face="Arial" size="2"><b>Datum, Tag<b/></font></td>
<td width="30px"><font face="Arial" size="2"><b>Bühne<b/></font></td>
<td width="60px"><font face="Arial" size="2"><b>Uhrzeit<b/></font></td>
<td width="200px"><font face="Arial" size="2"><b>Band<b/></font></td>
</tr>
';
// Loop through articles
if (is_array($articleID)) {
foreach ($articleID as $key => $value) {
// select all CMS variables of the article
//stage
$sql_stage = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '5'";
$db->query($sql_stage);
$db->next_record();
$stage = urldecode($db->f("value"));
for ($i=0; $i < 20; $i++)
{
$stage1 = substr($stage , 0, $i);
$cut = substr($stage, $i);
if ((ord ($cut) == 32)||(ord ($cut) == 44)||(ord ($cut) == 45)) {
$stage= substr($stage , 0, $i);
$stage .= ' .....';
}
}
//date
$sql_date = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '3'";
$db->query($sql_date);
$db->next_record();
$date = urldecode($db->f("value"));
for ($i=CMS_VALUE[6]; $i < CMS_VALUE[6]+20; $i++)
{
$date1 = substr($date , 0, $i);
$cut = substr($date, $i);
if ((ord ($cut) == 32)||(ord ($cut) == 44)||(ord ($cut) == 45)) {
$date= substr($date , 0, $i);
$date .= ' .....';
}
}
//HEADLINE
$sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
$db->query($sql);
$db->next_record();
$headline = urldecode($db->f("value"));
for ($j=CMS_VALUE[3]; $j < CMS_VALUE[3]+20; $j++)
{
$headline1 = substr($headline , 0, $j);
$cut = substr($headline, $j);
if ((ord ($cut) == 32)||(ord ($cut) == 44)||(ord ($cut) == 45)) {
$headline= substr($headline , 0, $j);
$headline .= ' .....';
}
}
//uhrzeit
// if($print_zeit!="0" && $print_zeit!=""){
$sql_zeit = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '4'";
$db->query($sql_zeit);
$db->next_record();
$zeit = urldecode($db->f("value"));
for ($i=CMS_VALUE[6]; $i < CMS_VALUE[6]+20; $i++)
{
$zeit1 = substr($zeit , 0, $i);
$cut = substr($zeit, $i);
if ((ord ($cut) == 32)||(ord ($cut) == 44)||(ord ($cut) == 45)) {
$zeit= substr($zeit , 0, $i);
$zeit .= ' .....';
}
}
// link
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");
/***********************Anfang Tablezeile für Artikelliste**********************/
echo '
<font face="Arial" size="1">
<tr>
<td><font face="Arial" size="2">'.$date.'</font></td>
<td><font face="Arial" size="2">'.$stage.'</font></td>
<td><font face="Arial" size="2">'.$zeit.'</font></td>
<td><font face="Arial" size="2"><b><A HREF="'.$link.'">'.$headline.'</a><br></font></td>
</tr>
</font>
';
} // end while
unset($headline);
unset($headline1);
unset($date);
unset($date1);
unset($stage);
unset($stage1);
unset($zeit);
unset($zeit1);
} // end foreach
} // end if (is_array)
echo '</table>';
/***********************ende Table**********************/
?>
dSit.
