Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> idz do strony...
kicaj
post 4.01.2004, 21:10:49
Post #1





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


[php:1:ab2e04599f]<?php
$zapytanie5 = "SELECT id FROM ".$dbprefix."_post WHERE id_temat='".$wiersz['id']."'";
$wykonaj5 = mysql_query($zapytanie5);
$licz5 = mysql_num_rows($wykonaj5);

if($licz5 > "2") {

$idz = ceil($licz5 / 2);

echo "[ Idz do: ";

for($i=1; $i<=$idz; $i++) {
echo "".$i." | ";
}

echo "]";

}

?>[/php:1:ab2e04599f]
Efekt:
Kod
[ Idz do: 1 | 2 | 3 | ]
1. Jak zrobic zeby miec wynik bez tej ostatniej pionowej kreski??
2. W jaki sposob zrobc wtedy kiedy bedzie duzo stron wynik bedzie sie przedstawial nastepujaco:
Kod
[ Idz do: 1 | 2 | 3 ... 4 | 5 | 6 ]


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
BzikOS
post 4.01.2004, 21:17:44
Post #2





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

Ostrzeżenie: (0%)
-----


[php:1:e3176f5148]<?php
$text = "[ Idz do: ";

for($i=1; $i<=$idz; $i++)
$text .= $i . " | ";
$text = substr( $text, 0, -2 );
$text .= "]";

print( $text );
?>[/php:1:e3176f5148]
Go to the top of the page
+Quote Post
dob
post 4.01.2004, 21:18:29
Post #3





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


1) Zobacz czy to zadziała :

[php:1:bfcf59c089]<?php
for($i=1; $i<=$idz; $i++) {
if($i<$idz){
echo "".$i." | ";
}else{
echo $i." ";
}
}
?>[/php:1:bfcf59c089]


--------------------
Go to the top of the page
+Quote Post
kicaj
post 4.01.2004, 21:28:10
Post #4





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


a ad2) questionmark.gif


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
nobody
post 4.01.2004, 21:33:07
Post #5





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 9.07.2003
Skąd: Lublin city

Ostrzeżenie: (0%)
-----


[php:1:b6949cb9b9]<?php
$ceil=ceil($licz5/2);
if($ceil > "2") {

print "[ ";

for($i=1; $i<$ceil; $i++){
if($i!=$ceil&&$i!=1){ print " | "; }
print $i;
if($ceil>10&&$i==3){ print " | ..."; $i=$ceil-4; }
}

print " ]";

}
?>[/php:1:b6949cb9b9]
O to Ci chodzilo?


--------------------
(none)
Go to the top of the page
+Quote Post
zalew
post 4.01.2004, 21:50:24
Post #6





Grupa: Zarejestrowani
Postów: 407
Pomógł: 0
Dołączył: 24.10.2002
Skąd: warszawa

Ostrzeżenie: (0%)
-----


[php:1:93ef3488c3]<?php
if (($i > 3) || ($i < count($idz-3))) {
echo "...";
}
?>[/php:1:93ef3488c3]

sadzilem, ze kazdy programista umie zalozyc zwyklego ifa?


--------------------
Go to the top of the page
+Quote Post
nobody
post 4.01.2004, 21:58:25
Post #7





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 9.07.2003
Skąd: Lublin city

Ostrzeżenie: (0%)
-----


Cytat
[php:1:76e85e5f7e]<?php
if (($i > 3) || ($i < count($idz-3))) {
echo "...";
}
?>[/php:1:76e85e5f7e]

sadzilem, ze kazdy programista umie zalozyc zwyklego ifa?

laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif laugh.gif
Gdzie to niby mamy wsadzic? Po $i domyslam sie ze do petli for a wiec wynik tego to:
................................................................................
......................................[...]
I to tez nie dokonca bo nie wiem co zliczasz poprzez count()?


--------------------
(none)
Go to the top of the page
+Quote Post
spenalzo
post 4.01.2004, 22:08:32
Post #8





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Ad 1 i 2:
[php:1:0aa7ee6095]<?php
$zapytanie5 = "SELECT id FROM ".$dbprefix."_post WHERE id_temat='".$wiersz['id']."'";
$wykonaj5 = mysql_query($zapytanie5);
$licz5 = mysql_num_rows($wykonaj5);

