Skocz do zawartości

Podobne wpisy na podstronie ze szczegółami


Rekomendowane odpowiedzi

Witam.

Zastanawiam się jak można zrobić aby na stronie ze szczegółami wpisu wyświetlać dodatkowo wpisy powiedzmy 3 losowe wpisy z tej samej kategorii w której jest wpis.

Ma ktoś jakieś pomysły ?

Chciałem wstępnie wykorzystać ten sam kod który w home.php wyświetla ostatnio dodane wpisy, ale gdy wrzucam tam ten skrypt pokazuje tylko jeden wpis :D ten sam którego są to szczegóły.

Ma ktoś pomysł jak to zorganizować :D ?

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Mam coś takiego:

https://www.wally.pl/katalog,stron,ak-47,id,3675.html

Wieczorem postaram się wyciągnąć kod.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

W pliku szcz.php na podstawie poniższego kodu zrób coś po swojemu, bo to trochę z zmodyfikowanej wersji:

<?
if ($cfg[g4]==1 AND $ile[wpi_a]>0) {
//$zap_lw = mysql_query("select * from ".$prefix."wpisy where akt='1' AND relacji>'0' order by data DESC limit 0,4");
$zap_lw = mysql_query("select * from ".$prefix."relacje r, ".$prefix."wpisy w where r.id_kat='$id_kategorii' AND r.id_pod='$id_podkategorii' AND w.id=r.id_wpi AND w.akt=1 AND w.id <> $_GET[id] order by rand() limit 0,4");

$ilosc = mysql_num_rows($zap_lw);

$links = "";
while ($li_lw = mysql_fetch_assoc($zap_lw)) {

$links[$li_lw[id]]['tytul'] = $li_lw[tytul];
$links[$li_lw[id]]['opis'] = $li_lw[opis];
$links[$li_lw[id]]['data'] = strftime("%d-%m-%Y",$li_lw[data]);
$links[$li_lw[id]]['url2'] = "https://$li_lw[url]/$li_lw[uri]";

			$haslo2 = znak($li_lw[tytul]);

if ($cfg[w5]==1) {	
$links[$li_lw[id]]['url1'] = "https://$li_lw[url]/$li_lw[uri]";
} else {
$links[$li_lw[id]]['url1'] = "$cfg[f1].php?a=go&id=$li_lw[id]";
}

$links[$li_lw[id]]['url3'] = "$cfg[f1].php?a=klik&id=$li_lw[id]";

if ($cfg[m1]==1) { 
if (eregi("/",$cfg[m5])) {$szcz_end="/"; $szcz_sep="/";} else {$szcz_end=".html";$szcz_sep="$cfg[m2]";}
$links[$li_lw[id]]['det_link'] = "$haslo2,$cfg[m5]$szcz_sep$li_lw[id]$szcz_end";
} else { 
$links[$li_lw[id]]['det_link'] = "$haslo2,$cfg[f1].php?a=szcz&id=$li_lw[id]";
}
}

?>
<h2><font color="#d44300">Podobne strony:</font></h2>
<table CELLSPACING="0" CELLPADDING="0">
<?

if ($ilosc >0 ) { 

foreach($links as $item) {
?>

<tr><td colspan="2">

<div class="text_body_h4"><div class="out_link_div"><img src="otwarty_img/arrow.gif" alt="-"> <a href="<?=$item[det_link]?>" class="in_link_cat_sub"><?=ciach($item[tytul],15)?></a> - <?=ciach(koder($item[opis]),250)?></div></div>
</td></tr>
<tr>
	<td></td><td valign="top">

</div></td>

</tr>
<tr>
<td colspan="2">
</td>
</tr> 


</div>
</div>
<?
}	// end foreach
} else {
?>
<div class="text_body_h4">
Nie znaleziono podobnych wpisów spełniaj±cych powyższe krytera.
</div>
<?		
	} 
?>
</table>
<?
} // end podobne

?>

gdzieś przed:

mini_magic($tpl[ads3]);

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za tutka, ale ześ tak namieszał że aż ciężko rozkminić co do czego :aniolek:

Rozumiem że $id_podkategorii t nic innego jak w szcz.php $l[id_pod] i podobnie z $id_kategorii = $l[id_kat] czy mam rację ?

druga rzecz dotyczy "ciach" :) rozumiem że to ogranicza liczbę znaków jak "mb_substr", ale te zmiany trochę zbijają z tropu.

Czy możesz poprawić ten skrypt tak by działał z oryginalnym skryptem ? Ja próbowałem, ale cały czas wyskakuje mi że mam brak odpowiednich wpisów.

Odnośnik do komentarza
Udostępnij na innych stronach

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...

błądzę :P ktoś ogarnął jak to ma być ?

