Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MySQL]Pokazywanie buttona jeśli użytkownik spełnia warunki
Tidude
post 3.07.2012, 21:59:21
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.08.2011

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


Witam.
Powiedzcie mi jak zrobić, by button był wyświetlany dla użytkownika który spełnia wymagania. Robię sobie grę przeglądarkową. Chcę by użytkownik który spełnia wymagania mógł zrealizować przetarg, jeśli ich nie spełnia to by nie mógł wziąć udziału w przetargu.

Linijki 9-12 zawierają element, który powinien działać a nie działa. Coś zrobiłem źle. Jeśli mógłby ktoś pomóc to byłbym wdzięczny.

Do realizacji przetargu użytkownik potrzebuje wymaganych w przetargu maszyn i surowców. Dane plik powinien pobierać z dwóch baz:
economy_przetarg - tutaj są informacje o wymaganiach i typie pojazdu jaki trzeba mieć by zrealizować przetarg.
  1. CREATE TABLE IF NOT EXISTS `economy_przetarg` (
  2. `nr_przetargu` int(11) NOT NULL,
  3. `user_id` int(11) NOT NULL,
  4. `nazwa_firmy` text collate utf8_unicode_ci NOT NULL,
  5. `opis_przetargu` text collate utf8_unicode_ci NOT NULL,
  6. `sposob_platnosci` text collate utf8_unicode_ci NOT NULL,
  7. `wymagania1` varchar(10) collate utf8_unicode_ci NOT NULL,
  8. `wymagania2` varchar(10) collate utf8_unicode_ci NOT NULL,
  9. `wymagania3` varchar(10) collate utf8_unicode_ci NOT NULL,
  10. `wymagania4` varchar(10) collate utf8_unicode_ci NOT NULL,
  11. `wymagania5` varchar(10) collate utf8_unicode_ci NOT NULL,
  12. `wymagania6` varchar(10) collate utf8_unicode_ci NOT NULL,
  13. `surowce` varchar(10) collate utf8_unicode_ci NOT NULL,
  14. `tekstylia` varchar(10) collate utf8_unicode_ci NOT NULL,
  15. `sprzet` varchar(10) collate utf8_unicode_ci NOT NULL,
  16. `zywnosc` varchar(10) collate utf8_unicode_ci NOT NULL,
  17. `kwota` varchar(10) collate utf8_unicode_ci NOT NULL,
  18. `punkty` int(11) NOT NULL,
  19. `aktywne` int(11) NOT NULL,
  20. PRIMARY KEY (`nr_przetargu`)
  21. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;



economy_pojazdy_gracze - ta tabela zawiera informacje odnosnie pojazdow gracza, gdzie kolumna id zaiwera wartosc - 1 dla danego typu pojazdow.
  1. CREATE TABLE IF NOT EXISTS `economy_pojazdy_gracze` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `firma_id` int(11) NOT NULL,
  4. `nazwa_firmy` text NOT NULL,
  5. `wartosc` int(11) NOT NULL,
  6. `pracownikow` int(11) NOT NULL DEFAULT '1',
  7. `czas_produkcji` int(11) NOT NULL,
  8. `czas_rozbudowy` int(11) NOT NULL,
  9. `poziom` int(11) NOT NULL DEFAULT '1',
  10. `otwarta` int(11) NOT NULL DEFAULT '1',
  11. `produkcja` int(11) NOT NULL,
  12. `gracz_id` int(11) NOT NULL,
  13. `ostatnio_zwolniony` int(11) NOT NULL DEFAULT '0',
  14. `typ_pojazdu1` int(11) NOT NULL,
  15. PRIMARY KEY (`id`),
  16. KEY `firma_id` (`firma_id`,`gracz_id`)
  17. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;




Kod pliku przetarg.php
  1. <?php
  2.  
  3.  
  4. $firmy = mysql_query("select * from economy_przetarg where aktywne = 1");
  5. if(mysql_num_rows($firmy) == 0){
  6. echo "<p class='error'>Brak firm lub typów</p><br class='clear'>";
  7. } else {
  8. while($firma = mysql_fetch_array($firmy)){
  9. $opcja = 'nie stać Cię';
  10. if($pojazdy['typ_pojazdu'] = $firma['wymagania2'] and $pojazdy['typ_pojazdu'] = $firma['wymagania2']){
  11. $opcja = "<a href='przetarg.php?zaloz=".$firma['nr_przetargu']."' class='buttonS bGreyish'>załóż za ".$firma['kwota']."$</a>";
  12. }
  13.  
  14. $i++;
  15. $styl="style='background:#DADADA; padding:5px'";
  16. if($i % 2 == 1) $styl = " style='background:#B2B2B2; padding:5px'";
  17. echo "
  18.  
  19.  
  20. ".$opcja."
  21.  
  22. ";
  23. }
  24. echo "";
  25. }
  26.  
  27. ?>


Ten post edytował Tidude 4.07.2012, 19:44:05
Go to the top of the page
+Quote Post
csharp
post 3.07.2012, 22:10:29
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 3
Dołączył: 22.04.2012
Skąd: Warszawa

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


aaaaaaaa jak zobaczyłem tyle kodu to aż mi się laptop zamknął... zrób proszę porządek i ogranicz to minimum abyśmy nie musieli się wysilać ;]


