Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Noob question - problem z SQL + zmienna php
Forum PHP.pl > Forum > Bazy danych > MySQL
Sky_walker
Mam problem z wywołaniem z tabeli SQL danych z kolumny o nazwie odpowiadającej zawartości komórki w innej tabeli.
Trochę to skomplikowane, ale ma wyglądać tak:
Mam dwie tabele: w jednej są wpisy:

Kod
|nazwa|
----------
|aaaaa|
|bbbbb|
|cccccc|
|ddddd|


a w drugiej kolumny o nazwach takich jak wiersze w pierwszej

Kod
|aaaaa|bbbbb|cccccc|ddddd|
---------------------------------
|testaa|testbb|testcc|testdd|
|testa2|testb2|testc2|testd2|
|testa3|testb3|testc3|testd3|


i mam pętlę która wybiera wpisy
  1. <?php
  2. $zapytanie="SELECT * From B";  
  3. $wykonaj=mysql_query($zapytanie); 
  4. $zapytanie2="SELECT * From P Where idP=$idp";
  5. $wykonaj2=mysql_query($zapytanie2);
  6. while($wynik=mysql_fetch_array($wykonaj)) {
  7. $nazwa = $wynik['nazwa'];
  8. $poziom = $wynik2[$nazwa];
  9. echo "$poziom";
  10. };
  11. ?>


i To śmie nie działać :/ grrrr
szukałem odpowiedzi na forum, ale nie udało mi się nic znaleźć sad.gif
mhs
Poczytaj jakiś podstawowy kurs na temat php/MySQL i nie będziesz miał problemów z napisaniem kilku linijek kodu.

Poza tym mam takie wrażenie, że masz źle zaprojektowaną bazę danych.

Pozdrawiam.
Sky_walker
Cytat
Poczytaj jakiś podstawowy kurs na temat php/MySQL i nie będziesz miał problemów z napisaniem kilku linijek kodu.

jak widać kilka linjijek napisałem snitch.gif
a temet wrzuciłem, bo nie mogłem znaleźć odpowiedzi sad.gif

Cytat
Poza tym mam takie wrażenie, że masz źle zaprojektowaną bazę danych.

eee... a poza wrażeniem coś jeszcze? jakieś sugestie? bo nazwy sprawdzałem i są dobrze ustawione.
mhs
Cytat
eee... a poza wrażeniem coś jeszcze? jakieś sugestie? bo nazwy sprawdzałem i są dobrze ustawione.


pokaż strukturę bazy danych (koniecznie kod SQL, a i dobrze gdybś miał rozrysowany schemat bazy danych), opisz co ona ma przedstawiać wówczas na ile moja wiedza będzie pozwalać pomogę Ci

