Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyszukiwarka, limit i podzial na strony
Revan
post 10.06.2004, 21:30:06
Post #1





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

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


witam... napisałem sobie encyklopedie... tresc pliku enc.php wyswietlajaca wyniki wyglada tak :
  1. <?php
  2. $db = mysql_connect (&#092;"localhost\", \"revan\", \"******\");
  3. mysql_select_db (&#092;"klan\");
  4.  
  5. $zapytanie = &#092;"SELECT * FROM hasla WHERE temat LIKE \"$litera%\" ORDER BY temat DESC \";
  6. $wykonaj = mysql_query($zapytanie);
  7. while($wiersz = mysql_fetch_array($wykonaj))
  8. {
  9. print &#092;"\".$wiersz['autor'].\"<br>\";
  10. print &#092;"<b>\".$wiersz['temat'].\"</b><br>\";
  11. print &#092;"\".$wiersz['data'].\"<br>\";
  12. print &#092;"\".$wiersz['tresc'].\"<br><br>\";
  13. }
  14. mysql_close($db); 
  15. ?>

to dziala i jestem z tego bardzo zadowolony... ^^ ale nie wiem jak zrobic 2 rzeczy : otoz. ograniczyć $wiersz['tresc'] do 100 znakow i druga rzecz to podzielic wyniki na strony jezeli jest np. 40 takowych na dana litere... zeby na 1 strone miescilo sie 10 wynikow... i tworzyl sie link do nastepnej strony jezeli ilosc_wynikow > 10 ... moglby ktos pomoc ? z gory dziekuje, cya...
Go to the top of the page
+Quote Post
mike
post 10.06.2004, 21:44:57
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Pytanie pierwsze :arrow: substr()
Pytanie drugie :arrow: http://forum.php.pl/viewtopic.php?t=17484&...t=stronicowanie albo poszukaj pod hasłem stronicowanie
Go to the top of the page
+Quote Post
Revan
post 10.06.2004, 21:52:47
Post #3





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

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


ok, dzieki biggrin.gif
moge to dopiero wyprobowac jutro bo mama kaze isc spac angrysmiley.gif jak mi sie nie uda to jak wstane to napisze biggrin.gif
Go to the top of the page
+Quote Post
Revan
post 11.06.2004, 08:13:58
Post #4





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

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


z limitem na znaki udalo sie bez problemu ale ze stronicowaniem juz tak nie jest ... probowalem 2 skrypty i nic... bardziej mi sie spodobal ten do ktorego podales link winksmiley.jpg ... jednak juz 2 godzinki sie mecze z jego uruchomieniem ;] ... zcy moglby ktos go "zmontowac" ? tyle co moge podac :

[php:1:abe41ec95c]<?php
$db = mysql_connect ("localhost", "revan", "******");
mysql_select_db('klan');
$zapytanie = "SELECT * FROM hasla WHERE temat LIKE "$litera%" ORDER BY temat DESC";
$wykonaj = mysql_query($zapytanie);
while($wiersz = mysql_fetch_array($wykonaj))
{
print "".$wiersz['autor']."<br>";
print "<b>".$wiersz['temat']."</b><br>";
print "".$wiersz['data']."<br>";
$rest = substr($wiersz['tresc'], 0, 100);
print "".$rest."...<br><br>";
}
?>[/php:1:abe41ec95c]
to jest moja czesc
a to skrypt :
[php:1:abe41ec95c]<?php
<?php
require ("gry.inc");
mysql_connect($bb_gry_hostname,$bb_gry_mysqluser,$bb_gry_mysqlpassword)
or die("Unable to connect to SQL server");

if (!isset($first)) { $first = 0; }

$ltmp = 3; // wielkosc "porcji", tu: 10 rekordow
$query = ("select select nr, cos_tam from gry from gry LIMIT $first,$ltmp;");
$gry = mysql_db_query($bb_gry_db, $query) or die("Select Failed!");
while ($row = mysql_fetch_assoc($gry))
{

?>
//tutaj wyswietlamy dane i wpisujemy co tylko chcemy
<?

}
$count = mysql_num_rows(mysql_query("select nr, cos_tam from gry"));
$count = $count/$ltmp;

$ile = ceil($count);
if ($first!=0) print ("<a href="strona.php?first=" . ($first-$ltmp) . ""
title="Poprzednie"><big>&laquo;</big></a> ");

for ($i=1;$i<=$ile;$i++)
{
print ("<a href="strona.php?first=" . ($i*$ltmp-$ltmp) . "" title="" .
($i*$ltmp-($ltmp-1)) . "-" . ($i*$ltmp) ."">");

if ($first==($i*$ltmp-$ltmp))
{
print ("<b>[" . $i . "]</b></a> "); $akt=$i; } else { print ("[" . $i .
"]</a> ");
}
}

if ($akt<$ile) print ("<a href="strona.php?first=" . ($first+$ltmp) . ""
title="Następne"><big>&raquo;</big></a>");
?>[/php:1:abe41ec95c]
aha, jeszcze powiem ze to znajduje sie w index.php?jutsu=enc (to po to zeby to wstawic zamiast strona.php...
mnie juz glowa boli od tego :/ ...
Go to the top of the page
+Quote Post
Revan
post 11.06.2004, 13:07:09
Post #5





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

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


sprobowalem zrobic cos takiego i nie wychodzi :/ moglby ktos wskazac blad questionmark.gif
[php:1:1ac758e8e8]<?php
$db = mysql_connect ("localhost", "revan", "bionwn");
mysql_select_db('klan');
$zapytanie = "SELECT * FROM hasla WHERE temat LIKE "$litera%" ORDER BY temat DESC LIMIT ".($page*$ile).",$ile";
$wykonaj = mysql_query($zapytanie);
while($wiersz = mysql_fetch_array($wykonaj))
{
print "".$wiersz['autor']."<br>";
print "<b>".$wiersz['temat']."</b><br>";
print "".$wiersz['data']."<br>";
$rest = substr($wiersz['tresc'], 0, 100);
print "".$rest."...<br><br>";
}

list($wszystkich)=mysql_fetch_row(mysql_db_query("klan","SELECT count(*) FROM hasla LIKE "$litera%"));
$podstron=ceil($wszystkich/$ile);

if ($page>0) echo "<a href=skrypt.php?page=".($page-1).">Poprzednia</a>"; else
echo "Poprzednia";
for ($i=1; $i<=$podstron; $i++) {
if ($i==$page-1) echo "$i"; else echo "<a href=skrypt.php?page=$i> $i
</a>";
}
if ($page<$podstron) echo "<a href=skrypt.php?page=".($page+1).">Następna</a>";
else echo "Następna";
mysql_close($db);
?>[/php:1:1ac758e8e8]
Go to the top of the page
+Quote Post
mike
post 11.06.2004, 13:56:18
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Zamiast odsyłać cię do innych linków opstanowiłem sam napisac krótki przykład.
Mamy taką tabelę w bazie danych:
  1. CREATE TABLE `stronicowanie` (
  2. `id` int(4) NOT NULL AUTO_INCREMENT,
  3. `text` varchar(10) NOT NULL DEFAULT 'bla',
  4. UNIQUE KEY `id` (`id`)
  5. ) TYPE=MyISAM AUTO_INCREMENT=12 ;

i taki kod:
  1. <?php
  2.  
  3. $intLimit = 3; //ilość rekordów na stronie;
  4.  
  5. if( empty( $_GET['id'] ) )
  6. {
  7. $intCurrentPage = 0;
  8. }
  9. else
  10. {
  11. $intCurrentPage = $_GET['id'];
  12. }
  13.  
  14. $resBaseHandle = mysql_connect(&#092;"localhost\", \"user\", \"pass\");
  15. mysql_select_db(&#092;"test\", $resBaseHandle);
  16.  
  17. $resResult = mysql_query(&#092;"SELECT id FROM stronicowanie\");
  18. $intCount = mysql_num_rows($resResult);
  19. echo $intCount.'<br>';
  20.  
  21. $resResult = mysql_query(&#092;"SELECT * FROM stronicowanie LIMIT \".($intCurrentPage*$intLimit).\",\".$intLimit);
  22. while( $arrRow = mysql_fetch_array( $resResult ) )
  23. {
  24. echo $arrRow[ 'id' ].' - '.$arrRow[ 'text' ].'<br>';
  25. } 
  26. echo '<br>';
  27. for($i = 0; $i<ceil($intCount/$intLimit); $i++)
  28. {
  29. echo ' <a href=\"index?id='.$i.'\">['.($i+1).']</a> ';
  30. }
  31.  
  32.  
  33. mysql_close($resBaseHandle);
  34.  
  35. ?>

Bo w zasadze sam miałem ochote sobie coś skrobnąć, ale nie mam czasu na nic więcej. :wink:
Pozdrawiam. Mike.
Go to the top of the page
+Quote Post
Revan
post 11.06.2004, 14:56:37
Post #7





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

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


cze
po przerobieniu otrzymalem taki kod :
[php:1:89d1bedef5]<?php
$intLimit = 3; //ilość rekordów na stronie;

if( empty( $_GET['id'] ) )
{
$intCurrentPage = 0;
}
else
{
$intCurrentPage = $_GET['id'];
}

$resBaseHandle = mysql_connect("localhost", "revan", "bionwn");
mysql_select_db("klan", $resBaseHandle);

$resResult = mysql_query("SELECT temat FROM hasla");
$intCount = mysql_num_rows($resResult);
echo $intCount.'<br>';

$resResult = mysql_query("SELECT * FROM hasla LIMIT
".($intCurrentPage*$intLimit).",".$intLimit);
while( $arrRow = mysql_fetch_array( $resResult ) )
{
echo $arrRow[ 'autor' ].' - '.$arrRow[ 'tresc' ].'<br>';
}
echo '<br>';
for($i = 0; $i<ceil($intCount/$intLimit); $i++)
{
echo ' <a href="index.php?jutsu=enc&?id='.$i.'">['.($i+1).']</a> ';
}


mysql_close($resBaseHandle);
?>[/php:1:89d1bedef5]
i tak po 1sze. jak dodac WHERE temat LIKE "$litera%" do wyswietlania i liczenia wierszy w tej tabeli i
2. to nie dziala ^^ ... tzn. nie ma zadnego bledu ale jak kliknie sie na dana cyfre to nie wzrasta limit tj. zawsze sa te same 3 poczatkowe wiersze z bazy...
Go to the top of the page
+Quote Post
mike
post 11.06.2004, 16:24:04
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Niemożliwe, że nie działa. Skrypt wypróbowany na 100%. Zresztą napisany tylko i wyłącznie na potrzeby tego topicu. :wink: Nawet tabele sobie specjalnie zrobiłem żebym mieć pewność. :wink:
Ale to nic, spróbujmy jeszcze raz :

1. Zrobiłeś lekki błąd:
masz tak:
Cytat
echo ' <a href="index.php?jutsu=enc&? ';

2. W skrypcie jest tak:
  1. <?php
  2. // ...
  3. if( empty( $_GET['id'] ) )
  4. // ...
  5. ?>

Może masz włączone [b]register_globals</b>. Jeżeli tak to wyłącz, albo zrób tak:
  1. <?php
  2. // ...
  3. if( empty( $id ) )
  4. // ...
  5. ?>
Go to the top of the page
+Quote Post
Revan
post 11.06.2004, 16:45:21
Post #9





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

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


ehh... nic nie dalo :/ ... na pw podalem Ci adres stronki abys zobaczyl, a tutaj skrypt jaki mam w enc.php (w czesci)
[php:1:606b79424a]<?php

$intLimit = 5; //ilość rekordów na stronie;

if( empty( $id ) )
{
$intCurrentPage = 0;
}
else
{
$intCurrentPage = $_GET['id'];
}

$resBaseHandle = mysql_connect("localhost", "revan", "bionwn");
mysql_select_db("klan", $resBaseHandle);

$resResult = mysql_query("SELECT temat FROM hasla");
$intCount = mysql_num_rows($resResult);
echo $intCount.'<br>';

$resResult = mysql_query("SELECT * FROM hasla LIMIT
".($intCurrentPage*$intLimit).",".$intLimit);
while( $arrRow = mysql_fetch_array( $resResult ) )
{
echo $arrRow[ 'autor' ].' - '.$arrRow[ 'tresc' ].'<br>';
}
echo '<br>';
for($i = 0; $i<ceil($intCount/$intLimit); $i++)
{
echo ' <a href="index?jutsu=enc&?id='.$i.'">['.($i+1).']</a> ';
}


mysql_close($resBaseHandle);

?>[/php:1:606b79424a]
jakbys mogl napisac caly skrypt tym razem dostosowany do mojego serwera to bylbym niezmiernie wdzieczny... hehe siedze nad tym od 8:00
Go to the top of the page
+Quote Post
Revan
post 11.06.2004, 16:48:57
Post #10





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

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


ekhem... ale ze mnie lama ;] usunalem ? i dziala... no ale pozostaje jeszcze ten problem z WHERE temat LIKE "$litera%" jak wstawiam to wyskakuje blad :/

heh... udalo mi sie dodac ta litere smile.gif ... dzieki za wysilek i poswiecony mi czas winksmiley.jpg +
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: 20.06.2025 - 02:44