a do czego ma być to mini_magic($tpl[ads3]); ? w funkcje.php jest tylko ads1 i ads4 ;p nie wiem gdzie tego szukać

<?
mini_magic($tpl[ads3]);
$zap_lww = mysql_query("select * from ".$prefix."relacje r, ".$prefix."wpisy w where r.id_kat='$pod[id_kat]' AND r.id_pod='$_GET[id]' AND w.id=r.id_wpi AND w.akt=1 order by w.tytul limit $min,$po_ile");
$ilosc = mysql_num_rows($zap_lww);
$links = "";
while ($li_lww = mysql_fetch_assoc($zap_lww)) {

$links[$li_lww[id]]['tytul'] = $li_lww[tytul];
$links[$li_lww[id]]['opis'] = $li_lww[opis];
$links[$li_lww[id]]['data'] = strftime("%d-%m-%Y",$li_lww[data]);
$links[$li_lww[id]]['url2'] = "https://$li_lw[url]/$li_lww[uri]";

			$haslo2 = znak($li_lww[tytul]);

if ($cfg[w5]==1) {	
$links[$li_lww[id]]['url1'] = "https://$li_lw[url]/$li_lww[uri]";
} else {
$links[$li_lww[id]]['url1'] = "$cfg[f1].php?a=go&id=$li_lww[id]";
}

$links[$li_lww[id]]['url3'] = "$cfg[f1].php?a=klik&id=$li_lww[id]";

if ($cfg[m1]==1) {
if (eregi("/",$cfg[m5])) {$szcz_end="/"; $szcz_sep="/";} else {$szcz_end=".html";$szcz_sep="$cfg[m2]";}
$links[$li_lww[id]]['det_link'] = "$haslo2,$cfg[m5]$szcz_sep$li_lww[id]$szcz_end";
} else {
$links[$li_lww[id]]['det_link'] = "$haslo2,$cfg[f1].php?a=szcz&id=$li_lww[id]";
}
}


?>

<h2><font color="#d44300">Podobne strony:</font></h2>
<table CELLSPACING="0" CELLPADDING="0">

<?

if ($ilosc >0 ) {

foreach($links as $item) {
?>


<tr><td colspan="2">

<div class="text_body_h4"><div class="out_link_div"><img src="otwarty_img/arrow.gif" alt="-"> <a href="<?=$item[det_link]?>" class="in_link_cat_sub"><?=ciach($item[tytul],15)?></a> - <?=ciach(koder($item[opis]),250)?></div></div>
</td></tr>
<tr>
	<td></td><td valign="top">

</div></td>

</tr>
<tr>
<td colspan="2">
</td>
</tr>


</div>
</div>

<?
}	// end foreach
} else {
?>

<div class="text_body_h4">
Nie znaleziono podobnych wpisów spełniaj±cych powyższe krytera.
</div>

<?		
	}
?>

</table>

<?

kombinowałem tak ale chyba namieszałem tylko :)

wstawiłem to zaraz pod </div> który kończy tabelę strony szczegółów

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety nie mam czasu by przygotować gotową instrukcję itp. Podałem algorytm i to powinno wystarczyć,

wystarcza podstawowa znajomość php, html.

Funkcja znak zamienia polskie znaki, na przyjazne adresy... nie w każde wersji są, więc należy dostosować adresy linków.

function znak($haslo)
{

			$haslo = str_replace("ć", "c", $haslo);
			//itp.
		   	return $haslo;
}

Funkcja ciach skraca opis, by nie wyświetlać całego.. również można się jej pozbyć wstawiając całe opisy.

function ciach($tresc,$ile)
{
$licz = strlen($tresc);
if ($licz>=$ile)
{
	$tnij = substr($tresc,0,$ile);
	$txt = $tnij."...";
}
else
{
	$txt = $tresc;
}
return $txt;
}

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ...
Sprawdź, czy zapytanie jest dobrze zbudowane, np. tak:
echo $zap_lww;

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

linijke z haslo2 mozna zupelnie wywalic, a fragment kodu odpowiedzialnego za format linka ukrasc z kat.php i zamienic

edit: zmodyfikowalem tak, ze dziala mi jzu ale tylko jak dam liczbe kategorii i podkategorii w poleceniu mysql recznie..

zmienna $l[id_kat] nie dzialaja, echo nic nie pokazuje, mar wiesz gdzie sa te cyferki?? :)

edit2: udalo sie .. naszukalem sie jak glupi, zmienne potrzebne to kat[id] i pod[id] reszta tak jak pisalem

Najlepszy portal branży gier liczbowych Lotto to: Wyniki Lotto NET

Odnośnik do komentarza
Udostępnij na innych stronach

W pętli:

while($l = mysql_fetch_assoc($rel)) 
{
}

wrzuć:

