Seite 1 von 1
artikel blättern wie auf jubec.de
Verfasst: Mi 23. Nov 2005, 17:06
von mvf
hallo community
ich suche das modul artikel blättern wie hier
http://www.jubec.de/front_content.php?idcat=78 zu sehen
also zurück und vorwärts und in der mitte die artikel mit 12345..
Verfasst: Mi 23. Nov 2005, 17:20
von emergence
mit der suche nach artikel und blättern hättest du das hier finden müssen
->
http://contenido.org/forum/viewtopic.ph ... bl%E4ttern
Verfasst: Mi 23. Nov 2005, 17:34
von mvf
habe ich auch, aber die sind leider nicht so wie bei jubec,
die eine ist nur weiter und zurück, die andere nur die 1|2|3|4 und ich kätte gerne eine kombi krieg die beiden aber ned zusammen ans laufen
hier nochmal der code der 2 beispiele für den fall, dass einer mir helfen mag
Code: Alles auswählen
<?php
$sql = "SELECT ARTLANG.idart, ARTLANG.idartlang, ARTLANG.title
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["art"]." AS ART
WHERE ARTLANG.idart = CATART.idart AND CATART.idart = ART.idart AND ARTLANG.idlang = '$lang'
AND ARTLANG.online = '1' AND ART.idclient='$client' AND CATART.idcat='$idcat'
ORDER BY ARTLANG.artsort ASC,ARTLANG.created DESC";
$db->query($sql);
$i=0;
while ($db->next_record()) {
$articleID[$i] = $db->f("idartlang");
$linkID[$i] = $db->f("idart");
$title[$i] = $db->f("title");
if($linkID[$i]==$idart)
{
$naechster=$i+1;
$voriger=$i-1;
}
$i++;
}
echo '<p>';
if($voriger>=0)
{
$navmod_link ="front_content.php?client=".$client."&la"."ng=".$lang."&idcat=".$idcat."&idart=".$linkID[$voriger]."";
echo '<a href="'.$sess->url("$navmod_link").'">voriger</a>';
if($naechster<$i)
{
echo ' | ';
}
}
if($naechster<$i)
{
$navmod_link ="front_content.php?client=".$client."&la"."ng=".$lang."&idcat=".$idcat."&idart=".$linkID[$naechster]."";
echo '<a href="'.$sess->url("$navmod_link").'">nächster</a>';
}
echo '</p>';
?>
Code: Alles auswählen
<?php
$sql = "SELECT ARTLANG.idart
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["art"]." AS ART
WHERE ARTLANG.idart = CATART.idart AND CATART.idart = ART.idart AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND ART.idclient='$client' AND CATART.idcat='$idcat'
ORDER BY CATART.is_start DESC,ARTLANG.artsort ASC,ARTLANG.created ASC";
$db->query($sql);
$i=1;
echo '<p>';
while ($db->next_record())
{
$navmod_link ="front_content.php?client=$client&la"."ng=$lang&idcat=".$idcat."&idart=".$db->f("idart")."";
echo '<a href="'.$sess->url("$navmod_link").'">'.$i.'</a>';
if ($i != $db->num_rows())
{
echo ' | ';
}
$i++;
}
if ($db->num_rows() != 0)
{
echo '</p>';
}
?>
Verfasst: Mi 23. Nov 2005, 17:57
von mvf
dazu kommt noch, dass beim zweiten code auch der startartikel mit ausgegeben wird.
sprich ich habe in kat1 5 artikel, startartikel ist eine modifizierte 'news' liste als preview für die artikel und dann 4 artikel kat1first bis kat1fourth, aber das modul schmeisst dann 1|2|3|4|5 raus

also incl startartikel.
ich hätte gern nur die artikel ohne die übersicht. also nur 1|2|3|4
sprich eine modifikation des 2. output codes, die den startartikel ausklammert.
Verfasst: Mi 23. Nov 2005, 20:10
von mvf
über die artikeleingeschaften kann ich den startarikel in der sortorder an die letzte position bringen. wie kann ich nun aber die whileschleife cor dem letzten datensatz abbrechen?
@ stese [falls du mitliest] php.net bringt mich dabei leider nicht weiter

Verfasst: Mi 23. Nov 2005, 21:13
von mvf
anderer ansatz
wie identifiziere ich obe ein artikel startartikel ist oder nicht?
wenn ich in der db schau dann ist das
Tabelle: CATLANG
Feld: startidartlang
nun möchte ich die whileschleife nur ausführen wenn der artikel nicht startartikel ist.
Code: Alles auswählen
<?php
$sql = "SELECT ARTLANG.idart, CATLANG.startidartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["art"]." AS ART, ".$cfg["tab"]["cat_lang"]." AS CATLANG WHERE CATLANG.idart = ART.idart , ARTLANG.idart = CATART.idart AND CATART.idart = ART.idart AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND ART.idclient='$client' AND CATART.idcat='$idcat' ORDER BY ARTLANG.artsort ASC";
$db->query($sql);
$i=1;
echo ' ';
while ($db->next_record()) {
if ($db->f("idart") != $db->f("startidartlang")) {
$navmod_link ="front_content.php?client=$client&lang=$lang&idcat=".$idcat."&idart=".$db->f("idart")."";
echo '<a href="'.$sess->url("$navmod_link").'">'.$i.'</a>';
if ($i != $db->num_rows()) {
echo ' | ';
}
$i++;
}
}
if ($db->num_rows() != 0) {
echo ' ';
}
?>
aber irgendwie schient die query das problem zu sein

und wenn ich es recht verstehe nicht von der syntax her sonder der match pass ned

Verfasst: Mi 23. Nov 2005, 21:45
von mvf
und weiter im text

jetzt habe ich einen workaround
wennman in einer kategorie mehrere artikel hat und dem startartikel die hächste 'sortorder' gibt, dann wird dieser nicht mit in der liste angzeigt.
Code: Alles auswählen
<?php
$sql = "SELECT ARTLANG.idart
FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["art"]." AS ART
WHERE ARTLANG.idart = CATART.idart AND CATART.idart = ART.idart AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND ART.idclient='$client' AND CATART.idcat='$idcat'
ORDER BY CATART.is_start DESC,ARTLANG.artsort ASC,ARTLANG.created ASC";
$db->query($sql);
$i=1;
echo '<p>';
while ($db->next_record())
{
if ($i < $db->num_rows()) {
$navmod_link ="front_content.php?client=$client&la"."ng=$lang&idcat=".$idcat."&idart=".$db->f("idart")."";
echo '<a href="'.$sess->url("$navmod_link").'">'.$i.'</a>';
$check = ($i+1);
if ($check < $db->num_rows())
{
echo ' | ';
}
$i++;
}
}
if ($db->num_rows() != 0)
{
echo '</p>';
}
?>