--------------------
Prywatny blog -> cupial.com.pl
Go to the top of the page
+Quote Post
Tidude
post 4.07.2012, 13:27:11
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.08.2011

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


wie ktoś może jak to zrobić? wstydnis.gif
Go to the top of the page
+Quote Post
kaktus283
post 4.07.2012, 13:32:34
Post #4





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 26.03.2010

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


No więc tak, nie pomogę Ci na pewno w kodzie w tym momencie ale ogranicz kod a zobaczę/(ymy) co da się zrobić.
Go to the top of the page
+Quote Post
Tidude
post 4.07.2012, 17:59:39
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.08.2011

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


jak mogę ograniczyć jak te wszystkie informacje są potrzebne wink.gif

Jeśli ktoś nie wie jak pomóc, to niech nie zgania na natłok kodu..

Ten post edytował Tidude 4.07.2012, 18:00:21
Go to the top of the page
+Quote Post
kaktus283
post 4.07.2012, 18:26:40
Post #6





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 26.03.2010

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


Za robienie z nas idiotów nikt teraz nie powinien Ci pomóc ...
"Ten post edytował Tidude Dzisiaj, 14:40"
Moja wiadomość 14:32, gdy oglądałem było bardzo dużo HTML, niepotrzebnych funkcji...
Go to the top of the page
+Quote Post
!*!
post 4.07.2012, 18:31:53
Post #7





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Brakuje Ci podstawowej wiedzy o PHP, to nie są poprawne warunki

  1. if($pojazdy['typ_pojazdu'] = $firma['wymagania2'] and $pojazdy['typ_pojazdu'] = $firma['wymagania2']){

Ponieważ nic w nich nie sprawdzasz, a przypisujesz wartości.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Tidude
post 4.07.2012, 18:59:14
Post #8





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.08.2011

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


Otóż to, wiedzy nie posiadam. And zamieniłem na && ale też nie działało. Chcę żeby spełnienie np. wymaganych w przetargu warunków pokazywało $opcje.

PHP nie znam, działam na przykładach.
Go to the top of the page
+Quote Post
CTRL
post 4.07.2012, 19:02:06
Post #9





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

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


Nie o to mu chodziło. Niedoświadczonemu człekowi trzeba od razu powiedzieć że if($a=5) działa tak samo jak $a=5; tylko że jeśli się to uda, a prawie na pewno to się stanie to wykona się warunek. Jeśli chcesz sprawdzić czy $a jest równe 5, musisz dać ==. if($a==5) jest poprawne, więc jeśli przed tym warunkiem dasz $a=4; nie spełni się ten if, czyli o to nam chodzi.

@Down:
!*! nie można być takim twardym jak kamień, biczem nikogo php nie nauczysz

Ten post edytował CTRL 4.07.2012, 19:06:53


--------------------
Go to the top of the page
+Quote Post
!*!
post 4.07.2012, 19:03:53
Post #10





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
PHP nie znam, działam na przykładach.

To poznaj. http://pl.wikibooks.org/wiki/PHP

@up CTRL - e tam wink.gif

Ten post edytował !*! 4.07.2012, 19:08:03


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Tidude
post 4.07.2012, 19:08:15
Post #11





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.08.2011

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


Cytat(CTRL @ 4.07.2012, 20:02:06 ) *
Nie o to mu chodziło. Niedoświadczonemu człekowi trzeba od razu powiedzieć że if($a=5) działa tak samo jak $a=5; tylko że jeśli się to uda, a prawie na pewno to się stanie to wykona się warunek. Jeśli chcesz sprawdzić czy $a jest równe 5, musisz dać ==. if($a==5) jest poprawne, więc jeśli przed tym warunkiem dasz $a=4; nie spełni się ten if, czyli o to nam chodzi.

@Down:
!*! nie można być takim twardym jak kamień, biczem nikogo php nie nauczysz



Wiesz co zrobiłem tak:
  1. if($firma['wymagania1'] == $pojazdy['typ_pojazdu1'] && $firma['wymagania2'] == $pojazdy['typ_pojazdu2'] && $firma['wymagania3'] == $pojazdy['typ_pojazdu3'])


i dalej nie działa.
Go to the top of the page
+Quote Post
!*!
post 4.07.2012, 19:11:10
Post #12





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Czyli warunek jest zły. chcesz żeby wymaganie było takie jak typ pojazdu, wszystkie na raz? Zamiast AND, powinno być OR Sama konstrukacja bazy danych i tego jak chcesz to sprawdzić kuleje.

Ten post edytował !*! 4.07.2012, 19:12:45


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Tidude
post 4.07.2012, 19:17:29
Post #13





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.08.2011

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


Rozumiem, że stosując OR wymaganie1 lub wymaganie2 będzie musiało być takie jak jest w przetargu. Moją intencją jest by udział w przetargu był możliwy dopiero po zrealizowaniu wszystkich wymagań. Mijałoby się z celem ustalenie 4 wymagań, a tak naprawdę jedno by wystarczyło do jego realizacji.
Chyba, że źle rozumiem zastosowanie OR.
Go to the top of the page
+Quote Post
CTRL
post 4.07.2012, 19:19:00
Post #14





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

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


Gdzie pobierasz tablicę $pojazdy?


--------------------
Go to the top of the page
+Quote Post
Tidude
post 4.07.2012, 19:25:38
Post #15





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.08.2011

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


z pliku odpowiadającego za sesję użytkownika.


  1. //pobieramy dane gracza z bazy
  2. $pojazdy = mysql_fetch_array(mysql_query("select * from economy_firmy_gracze where gracz_id = ".$_SESSION['user']));




Sprawdziłem działanie OR, działa gdy jeden warunek z kilku jest spełniony. I właśnie tu cały ambarans, bo ja bym chciał by skrypt działał gdy są spełnione wszystkie warunki. Ale dzięki chłopaki za konstruktywne podpowiedzi, czegoś się już dowiaduję.

Ten post edytował Tidude 4.07.2012, 19:29:00
Go to the top of the page
+Quote Post
CTRL
post 4.07.2012, 20:34:36
Post #16





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

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


A czy jesteś pewien że wszystko Ci się dobrze pobiera? pokaż zawartość tablic obu.


--------------------
Go to the top of the page
+Quote Post
Tidude
post 4.07.2012, 20:43:27
Post #17





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.08.2011

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


Są na samej górze w 1 poście biggrin.gif
Go to the top of the page
+Quote Post
CTRL
post 4.07.2012, 21:38:17
Post #18





Grupa: Zarejestrowani
Postów: 133
Pomógł: 8
Dołączył: 23.09.2011
Skąd: Stromiec

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


Miałem na myśli print_r($pojazdy); smile.gif


--------------------
Go to the top of the page
+Quote Post
Tidude
post 4.07.2012, 21:44:11
Post #19





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 10.08.2011

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


  1. CREATE TABLE IF NOT EXISTS `economy_firmy_gracze` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `firma_id` int(11) NOT NULL,
  4. `nazwa_firmy` text NOT NULL,
  5. `wartosc` int(11) NOT NULL,
  6. `pracownikow` int(11) NOT NULL DEFAULT '1',
  7. `czas_produkcji` int(11) NOT NULL,
  8. `czas_rozbudowy` int(11) NOT NULL,
  9. `poziom` int(11) NOT NULL DEFAULT '1',
  10. `otwarta` int(11) NOT NULL DEFAULT '1',
  11. `produkcja` int(11) NOT NULL,
  12. `gracz_id` int(11) NOT NULL,
  13. `ostatnio_zwolniony` int(11) NOT NULL DEFAULT '0',
  14. `typ_pojazdu1` int(11) NOT NULL,
  15. `typ_pojazdu2` int(11) NOT NULL,
  16. `typ_pojazdu3` int(11) NOT NULL,
  17. `typ_pojazdu4` int(11) NOT NULL,
  18. `typ_pojazdu5` int(11) NOT NULL,
  19. `typ_pojazdu6` int(11) NOT NULL,
  20. PRIMARY KEY (`id`),
  21. KEY `firma_id` (`firma_id`,`gracz_id`)
  22. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
Go to the top of the page
+Quote Post
!*!
post 4.07.2012, 21:56:10
Post #20





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


To jest struktura bazy, a nie to co zwraca.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 18.07.2025 - 05:55