Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][SQL]Problem z wyświetlaniem nazw z bazy
Michal92
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.12.2015

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


Witam
Do $dodatki przypisane zostają wartości z formularza z checkboxów. Po wybraniu tylko jednej opcji prawidłowa nazwa z bazy zostaje wyświetlona, gdy zostaną zaznaczone dwie lub więcej opcji pojawia się błąd: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/students/inf2016/michal_92/public_html/Zadanie_5/index3.php
W innych miejscach gdzie wyświetlam, które dodatki zostały wybrane (bez wyciągania nazw z bazy danych) jest ok.

  1. foreach ($dodatki as $value)
  2. {
  3. $query="SELECT nazwa FROM ".$prefix."_dodatki WHERE dodatek_ID = " .$value."";
  4. $wyniki = mysql_query($query, $link);
  5.  
  6. while($wiersz = mysql_fetch_array($wyniki))
  7. {
  8. echo $wiersz[nazwa];
  9. }
  10. }
Go to the top of the page
+Quote Post
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Przed mysql_query zrób sobie zawsze var_dump($query) i zobaczysz wtedy jak wygląda Twoje zapytania i będziesz wiedzieć, co należy poprawić.
Go to the top of the page
+Quote Post
Michal92
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.12.2015

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


Problem jest w tym, że do $value są od razu przypisane wartości, które zostały zaznaczone w checkboxach - WHERE dodatek_ID = 5 6 . Nie mogę na razie wymyślić jak poradzić sobie z tym, żeby najpierw przypisana została tylko 5, wypisana nazwa i później 6 i wypisana nazwa.
Widzę, że foreach najpierw przypisuje wszystkie wartości do $value i jak się je wyświetla to są ciągiem znaków. Więc jak do tego podejść?

Ten post edytował Michal92 16.12.2015, 11:39:11
Go to the top of the page
+Quote Post
viking
post
Post #4





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

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


Nie są, wykonywana jest pętla dla każdej wartości. Moim zdaniem nie potrzebujesz też jeździć tak po bazie. Wystarczy implode(',', $jakaszmienna) i w zapytaniu WHERE dodatek_ID IN(?) gdzie oczywiście ? to wynik implode. Zobacz w dokumentacji co ta funkcja robi.
Go to the top of the page
+Quote Post
Michal92
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.12.2015

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


Nie pomyślałem o tym, spróbuję tego rozwiązania. Dobrze myślę, że foreach domyślnie między kolejnymi elementami przypisywanymi do $value wstawia spację?
Go to the top of the page
+Quote Post
viking
post
Post #6





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

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


Tylko iteruje, nic nie wstawia.
Go to the top of the page
+Quote Post

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: 26.08.2025 - 16:39