if($licz5 > "2") {

$idz = ceil($licz5 / 2);

echo "[ Idz do: ";
for($i=1; $i<=$idz; $i++)
{
$pn[]=$i;
}
$ile=count($pn);
if($ile < 3)
{
echo implode(" | ",$pn);
}
elseif($ile > 3 && $ile <= 6)
{
echo implode(" | ",array_slice($pn,0,3)) ." ... ";
}
elseif($ile > 6)
{
echo implode(" | ",array_slice($pn,0,3)). " ... ". implode(" | ",array_slice($pn,($ile-3),3));
}
echo " ]";

?>[/php:1:0aa7ee6095]


--------------------

Go to the top of the page
+Quote Post
kicaj
post 4.01.2004, 23:10:28
Post #9





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


dzieki za odpowiedzi, wzialem je jako podpowiedzi i wymyslilem takie cos:[php:1:4a439069ab]<?php

echo "[ IdĽ do: ";

$idz = ceil($licz5 / 2); //tworzy liczbe stron

$ile = "3"; //liczba wyswietlanych pierwszych i ostatnich podstron

if($idz <= ($ile * "2")) {
for($i=1; $i<=$idz; $i++) {
if($i < $idz) {
echo "".$i.", ";
} else {
echo "".$i."";
}
}
} elseif($idz > "6") {
for($i=1; $i<=$ile; $i++) {
if($i < 3) {
echo "".$i.", ";
}else{
echo "".$i."";
}
}
echo " ... ";
$koniec = $idz - $ile + 1;
for($i=$koniec; $i<=$idz; $i++) {
if($i < $idz) {
echo "".$i.", ";
}else{
echo "".$i."";
}
}
}

echo " ]";
?>[/php:1:4a439069ab]


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
zalew
post 5.01.2004, 01:42:30
Post #10





Grupa: Zarejestrowani
Postów: 407
Pomógł: 0
Dołączył: 24.10.2002
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Cytat
a wiec wynik tego to:
............................[...]
I to tez nie dokonca bo nie wiem co zliczasz poprzez count()?

nie dalem kodu gotowego do uzycia, tylko dalem podpowiedz.. chodzi mi o to, ze jesli listujesz cos obojetnie czy z tablicy czy z petli to pytanie o to 'jak zrobic by pierwsze 3 i ostatnie 3 byly wyswietlane a reszta nie' samo przez siebie daje odpowiedz.. pytanie o to 'jak zrobic by ostatni nie wyswietlal kreski' tez jest dla mnie conajmniej dziwne na programiste..


--------------------
Go to the top of the page
+Quote Post
Cudi
post 5.01.2004, 16:39:01
Post #11


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


Widze że temat często sie powtarza, do tego wasze podejście jest nieco błędne. Nie chodzi tylko o to by wyświetlić 3 pierwsze i 3 ostatnie, bo co mi z takiego czegoś? Będe chciał przejść na strone 4 i widzieć dwie kolejne, tak samo z 100 i 1000 smile.gif Tutaj trzeba troche bardziej skomplikowanego algorytmu, a przedewszstkim większej wyobraźni winksmiley.jpg
Polecam poczytać ten wątek: http://forum.php.pl/viewtopic.php?t=9566 smile.gif


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
kicaj
post 5.01.2004, 16:44:04
Post #12





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


...akurat w moim przypadku chcialem osiagnac wynik zawsze pierwszych i ostatnich 3

Rozumiem Cie i wlasnie sie za to teraz biore, potrzebne mi to do czegos innego smile.gif

UPDATE: 17.39


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
kicaj
post 6.01.2004, 16:14:05
Post #13





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


no i wkoncu zrobilem tesh tak jak cudi chcial, tylko mam pewnien problem!!
[php:1:93a7966fe1]<?php

$stron = ceil($licz5 / 2); //tworzy liczbe stron
//$_GET['strona'] numer aktualnej strony
$ile = "3"; //ilosc wyswietlanych podstron po i przed $_GET['strona']

if(!$_GET['strona']) {

for($i=1; $i<$stron!=$i>$ile; $i++) {
if($i == "1") {
echo "".$i." ";
} else {
echo "<a href="temat.php?temat=".$_GET['temat']."&strona=".$i."">".$i."</a> ";
}
}

} else {

if(($stron > "7") && ($_GET['strona'] != "1")) {
echo "<a href="temat.php?temat=".$_GET['temat']."&strona=1">pierwsza</a> ";
}

$od = $_GET['strona'] - $ile;

if($_GET['strona'] < "4") {
for($i=1; $i<$_GET['strona']; $i++) {
echo "<a href="temat.php?temat=".$_GET['temat']."&strona=".$i."">".$i."</a> ";
}
} else {
for($i=$od; $i<$_GET['strona']; $i++) {
echo "<a href="temat.php?temat=".$_GET['temat']."&strona=".$i."">".$i."</a> ";
}
}

echo " ".$_GET['strona']." ";

$od = $_GET['strona'] + 1;
$do = $_GET['strona'] + $ile + 1;

for($i=$od; $i<$do!=$i>$stron; $i++) {
echo "<a href="temat.php?temat=".$_GET['temat']."&strona=".$i."">".$i."</a> ";
}

if(($stron > "7") && ($_GET['strona'] != $stron)) {
echo " <a href="temat.php?temat=".$_GET['temat']."&strona=".$stron."">ostatnia</a> ";
}

}
?>[/php:1:93a7966fe1]
Nie jest to moze najlepsze rozwiazanie, ale dobrze dziala, z tym ze jesli chce wyswietlic strona nr 6 to skrypt sie zawiesza...
Czemu?


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 07:40