![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 16.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z pętlami, mam dane liczby od np. 7000 do 9000 petla while lub for wypisuje te liczby, to zadna roznica, ale mam tez druga petle potrzebna do wyciagniecia liczb z bazy danych
Wyciaga tylko tyle liczb ile jest w bazie, czyli w tym przypadku wypisze jakies liczby, zalozmy 8002, 8220, 8035, 8100 i jak te liczby "wyciagnac" usunac z tamtej petli wyliczajacej liczby od 7000 do 9000 ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
np. tak:
Kod for ($j = 7000; $j <= 9000; $j++) { if (in_array($j, $r)) continue; //---- cos rob } edit: poprawka, błąd w kodzie. Ten post edytował PrinceOfPersia 15.03.2013, 17:42:27 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 16.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
hmm, ale to sa osobne 2 petle, gdzie jedna od 0 do x wypisuje raz 1 raz 4 liczby a druga stale od 7 tysiecy do 9 tys
z tej wyrzucic liczby o te:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
w moim poprzednim kodzie jest błąd - wieczna pętla, zaraz poprawię.
edit: chyba wystarczy Ci jedna pętla: Kod $porty=7000; $porty_koniec=9000; while ($porty != $porty_koniec + 1) { if (!in_array($porty, $r)) echo $porty . "<br />"; ++$porty; } zakładając, że w $r znajdują się liczby w takim formacie array(8002, 8220, 8035, 8100) Ten post edytował PrinceOfPersia 15.03.2013, 17:48:45 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 16.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
ok, ale to nie tak ma dzialac, jak mam porownac if (in_array($j, $r)) skoro $r jest raz 1 liczba raz 100 liczb wiec musialbym po kolei porownywac $r[0], $r[1] itd. w zaleznosci od ilosci liczb, a jak mam zrobic petle w petli ?
#EDIT: @UP zaraz to przestudiuje ![]() #EDIT2: Jak to pobrac z mysqla w takim formacie ? Wszystkie liczby z $query = "SELECT port FROM users"; Jak pobrac wszystkie liczby z danej kolumny o nazwie port i zapisac w takim formacie? Ten post edytował S3baso 15.03.2013, 18:01:04 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Pętla z jakimiś tam liczbami, załóżmy od 0 do 9000:
Teraz wyciągamy jakieś tam wartości z bazy, nie wiem co to ma być więc załóżmy że wyciągamy wszystkie ID z tabeli `users`:
W tym momencie w zmiennej (tablicy) $tablica_z_liczbami mamy wszystkie liczby od 0 do 9000 a w zmiennej (również tablicy) $liczby_do_usuniecia mamy wszystkie ID z tabeli `users`. Pozostało nam usunąć te ID z tablicy $tablica_z_liczbami:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 16.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hmm, bardziej chodzilo mi o liste rozwijalna czyli zapetlilem <option>xxx</option> do np. 2000 razy z roznymi liczbami, zaraz pokombinuje i zobacze czy to zda egzamin, i tak dziekuje za wlozenie w to serca
![]() To nie zda egzaminu, bo w moim przypadku w liscie rozwijalnej jest okolo 2 tysiecy elementow, petla to 3 linijki a nie 2 tysiace wpisow, z petli chce wyciagnac dane liczby, a jak wyciagnac z mysqla 4 liczby lub wiecej w zaleznosci od tego ile ich tam jest, do tego potrzebuje petli, ktora zaleznie od tego ile jest elementow wyciagnie albo 2 albo 20 liczb, tylko jak te 20 liczb (u mnie sa to numery portow) wyciagnac z tej listy rozwijalnej? ok, namotałem to dam przykład, zebyscie mnie zrozumieli, lista rozwijalna html :
Wyswietla w liscie liczby od 7000 do 9000, macie tu przyklad to tak wyglada: http://24shoutcast.pl/test.php i jak z tej listy liczb od 7000 do 9000 wyciagnac liczby pobrane z bazy np. 8130, 8035 itd. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował Michael2318 16.03.2013, 12:33:51 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Hmm, bardziej chodzilo mi o liste rozwijalna czyli zapetlilem <option>xxx</option> do np. 2000 razy z roznymi liczbami znowu... nadgorliwi ludzie ![]() A czy nie możesz po prostu dać <input type="text" /> i dopiero jak ktoś wprowadzi numer portu, to to sprawdzić ten jeden konkretny numer? Ten post edytował PrinceOfPersia 16.03.2013, 13:16:37 -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 16.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Gdybym mógł tak zrobić to zrobiłbym to dawno i sam, bo to nie problem, z tym jest gorzej...
Michael, dziekuje za Twoj kod wszystko pieknie dziala, bylo pare bledow, ale mam teraz kolejny problem, wyrzuca te porty, ale zostawia puste pole, jak zrobic by skrypt, znaczy petla while przeskoczyla jakby to puste miejsce, bo mam narazie http://24shoutcast.pl/test.php i zobacz np. w miejscu gdzie powinno byc 8002 jest puste pole, jest juz lepiej ale jak calkiem wyrzucic to nawet puste miejsce i po 8001 od razu 8003 ? |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Załącz mi obecny kod, będzie mi łatwiej, a zarazem też Tobie będzie prościej bo nie będziesz musiał podpinać moich wypocin pod swój kod
![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 16.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sie nie zdziw, to jest syf jakich malo, ale Twoj kod nie dzialal, wiec zrobilem to na 3 petle hahah :
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Nie będę ukrywał, że teraz to mało z tego kodu rozumiem, ale takie niezbyt wyszukane rozwiązanie:
Chodzi o warunek:
który spowoduje, że doda Ci option'a tylko wtedy, gdy zmienna z tablicą nie będzie pusta. Może ktoś da Ci lepsze rozwiązanie. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 16.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dziekuje uprzejmie, zrobilem taki syf poniewaz to co Ty dales, nie dzialalo bo nie robilo optionow jak nalezy, nie mam pojecia dlaczego, teraz jest ok i nie if ( $tablica[$j] !== '' ) tylko if ( $tablica[$j] != '' ), dziekuje, jezeli chcesz jeszcze pomoc uporzadkowac ten kod bylbym wdzieczny
#EDIT Twoj kod bez zmian z malymi poprawkami bo zapominales np. ) lub ] wyglada tak: http://24shoutcast.pl/test2.php Ten post edytował S3baso 16.03.2013, 14:05:08 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Cytat i nie if ( $tablica[$j] !== '' ) tylko if ( $tablica[$j] != '' ) Pierwsze słysze, aby to miało jakiekolwiek znaczenie... ![]() Co do ogarnięcia kodu to niestety nadal do końca nie wiem co to w ogóle jest, ale 3 pętle to przesada, idealnie byłoby wymyślić jakiś nowy sposób/algorytm, może zaangazować bazę danych, tak aby maksymalnie to uprosicić i odciążyć serwer. Tak jak pisałem - nie wiem do czego Ci to jest potrzebne,więc ode mnie tyle, spróbuj wymyślić coś sam i ewentualnie pytaj tutaj na forum ![]() |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 16.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ok rozumiem, tak zrobie i tak dziekuje za pomoc, no ja tez pierwszy raz slysze, ale !== nie dziala a jak zmienilem na != to juz tak, sam wymyslilem wlasnie sposob z 3 petlami(ktory jest beznadziejny) ale pomysle jeszcze nad tym i najwyzej podziele sie swoim rozwiazaniem
![]() Ten post edytował S3baso 16.03.2013, 14:17:40 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:59 |