-edit-
bo dobry projekt bazy danych nie sprowadza sie do dobrych nazw pól
Sky_walker
Proszę bardzo, jeśli to konieczne, to baza wygląda tak:

  1. CREATE TABLE `P` (
  2. `id` tinyint(4) NOT NULL AUTO_INCREMENT,
  3. `idPlanety` tinyint(4) NOT NULL DEFAULT '0',
  4. `idGracza` int(4) NOT NULL DEFAULT '0',
  5. `Nazwa` varchar(25) NOT NULL DEFAULT '',
  6. `Rodzaj` tinyint(1) NOT NULL DEFAULT '0',
  7. `zywnosc` tinyint(6) NOT NULL DEFAULT '0',
  8. `neutronium` tinyint(6) NOT NULL DEFAULT '0',
  9. `durastal` tinyint(6) NOT NULL DEFAULT '0',
  10. `krysztaly` tinyint(6) NOT NULL DEFAULT '0',
  11. `energia` tinyint(6) NOT NULL DEFAULT '0',
  12. `energiaMAX` tinyint(6) NOT NULL DEFAULT '0',
  13. `ZP` tinyint(6) NOT NULL DEFAULT '0',
  14. `populacja` int(12) NOT NULL DEFAULT '0',
  15. `robotnicy` int(12) NOT NULL DEFAULT '0',
  16. `Koszary` tinyint(3) NOT NULL DEFAULT '0',
  17. `Koszary_done` varchar(20) NOT NULL DEFAULT '',
  18. `Centrum klonowania` tinyint(3) NOT NULL DEFAULT '0',
  19. `Centrum klonowania_done` varchar(20) NOT NULL DEFAULT '',
  20. `Stocznia` tinyint(3) NOT NULL DEFAULT '0',
  21. `Stocznia_done` varchar(20) NOT NULL DEFAULT '',
  22.  
  23. PRIMARY KEY (`id`)
  24. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=3 ;
  25.  
  26. --
  27. -- Zrzut danych tabeli `P`
  28. --
  29.  
  30. INSERT
  31. INTO `P` VALUES (1, 2, 4, 'Roszpunka', 1, 100, 100, 100, 100, 100, 100, 100, 100000000, 100, 1, '', 1, '', 1, '', 2, '', 1, '', 1, '', 3, '', 1, '', 1, '', 1, '', 2, '', 1, '', 3, '', 2, '', 1, '', 1, '', 1, '');


  1. CREATE TABLE `B` (
  2. `id` tinyint(4) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(38) NOT NULL DEFAULT '',
  4. `opis` text NOT NULL,
  5. `img` varchar(20) NOT NULL DEFAULT '',
  6. `lok` tinyint(1) NOT NULL DEFAULT '0',
  7. `atak` int(4) NOT NULL DEFAULT '0',
  8. `zycie` int(5) NOT NULL DEFAULT '0',
  9. `oslony` int(4) NOT NULL DEFAULT '0',
  10. `p_energia` int(4) NOT NULL DEFAULT '0',
  11. `p_ZP` int(4) NOT NULL DEFAULT '0',
  12. `k1_zywnosc` int(5) NOT NULL DEFAULT '0',
  13. `k1_neutronium` int(5) NOT NULL DEFAULT '0',
  14. `k1_durastal` int(5) NOT NULL DEFAULT '0',
  15. `k1_krysztaly` int(5) NOT NULL DEFAULT '0',
  16. `k1_energia` int(5) NOT NULL DEFAULT '0',
  17. `k1_ZP` int(5) NOT NULL DEFAULT '0',
  18. `k1_czas` int(6) NOT NULL DEFAULT '0',
  19. `wwc_surowce` float NOT NULL DEFAULT '0',
  20. `wwc_ezp` float NOT NULL DEFAULT '0',
  21. `wwc_czas` float NOT NULL DEFAULT '0',
  22. `wwp_energia` float NOT NULL DEFAULT '0',
  23. `wwp_ZP` float NOT NULL DEFAULT '0',
  24. PRIMARY KEY (`id`)
  25. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=14 ;
  26.  
  27. --
  28. -- Zrzut danych tabeli `B`
  29. --
  30.  
  31. INSERT
  32. INTO `B` VALUES (1, 'Koszary', 'opis', 'n.jpg', 1, 50, 7500, 600, 30, 0, 50, 30, 100, 130, 1000, 36, 480, 0, 0, 0, 0.4, 0);
  33. INSERT
  34. INTO `B` VALUES (2, 'Centrum klonowania', 'opis', 'n.jpg', 1, 30, 6000, 600, 65, 0, 60, 160, 170, 150, 1400, 42, 522, 0, 0, 0, 0.4, 0);
  35. INSERT
  36. INTO `B` VALUES (4, 'Stocznia', 'opis', 'n.jpg', 2, 127, 10000, 750, 90, 20, 110, 200, 300, 170, 1800, 65, 660, 0, 0, 0, 0.5, 0.4);


Ale wątpie, żeby coś to dało.
I jak wspominałe nazwy kolumn z tabeli 'P' odpowiadają nazwie z wierszy tabeli 'B'
Pliki wygenerowane przez phpMyAdmin
mhs
Mówiąc o prawidłwo zaprojektowanej bazie danych od razu mogę Ci powiedzieć o błędach, które popełniłeś:
1) co to jest tabela B
2) coto jest tabela P (poczytaj o tym jak powinno nazywać się tabele)
3) również widać, że masz niespójność w nazewnictwie pól w tabeli, a i same nazwy tych pól miejscami chyba pozostawiają wątpliwości
4) pomiędzy tymi tabelami zachodzi jakaś relacja?questionmark.gifquestionmark.gif

Na razie tyle z mojej strony. Postaram się jeszcze później wyedytować posta i spróbować odpowiedzieć Ci na pytanie - rozwiązać Twój problem.

Pozdrawiam.
Sky_walker
Cytat
1) co to jest tabela B
2) coto jest tabela P (poczytaj o tym jak powinno nazywać się tabele)

Wiem jak powinno nazywać się tabele, ale tutaj nazwy zastąpiłem - tak aby było prościej zorientować się w sytuacji (mi było prościej cool.gif)
Cytat
3) również widać, że masz niespójność w nazewnictwie pól w tabeli, a i same nazwy tych pól miejscami chyba pozostawiają wątpliwości

dla mnie jest to jasne - a aby rozwiać Twoje wątpliwości musiałbym porozszyfrowywać trochę skrótów do (często) kilku wyrazowych fragmentów - a tak - skrócik (np. k1_) i wszystko jasne tongue.gif
A o niespójności wiem, ale już za późno aby poprawiać takie błędy (choć kiedyś pewnie to lenistwo będę musiał odpracować dry.gif )
Cytat
4) pomiędzy tymi tabelami zachodzi jakaś relacja?questionmark.gifquestionmark.gif

Nie

Bardzo proszę o pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.