$id_kategorii = $l[id_kat];
$id_podkategorii = $l[id_pod];

..powinno pomóc.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

<? //podobne wpisy
function ciach($tresc,$ile)
{
   // obliczamy ilość znaków w tekscie
   $licz = strlen($tresc);
   // sprawdzamy, czy ilość znaków w tekscie jest większa
   // lub równa liczbie znaków po jakiej tekst ma być obcięty
   if ($licz>=$ile)
   {
       // obcinamy tekst o określoną ilośc znaków
       $tnij = substr($tresc,0,$ile);
       // dodajemy kropeczki (...)
       $txt = $tnij."...";
   }
   else
   {
       // jeżeli warunek nie jest spełniony pozostawiamy tekst bez zmian
       $txt = $tresc;
   }
   // zwracamy wynik działania funkcji
   return $txt;
} 

if ($cfg[g4]==1 AND $ile[wpi_a]>0) {
   //$zap_lw = mysql_query("select * from ".$prefix."wpisy where akt='1' AND relacji>'0' order by data DESC limit 0,4");
   $zap_lw = mysql_query("select * from ".$prefix."relacje r, ".$prefix."wpisy w where r.id_kat='$kat[id]' AND r.id_pod='$pod[id]' AND w.id=r.id_wpi AND w.akt=1 AND w.id <> $_GET[id] order by rand() limit 0,3");

   $ilosc = mysql_num_rows($zap_lw);


   $links = "";
   while ($li_lw = mysql_fetch_assoc($zap_lw)) {

   $links[$li_lw[id]]['tytul'] = $li_lw[tytul];
   $links[$li_lw[id]]['opis'] = $li_lw[opis];
   $links[$li_lw[id]]['data'] = strftime("%d-%m-%Y",$li_lw[data]);
   $links[$li_lw[id]]['url2'] = "https://$li_lw[url]/$li_lw[uri]";

               //$haslo2 = znak($li_lw[tytul]);

if ($cfg[w5]==1) {	
$links[$li_lw[id]]['url1'] = "https://$li_lw[url]/$li_lw[uri]";
} else {
$links[$li_lw[id]]['url1'] = "$cfg[f1].php?a=go&id=$li_lw[id]";
}

$links[$li_lw[id]]['url3'] = "$cfg[f1].php?a=klik&id=$li_lw[id]";

if ($cfg[m1]==1) { 
if (eregi("/",$cfg[m5])) {$szcz_end="/"; $szcz_sep="/";} else {$szcz_end=".html";$szcz_sep="$cfg[m2]";}
$links[$li_lw[id]]['det_link'] = "/$cfg[m5]$szcz_sep$li_lw[id]$szcz_end";
} elseif ($cfg[m1]==3) { 
if (eregi("/",$cfg[m5])) {$szcz_end="/"; $szcz_sep="/";} else {$szcz_end=".html";$szcz_sep="$cfg[m2]";}
$links[$li_lw[id]]['det_link'] = "/".zmiana_url($li_lw[tytul]).$szcz_sep."s".$li_lw[id].$szcz_end;
} else { 
$links[$li_lw[id]]['det_link'] = "$cfg[f1].php?a=szcz&id=$li_lw[id]";
}
}


?>
<h3><font color="#000000">Podobne strony w katalogu:</font></h3>
<table CELLSPACING="0" CELLPADDING="0">
<?

if ($ilosc >0 ) {

foreach($links as $item) {
?>

<tr><td colspan="2">

<div class="text_body_h4"><div class="out_link_div"><img src="otwarty_img/arrow.gif" alt="-"> <a href="<?=$item[det_link]?>" class="in_link_cat_sub"><?=ciach($item[tytul],15)?></a> - <?=ciach($item[opis],160)?></div></div>
</td></tr>
<tr>
       <td></td><td valign="top">

</div></td>

   </tr>
   <tr>
   <td colspan="2">
</td>
</tr>


</div>
</div>
<?
}    // end foreach
} else {
?>
<div class="text_body_h4">
Nie znaleziono podobnych wpisów spełniających powyższe krytera.
</div>
<?        
       }
?>
</table>
<?
} // end podobne

?>

do wstawienia w szcz.php

ps. ja za to mam powazny problem od dawna i nie potrafie sobie poradzic, mzoe przy okazji ktos spojrzy - katalog w mojej stopce, wpiszcie cos z polskimi znakami do szukajki..

Najlepszy portal branży gier liczbowych Lotto to: Wyniki Lotto NET

Odnośnik do komentarza
Udostępnij na innych stronach

Zaraz na początku wstaw:

$_GET[szukaj] = iconv('UTF-8', 'ISO-8859-2', $_GET[szukaj]);

..o ile serwer obsługuje funkcję iconv powinno pomóc.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności