Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MYSQL]Problem z zmienną
maxiu99
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


Witam, mam otóż taki mały problem z moją zmienną, chce zeby zmienna nigdy w zyciu niemogła wyniesc wiecej niz 100 i niewiem jak to zrobic...

Ten post edytował maxiu99 9.07.2008, 12:06:25
Go to the top of the page
+Quote Post
redelek
post
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(maxiu99 @ 9.07.2008, 11:02:07 ) *
Witam, mam ot.óz taki mały problem poniewaz chce zrobic tak zeby moja zmienna nigdy w zyciu neimogła wynies wiecej niz 100 i niewiem jak to zrobic...


Jak to zmienna ?

Może jestem nie życiowy ale dla mnie to powinno być jakimś warunkiem if sprawdzone. W samej zmiennej nie można robić hocków klocków.
Ale mogę się mylić.

Pozdrawiam
Redelek
Go to the top of the page
+Quote Post
maxiu99
post
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


przepraszam, chodzi o wartosc zmiennej zeby niemogła wynies więcej niz 100
Go to the top of the page
+Quote Post
m87
post
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 4
Dołączył: 5.07.2008

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


  1. <?php
  2. if ($zmienna > 100)
  3. echo "Błąd, zmienna jest większa niż 100";
  4. ?>


Innego sposobu chyba nie ma.
Ewentualnie można zrobić obiekt trzymający tą wartość i w metodzie, która ją ustawia dać warunek sprawdzający.
Go to the top of the page
+Quote Post
maxiu99
post
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


miałem tak samo w warunku if ale taka sprawa rozwiązania zbytnio niemoze byc poniewaz: gdy zmienna ma wartosc 99 i na mojej stronie mam skrypt który dodaje +5 do tej zmiennej 
wtedy  w tym warunku wszystko jest ok ale po wykonaniu skryptu zmienna ma juz wartosc 104 i chciałbym tego uniknąc.... ale niewiem w jaki sposób
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a nie możesz później wyniki sprawdzać czy jest mniejszy od 100?
Go to the top of the page
+Quote Post
scanner
post
Post #7





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




  1. <?php
  2. $iInt = ( $iInt <= 100 ) ? $iInt : 100;
  3. ?>

Jeśli wartość zmiennej jest mniejsza lub równa 100, pod zmienną podstawiamy nią samą, czyli nie zmieniamy wartości. Jeśli jest większa, obcinamy ją do 100.

  1. <?php
  2. $iInt = min( $iInt, 100 );
  3. ?>

Inne rozwiązanie, nieco czytelniejsze newbie.
Go to the top of the page
+Quote Post
m87
post
Post #8





Grupa: Zarejestrowani
Postów: 21
Pomógł: 4
Dołączył: 5.07.2008

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


  1. <?php
  2. class Mniejsze_Rowne
  3. {
  4. private $wartosc;
  5. private $max = 0;
  6.  
  7. function __construct($max)
  8. {
  9. $this->max = $max;
  10. }
  11.  
  12. function set($x)
  13. {
  14. if ($x <= $this->max)
  15. $this->wartosc = $x;
  16. else
  17. $this->wartosc = $this->max;
  18. }
  19.  
  20. function get()
  21. {
  22. return $this->wartosc;
  23. }
  24. }
  25.  
  26. $obiekt = new Mniejsze_Rowne(100);
  27. $obiekt->set(10);
  28. echo $obiekt->get(); // 10
  29. $obiekt->set(120);
  30. echo $obiekt->get(); // 100
  31. ?>


Obiekty są fajne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
scanner
post
Post #9





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat(m87 @ 9.07.2008, 14:20:47 ) *

A o KISS słyszałeś? Twój przykład jest bardzo fajny i w ogóle - ale to strzelanie do komara z armaty.
Go to the top of the page
+Quote Post
m87
post
Post #10





Grupa: Zarejestrowani
Postów: 21
Pomógł: 4
Dołączył: 5.07.2008

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


Cytat(scanner @ 9.07.2008, 14:22:47 ) *
A o KISS słyszałeś? Twój przykład jest bardzo fajny i w ogóle - ale to strzelanie do komara z armaty.


Słyszałem, ale przecież autor tematu nie powiedział co to za zmienna i do czego ją potrzebuje. Może ma więcej takich zmiennych albo inne które muszą być mniejsze od 200. Może zmienia jej wartość w 20 miejscach w kodzie, a za tydzień okaże się, że jednak zmienna miała być mniejsza od 120 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) "Simple" to pojęcie względne, wszystko zależy od tego co autor chce uzyskać.
Go to the top of the page
+Quote Post
maxiu99
post
Post #11





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


no napewno wartosc zmiennej nieulegnie zmmiane ze za tydzien będzie większa musiała byc! mam jedna taką wartosc uzywam ją ciągle na mojej stronce bardzo wazna zmienna

chyba zrobie tak jak scanner* powiedział zeby obcinac liczbe, zastanawiam sie jeszcze jak to zrobic, czy po prostu funkcje jezeli wynik większy niz 100 to wartosc tej zmiennej wynosi 100

Ten post edytował maxiu99 9.07.2008, 13:40:36
Go to the top of the page
+Quote Post
scanner
post
Post #12





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Ale po co używać OOP w sytuacji, jak cały problem jest rozwiązany w jednej krótkiej linijce kodu? Twoje argumenty mnie nie przekonują.
Hello world na 200 liniach już tez widziałem...

Toż tego nawet nie trzeba ubierać w funkcję, tylko ożywać on-demand.
Go to the top of the page
+Quote Post
maxiu99
post
Post #13





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


sorki ale nie rozumiem, mógłbys jasniej?
Go to the top of the page
+Quote Post
scanner
post
Post #14





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Ty:
- Zaincludowanie pliku z definicją klasy (czas)
- Utworzenie obiektu (czas, pamięć)
- komplikacja kodu - konieczność stosowanie metod składowych obiektu, przepisywanie wartości do obiektu itd.

Ja:
- Użycie jednej konstrukcji wbudowanej w język wtedy, gdy jest ona konieczna.

Prościej się nie da.
Go to the top of the page
+Quote Post
maxiu99
post
Post #15





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


hmm, ale najwazniejszego neirozumiem jak to zrobic teraz...
Go to the top of the page
+Quote Post
scanner
post
Post #16





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




W kazdym miejscu, w którym może zwiększyć się wartość tej Twojej zmiennej, a nie moze przekroczyć zadanej wartości, użyj:
  1. <?php
  2. $iInt = min( $iInt, 100 );
  3. ?>
Go to the top of the page
+Quote Post
maxiu99
post
Post #17





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


iInt czy to jest z bazy danych ta zmienna? nazwa czy cos innego? bo niewiem czy dobze rozumiem
Go to the top of the page
+Quote Post
scanner
post
Post #18





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




To jest ta zmienna, o której piszesz na samym początku.
Nazwę $iInt zamń sobie na swoją.
Ludzie, myślcie, to nie boli!

Cytat
Witam, mam otóż taki mały problem z moją zmienną, chce zeby zmienna nigdy w zyciu niemogła wyniesc wiecej niz 100 i niewiem jak to zrobic...
Go to the top of the page
+Quote Post
maxiu99
post
Post #19





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


wstawiłem tak jak mówiłes i zmiennej wartosc moze nadal wyniesc więcej niz 100...
Go to the top of the page
+Quote Post
Shili
post
Post #20





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Pokaż kod, który wyprodukowałeś na podstawie tego podpowiedzianego przez scannera.
Go to the top of the page
+Quote Post
maxiu99
post
Post #21





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


chodzi ci o cały kod tej podstronki?
Go to the top of the page
+Quote Post
Shili
post
Post #22





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


Całej może nie, ale tych fragmentów, które są ważne. Jak nie za bardzo wiesz co wybrać, to lepiej wrzuć całą.

Ten post edytował Shili 16.07.2008, 14:59:01
Go to the top of the page
+Quote Post
maxiu99
post
Post #23





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


  1. <?php
  2. pol_mysql();
  3. if (isset($_SESSION['user']))
  4. {
  5. $pokaz1 = "SELECT login, zmienna FROM users WHERE login = '". $_SESSION['user'] ."'";
  6. $wykonaj = mysql_query($pokaz1);
  7. while($wiersz = mysql_fetch_array($wykonaj))
  8. {
  9. $zmienna = $wiersz['zmienna'];
  10. }
  11. $pokaz4 = "SELECT login, misster FROM panienki WHERE login = '". $_SESSION['user'] ."'";
  12. $wykonaj = mysql_query($pokaz4);
  13. while($wiersz = mysql_fetch_array($wykonaj))
  14. {
  15. $misster = $wiersz['misster'];
  16. }
  17. if ( $misster != 1) {
  18.  
  19. mysql_query("UPDATE users SET zmienna = $zmienna+40 WHERE login = '". $_SESSION['user'] ."' ");
  20. $zmienna = min( $zmienna, 100 ); // TO JEST WSTAWIONE TAK JAK KOLEGA POWIEDZIAŁ WYZEJ JEDNAK NIEWIEM W KTÓRYM MIEJS
    CU TEGO KODU PRÓBOWAŁEM W INNYCH MEIJSCACH ALE  BEZ ZMIAN
  21.  
  22. } 
  23. } else {
  24. echo "Wróć i zaloguj się!";
  25. }
  26. ?>


Tak wygląda ten kod tak jak wyzej napisałem nie wiem gdzie to umiescic co kolega kazał dopisac próbowałem gdzie indziej i nic...
Go to the top of the page
+Quote Post
Kristof
post
Post #24





Grupa: Zarejestrowani
Postów: 33
Pomógł: 1
Dołączył: 15.12.2005

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


  1. <?php
  2. if ( $misster != 1) {
  3. $zmienna+40;
  4. $zmienna = min( $zmienna, 100 );
  5. mysql_query("UPDATE users SET zmienna = $zmienna WHERE login = '". $_SESSION['user'] ."' ");
  6. }
  7. ?>


Zrób tak powinno być ok
Go to the top of the page
+Quote Post
maxiu99
post
Post #25





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 6.10.2007

Ostrzeżenie: (10%)
X----


THX troszke zmieniłęm jedną linijke i działa
  1. <?php
  2. $zmienna = $zmienna +40;
  3. ?>
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 - 19:06