![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taki kodzik: [php:1:3de730dc56]<? $query = "SELECT * FROM tabela WHERE costam ORDER BY costam"; $wynik = mysql_query($query); while($rzad = mysql_fetch_array($wynik)) { echo "<TR>n" ."<TD align=center>".$rzad['id']."</TD>n" ."<TD align=center>".$rzad['nazwa']."</TD>n" ."</TR>" } echo "</TABLE>"; ?>[/php:1:3de730dc56] No i teraz mam walek, chcialem aby 15 ostatnich rekordow ($rzad['nazwa']) bylo wyswietlane jako pogrubiony tekst. Nie udalo mi sie uzyc do tego MAX() ani COUNT(), jesli ktos bedzie znal rozwiazanie bardzo bym prosil o odpowiedz! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
[php:1:648375546a]<?
$query = "SELECT * FROM tabela WHERE costam ORDER BY costam"; $wynik = mysql_query($query); $intSqlRows = mysql_num_rows(); $intLastFifteen = $intSqlRows - 15; $intLoopCounter = 1; while($rzad = mysql_fetch_array($wynik)) { echo "<TR>n"; echo "<TD align=center>".$rzad['id']."</TD>n"; if($intLoopCounter <= $intLastFifteen) // "<=" lub "==" - jeszcze sie nie obudzilem { echo "<TD align=center>".$rzad['nazwa']."</TD>n"; } else { echo "<TD align=center><b>".$rzad['nazwa']."</b></TD>n"; } echo "</TR>"; $intLoopCounter++; } echo "</TABLE>"; ?>[/php:1:648375546a] -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
bedzie '>'
![]() A teraz poprawiona wersja (i dzialajaca) [php:1:4f2357992b]<? $query = "SELECT * FROM tabela WHERE costam ORDER BY costam"; $wynik = mysql_query($query); $intSqlRows = mysql_num_rows($wynik); $intLastFifteen = $intSqlRows - 15; while($rzad = mysql_fetch_array($wynik)) { $intMark = $rzad['id']; echo "<TR>n"; echo "<TD align=center>".$rzad['id']."</TD>n"; if($intMark > $intLastFifteen) { echo "<TD align=center><b>".$rzad['nazwa']."</b></TD>n"; } else { echo "<TD align=center>".$rzad['nazwa']."</TD>n"; } echo "</TR>"; } echo "</TABLE>"; ?> [/php:1:4f2357992b] Zamienilem inkrementacje na wartosc $id, poniewaz przy zmianie sortowania wyswietlal ostatnie 15 rekordow a nie 15 ostatnich rekordow w tabeli. Dziekuje w kazdym razie za naprowadzenie mnie na wlasciwy tor. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Wiesz naturalnie o tym, ze dziala to po tej zmianie przez przypadek i predzej czy pozniej najprawdopodobniej przestanie ?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
A dlaczego?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Bo dzialanie skryptu jest scisle zalezne od zalozenia, ze id-ki w bazie zawsze beda wszystkie (bez dziur) i zawsze bedzie dawal taki warunke po where ze beda sie wszystkie lapac. Zastanow sie jak to zadziala jak po jakichs porzadkach w bazie zostana wiersze od id z przedzialu 20-40 i zadne inne.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Hmm juz odpowiem...
Taka sytuacja nie bedzie miala miejsca... dlatego ze jesli zawartosc nie bedzie potrzebna zostanie zamieniona na inna wartosc, czyli zamiast dokladanie nowego wiersza bede zamienial niepotrzebny na nowy... Zreszta po tym zorientowalem sie ze mam klopot cos tak jak ty mowisz Mam baze programow, filmow i gier (oznaczone w polu typ jako - 1,2,3) i teraz mam zagwozdke jak zrobic aby 5 najwiekszych id (dla kazdego typu) bylo wyrozniane... To ma pewny zwiazek z tym co mowisz, w kazdym razie ten skrypt bedzie dzialal bo on ma ograniczenia a ja mam pewne tez ograniczenia (nalozone aby to zadzialalo). |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat Taka sytuacja nie bedzie miala miejsca... dlatego ze jesli zawartosc nie bedzie potrzebna zostanie zamieniona na inna wartosc, czyli zamiast dokladanie nowego wiersza bede zamienial niepotrzebny na nowy... Jeśłi tak chcesz robić, to idź lepiej zajmij się ogrodnictwem. Replace to so bie na kartce papieru możesz robić, a nie w bazie, gdzie możesz miec jakies relacje miedzy rekordami i tabelami.
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze nie lubie takiego tonu...
Po drugie robie tak jak tylko potrafie Po trzecie nie robie REPLACE tylko UPDATE Po czwarte nie ma relacji miedzy rekordami czy tabelami (bo jest tylko jedna tabela) Po piate moja kobieta zajmuje sie ogrodnictwem, wiec to zly pomysl ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
1. Nie masz pojęcia jakim tonem się do Ciebie zwracam
2. Więc korzystaj z rad innych, szczególnie jesli mają dobre pomysły 3. Czym skorupka za młodu nasiąknie tym na starośc trąci - za miesiąc będziesz miał pomysł, żeby dorzucić drugą tabelę i klękniesz na źle działającym skrypcie. 4. Puty dzban wode nosił, póki mu się ucho nie urwało 5. Zawsze mielibyście wspólne hobby (wbrew pozorom nie wyśmiewam się z ogrodnictwa). -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Cytat 1. Nie masz pojęcia jakim tonem się do Ciebie zwracam
Widze co czytam Cytat 2. Więc korzystaj z rad innych, szczególnie jesli mają dobre pomysły
Narazie nie zauwazylem zadnej tylko niemile zwrocenie uwagi... Cytat 3. Czym skorupka za młodu nasiąknie tym na starośc trąci - za miesiąc będziesz miał pomysł, żeby dorzucić drugą tabelę i klękniesz na źle działającym skrypcie.
No coz ja bynajmniej mysle o mozliwych update'ach za wczasu, a to co tu omawiamy to maly pikus (pare linijek kodu, ktore zawsze mozna wywalic bez wiekszego klopotu) W kazdym razie masz racje w pewnych czesciach, ale tak jak mowilem narazie to dziala w taki sposob i nic z tym nie bedzie robione... A dwa posty wczesniej zadalem pytanie jak to obejsc aby dzialalo w normalnej sytuacji i takiej w jakiej ty to przedstawiles... wiec jest jakas rada na to? Mialem dwa pomysly: Brac rekordy jak leca (gdzie typ ma odpowiednio wartosc 1,2,3) zamieniac ich wlasciwe ID na liczbe kolejnosci w jakiej sie je wyciagnelo (twoje $intLoopCounter) z bazy, przesortowac wg alfabetu (czy czego kolwiek) i pozniej bedziemy sie odnosic do kolejnosci w momencie gdy bedziemy chcieli zaznaczyc 5 ostatnich rekordow. Wiec czekam na rade ![]() |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Znaj łaskę pana:
[php:1:9a4f0391ab]<?php $query = "SELECT * FROM tabela WHERE costam ORDER BY costam"; $wynik = mysql_query($query); $ile=mysql_num_rows($query); for($i=0; $i<$ile; $i++) { mysql_data_seek($query,$i); $t=mysql_fetch_array($query); if($i<($ile-15) { echo "<TR>n<TD align=center><b>".$t["id"]."</b>"; echo "</TD>n<TD align=center><b>".$t["nazwa"]."</b>"; echo "</TD>n</TR>"; } else { echo "<TR>n<TD align=center>".$t["id"]."</TD>n"; echo "<TD align=center>".$t["nazwa"]."</TD>n</TR>"; } } ?>[/php:1:9a4f0391ab] -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
No niestety Panie to nie dziala jak powinno - dziala ze pogrubia ostatnie 15 ktore wyciagnal z bazy (wg kolejnosci alfabetycznej a nie wg ID)...
Poprawione (zeby cokolwiek wypisywalo): [php:1:48eb962294] <?php $query = "SELECT * FROM tabela WHERE costam ORDER BY costam"; $wynik = mysql_query($query); $ile=mysql_num_rows($wynik); for($i=0; $i<$ile; $i++) { mysql_data_seek($query,$i); $t=mysql_fetch_array($wynik); if($i<($ile-15)) { echo "<TR>n<TD align=center><b>".$t["id"]."</b>"; echo "</TD>n<TD align=center><b>".$t["nazwa"]."</b>"; echo "</TD>n</TR>"; } else { echo "<TR>n<TD align=center>".$t["id"]."</TD>n"; echo "<TD align=center>".$t["nazwa"]."</TD>n</TR>"; } } ?> [/php:1:48eb962294] Dopiero jak w zapytaniu dam sorotwanie wg ID to pokazuje prawidlowo, teraz jak zrobic zeby po przeleceniu tego posorotwalo spowrotem w nazwy? |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dopiero jak w zapytaniu dam sorotwanie wg ID to pokazuje prawidlowo, teraz jak zrobic zeby po przeleceniu tego posorotwalo spowrotem w nazwy?
Nie możesz już tego zrobić. Nie możesz wrócić wzwyż i zmienić sposób sortowania -------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 20.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Tzn jak to mozna zrobic?
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:30 |