Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php] sprawdzanie czy dana liczna jest parzysta
rola
post
Post #1





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

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


Witam
Jak sprawdzić czy liczba zapisana w zmiennej jest parzysta czy nie? Podejrzewam że chodzi o resztę z dzielenia itd., hmm.. ma moze poprostu sprawdzić czy reszta z dzielenia jest równa czy różna od zera... (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. if ($liczba % 2 == 0) echo 'parzysta';
  3. ?>
Go to the top of the page
+Quote Post
Dukov
post
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

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


Akurat posiłkowałem się tym postem, bo dopiero się uczę php, napisałem coś takiego
  1. if ($result = mysqli_query($db_lnk, $query)){
  2.  
  3. while ($row = mysqli_fetch_array($result)) {
  4. $i++;
  5.  
  6. if ($i % 2 == 0){
  7. echo "<div id=".$i." class=webcontainel><h4>".$row['title']."</h4></div>";
  8. }
  9.  
  10. else {
  11.  
  12. echo "<div id=".$i." class=webcontainer><h4>".$row['title']."</h4></div>";
  13. }
  14.  
  15.  
  16.  
  17.  
  18. }

Wyskakuje taki błąd, linia 16 to oczywiście sprawdzenie parzystości, nie wiem gdzie zrobiłem błąd, z tego co wiem to nic nie stoi na przeszkodzie, żeby warunek umieścić w while, jeśli wyrzucę klamry jest unexpected echo.
Parse error: syntax error, unexpected '{' in /home/dukov/ftp/testphp/pages.php on line 16
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kazdy { ma miec swoje }
Go to the top of the page
+Quote Post
Dukov
post
Post #5





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

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


No to i while jest w {} potem w {} jest warunek, który też ma swoje {}.
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Nawet w tym źle wciętym przez forum kodzie widać 4 otwarcia3 zamknięcia.
Go to the top of the page
+Quote Post
Dukov
post
Post #7





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

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


Bo skopiowałem tylko i wyłącznie pętle.

Tu jest cały kod, nie miałem ostatnio czasu się tym zająć i nadal proszę o pomoc. Pozamykane jest wszystko, z 10 razy to sprawdzałem, bo często zapominam czegoś gdzieś zamknąć, aczkolwiek tu jestem pewien.
  1. <?php
  2. $host = ;
  3. $base = ';
  4. $baseuser = '';
  5. $basepass = '';
  6.  
  7. if ($db_lnk = mysqli_connect($host, $baseuser, $basepass, $base)){
  8.  
  9. $query="SELECT * FROM webexamples";
  10.  
  11. if ($result = mysqli_query($db_lnk, $query)){
  12.  
  13. while ($row = mysqli_fetch_array($result)) {
  14. $i++;
  15.  
  16. if ( $i % 2 == 0 ) {
  17. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  18. }
  19.  
  20. else {
  21.  
  22. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  23. }
  24.  
  25.  
  26.  
  27.  
  28. }
  29. echo $i;
  30. }
  31. else
  32. {
  33. echo mysqli_error($db_lnk);
  34. }
  35. }
  36. else
  37. {
  38. echo "do dupy";
  39. }
  40. $db_lnk -> close();
  41.  
  42. ?>


Ten post edytował Dukov 25.05.2017, 13:53:22
Go to the top of the page
+Quote Post
trueblue
post
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Chyba musisz uzbierać na nowe okulary.
Sprawdź linie 2 i 3.
Go to the top of the page
+Quote Post
Dukov
post
Post #9





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

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


I jest jak najbardziej ok, po prostu na szybko kasowałem user i hasło itd. było $login ='login'; $haslo='haslo';, po prostu to wyczyściłem, żeby nie wrzucać tu danych do swojej bazy.

EDIT, jeszcze raz wytłumacze, to działało całkiem fajnie. Problem jest tutaj
  1. while ($row = mysqli_fetch_array($result)) {
  2. $i++;
  3.  
  4. if ( $i % 2 == 0 ) O TUTAJ>>> { <<<
  5. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  6. }
  7.  


Obojętnie co dam po if ( $i % 2 == 0 ) jest cały czas błąd unexpected syntax, obojętnie czy coś dalej skasuje, czy tam wpisze 1 albo przecinek, czy kropke, równie dobrze mogę tam napisać d*pa i wyskakuje błąd unexpected syntax.
Wcześniej to działało, tylko dodałem ten warunek.

  1. if ( $i % 2 == 0 ) {
  2. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  3. }
  4.  
  5. else {
  6.  
  7. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  8. }
i przestało działać. Bardzo mi miło, że chcecie pomóc ale czepiacie się nieistotnych szczegółów, które niedbale skopiowałem. Tłumaczyłem już kilka razy, że problem jest tylko i wytłącznie w tym miejscu, nie zmienię nic, tylko skasuje ten warunek to będzie działać.

  1. <?php
  2. $host = baza;
  3. $base = 'nazwa bazy';
  4. $baseuser = 'login';
  5. $basepass = 'haslo';
  6.  
  7. if ($db_lnk = mysqli_connect($host, $baseuser, $basepass, $base)){
  8.  
  9. $query="SELECT * FROM webexamples";
  10.  
  11. if ($result = mysqli_query($db_lnk, $query)){
  12.  
  13. while ($row = mysqli_fetch_array($result)) {
  14. $i++;
  15.  
  16.  
  17. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  18. }
  19. echo $i;
  20. }
  21. else
  22. {
  23. echo mysqli_error($db_lnk);
  24. }
  25. }
  26. else
  27. {
  28. echo "do dupy";
  29. }
  30. $db_lnk -> close();
  31.  
  32. ?>


Tak działa bez zarzutu, już widzicie gdzie jest problem?

EDIT 2

Ten warunek ma na celu dać inne klasy webexamplesl i wexampler, dlatego, że będą na siatce, jedno koło drugiego. A inkrementacja i++ zniknie, bo dodałem w bazie klucz z auto increment, ale będzie tam if ( $_POST['id'] % 2 == 0)

Ten post edytował Dukov 25.05.2017, 14:18:09
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To moze pokaz w koncu poprawny kod, bo ciagle pokazujesz nam zly i ciagle masz pretensje ze zle miejsca naprawiamy... No wez sie ogarnij troche... Nazwa przedszkole to tylko taka nazwa, to nie jest prawdziwe przedszkole dla 5latkow...
Go to the top of the page
+Quote Post
Dukov
post
Post #11





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

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


Wyżej zedytowałem posta (IMG:style_emoticons/default/smile.gif) Już dokładnie skopiowałem (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




POkaz caly kod po wstawieniu kodu o parzystosci. Podajesz nam kod kawalkami, tu cos wytniesz, tam cos dodasz.... Pokaz CALY kod
Go to the top of the page
+Quote Post
Pyton_000
post
Post #13





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Poza drobnym błędem braku $i = 0; to cały kod przytoczony jest poprawny.
Go to the top of the page
+Quote Post
viking
post
Post #14





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Nie licząc linii 30 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@viking, ale przeciez wiemy, ze nie o linie 30 chodzi. Znowu czepiamy sie nie tego co trzeba. Chcesz by Dukov sie zdenerwowal? (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Dukov
post
Post #16





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

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


Możesz wyjaśnić mi co jest nie tak z linią 30? Linia 30 zamyka
  1. if ($result = mysqli_query($db_lnk, $query)){
  2.  
  3. while ($row = mysqli_fetch_array($result)) {
  4. $i++;
  5.  
  6. if ( $i % 2 == 0 ) {
  7. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  8. }
  9.  
  10. else {
  11.  
  12. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  13. }
  14.  
  15.  
  16.  
  17.  
  18. }
  19. echo $i;
  20. }


Dodałem to $i = 0; i warunek taki sam

http://dukov.pl/portfoliotest/ < kod z warunkiem, który nie działa i wałkujemy od początku, jeszcze raz przytoczę kod

  1. <?php
  2. $host = ;
  3. $base = ';
  4. $baseuser = '';
  5. $basepass = '';
  6.   $i = 0;
  7. if ($db_lnk = mysqli_connect($host, $baseuser, $basepass, $base)){
  8.  
  9. $query="SELECT * FROM webexamples";
  10.  
  11. if ($result = mysqli_query($db_lnk, $query)){
  12.  
  13. while ($row = mysqli_fetch_array($result)) {
  14. $i++;
  15.  
  16. if ( $i % 2 == 0 ) {
  17. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  18. }
  19.  
  20. else {
  21.  
  22. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  23. }
  24.  
  25.  
  26.  
  27.  
  28. }
  29. echo $i;
  30. }
  31. else
  32. {
  33. echo mysqli_error($db_lnk);
  34. }
  35. }
  36. else
  37. {
  38. echo "do dupy";
  39. }
  40. $db_lnk -> close();
  41.  
  42. ?>


A tu kod bez warunku, nie ma rekordów w bazie więc nie ma co pobrać aczkolwiek błąd nie wyskakuje i działa http://dukov.pl/testphp/

  1. <?php
  2. $host = '';
  3. $base = '';
  4. $baseuser = '';
  5. $basepass = '';
  6. $i = 0;
  7. if ($db_lnk = mysqli_connect($host, $baseuser, $basepass, $base)){
  8.  
  9. $query="SELECT * FROM webexamples";
  10.  
  11. if ($result = mysqli_query($db_lnk, $query)){
  12.  
  13. while ($row = mysqli_fetch_array($result)) {
  14. $i++;
  15.  
  16.  
  17. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24. }
  25. echo $i;
  26. }
  27. else
  28. {
  29. echo mysqli_error($db_lnk);
  30. }
  31. }
  32. else
  33. {
  34. echo "do dupy";
  35. }
  36. $db_lnk -> close();
  37.  
  38. ?>


Ten post edytował Dukov 25.05.2017, 15:09:04
Go to the top of the page
+Quote Post
viking
post
Post #17





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Co do 30. Musisz zacząć rozróżniac czym jest praca na obiektach, a na funkcjach. Nie utwrzyłeś obiektu wiec ciężko żeby to działało.
W reszcie kodu nie ma błędu. Jakieś includy?
Go to the top of the page
+Quote Post
Dukov
post
Post #18





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

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


@viking, dzięki za odpowiedź możesz mi to lepiej wyjaśnić lub skopiować kod, poprawić błąd i zaznaczyć miejsce gdzie jest nie tak i poprawiłeś - byłbym bardzo wdzięczny. A też jestem ciekaw dlaczego ten bez warunku sprawdzającego czy liczba jest parzysta, czy nie to kod działa? Mimo, że różni się tylko i wyłącznie tym
  1. if ( $i % 2 == 0 ) {
  2. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  3. }
  4.  
  5. else {
  6.  
  7. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  8. }
  9.  


Wyżej nie działający

Niżej działający

  1. echo "<div id=".$i." class=webcontainerl><h4>".$row['title']."</h4></div>";
  2.  


To jest jedyna różnica między kodem działającym i nie, z obiektami, funkcjami itd. nie było żadnej zmiany, nic. Tylko ten warunek.

Ten post edytował Dukov 25.05.2017, 15:14:16
Go to the top of the page
+Quote Post
viking
post
Post #19





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Z jakiego edytora korzystasz? Dobry ide podświetli źle zamknięte nawiasy.
http://php.net/manual/pl/mysqli.close.php
Cytat
Styl obiektowy
bool mysqli::close ( void )

Styl proceduralny
bool mysqli_close ( mysqli $link )


Używasz 2 zatem nie $db_lnk -> close(); a mysqli_close($db_lnk)
Sam ten kod oddzielnie działa poprawnie więc zapewne gdzieś wcześniej coś źle zamknięte jest.
Go to the top of the page
+Quote Post
Dukov
post
Post #20





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

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


Mam Sublime Text i podświetla, stąd wiem, że wszystkie klamry, nawiasy itd. są zamknięte.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 16:17