Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Błąd przy wyświetleniu pytania posiadającego swoje ID.
welll1
post 19.12.2011, 20:22:54
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.12.2011
Skąd: Opole

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


Witam,
mam dwie funkcje. Pierwsza wyświetla mi wszystkie pytania które znajdują się w bazie danych:
  1. function pokazPytania()
  2. {
  3. $zapytanie = "SELECT * FROM pytania";
  4. $wykonaj = mysql_query($zapytanie);
  5. $i = 0;
  6. while($wiersz = mysql_fetch_array($wykonaj))
  7. {
  8. $tab[$i]['id'] = $wiersz['id'];
  9. $tab[$i]['user'] = $wiersz['user'];
  10. $tab[$i]['pytanie'] = $wiersz['pytanie'];
  11. $i++;
  12. }
  13. return $tab;
  14. }


Działa bardzo fajnie, ale chciałem żeby po kliknięciu w dane zagadnienie wyświetlało mi się ono więc mam coś takiego:

  1. function pokazPytanie($id)
  2. {
  3. $id = intval($id);
  4. $zapytanie = "SELECT odpowiedz, pytanie, user FROM pytania JOIN odpowiedzi ON pytania.id = odpowiedzi.id_pytania WHERE pytania.id = $id";
  5. $wykonaj = mysql_query($zapytanie);
  6. while($wiersz = mysql_fetch_array($wykonaj))
  7. {
  8. $tab['user'] = $wiersz['user'];
  9. $tab['pytanie'] = $wiersz['pytanie'];
  10. $tab['odpowiedz'] = $wiersz['odpowiedz'];
  11. }
  12. return $tab;
  13. }



Niestety to nie działa pojawia się komunikat:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
wskazanie na linijkę
while($wiersz = mysql_fetch_array($wykonaj))

Zgubiłem się i totalnie nie wiem o co chodzi. Dlaczego pytania wyświetlają się wszystkie na jednej stronie, a nie potrafi załadować jednego po jego kliknięciu?

Ten post edytował welll1 19.12.2011, 20:35:48
Go to the top of the page
+Quote Post
nospor
post 19.12.2011, 20:29:42
Post #2





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




1) Uzywaj bbcode
2) Masz błąd zapytania. Jak sobie radzić z błędami zapytania masz napisane tu:
Temat: Jak poprawnie zada pytanie
Przeczytaj całość. Jest tam kupa podstawowych wskazówek dla poczatkujących.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
welll1
post 19.12.2011, 20:46:37
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.12.2011
Skąd: Opole

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


Problem w tym że analizuję i nie widzę tutaj błędnego zapytania... prosty formularz który dodaje klika wpisów, prosta funkcja która wyświetla je wszystkie oraz dziwnym trafem nieprosta funkcja która nie jest w stanie wyświetlić pojedynczego wpisu.
Go to the top of the page
+Quote Post
kadlub
post 19.12.2011, 20:48:29
Post #4





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


$wykonaj = mysql_query($zapytanie) or die(mysql_error());
i powiedz co się wyświetli
Go to the top of the page
+Quote Post
nospor
post 19.12.2011, 20:54:10
Post #5





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




Cytat
Problem w tym że analizuję i nie widzę tutaj błędnego zapytania...
Nie miałeś analizować a zastosować się do prostych wskazówek napisanych po polsku. Czemu Wy macie tak niesamowite problemy z czytaniem po polsku? Jedna ze wskazówek jest mysql_error(), którą podał również kadłub w poprzednim poście.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
welll1
post 19.12.2011, 21:03:49
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.12.2011
Skąd: Opole

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


Otrzymałem komunikat:
Table 'odpowiedz' doesn't exist wstydnis.gif
czyli nie dodaje mi tabeli z odpowiedzią ...
Go to the top of the page
+Quote Post
xxdrago
post 19.12.2011, 21:09:44
Post #7





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


Po prostu nie ma takiej tabeli

Zerknij do manuala i zobacz konstrukcje zapytania.
http://dev.mysql.com/doc/


--------------------
GG: 10972302 :)
Go to the top of the page
+Quote Post
abort
post 19.12.2011, 21:09:54
Post #8





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Nieprawda, że "nie dodaje".
SELECT nie jest od dodawania, ale od odpytywania/przeszukiwania.
1. Załóż tabelę (np. w phpMyAdmin) o odpowiedniej strukturze.
2. Uzupełnij ją danymi wedle potrzeby
3. dopiero potem testuj kod/warunki selecta.
Go to the top of the page
+Quote Post
welll1
post 19.12.2011, 21:22:05
Post #9





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.12.2011
Skąd: Opole

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


Mam założoną tabelę która jest uzupełniona danymi.
Pola jakie są to
user
id
pytanie
mail

Dodałem tabelę 'odpowiedzi' z polami 'odpowiedz' i 'id_pytania'

Tymczasowe rozwiązanie działa ale potrzebuję dodać pole 'odpowiedz' do tabeli 'pytania' i powinno śmigać ale no właśnie:
ALTER TABLE 'pytania' ADD 'odpowiedz' text NOT NULL;

MySQL zwrócił komunikat:

#1064 - Something is wrong in your syntax obok ''pytania' ADD 'odpowiedz' TEXT NOT NULL' w linii 1

Jeny jaki słaby z tego jestem a zaliczenie tuż tuż thumbsdownsmileyanim.gif

Ten post edytował welll1 19.12.2011, 21:55:17
Go to the top of the page
+Quote Post
abort
post 19.12.2011, 22:37:43
Post #10





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Do tabeli pytania możesz dodać tylko kolumnę (np. o nazwie "odpowiedz"). Manual: http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
Jeśli chcesz przeszukiwać dwie tabele naraz, to zainteresuj się JOINami, na początek polecam http://www.elektroonline.pl/a/2460,Komenda...SQL,baza_wiedzy

A tak w ogóle to polecam wrzucić te kwerendy SQL np. do phpmyadmina i zobaczyć online, co mamy w bazie.
Go to the top of the page
+Quote Post
nospor
post 20.12.2011, 13:16:09
Post #11





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




NIe: ALTER TABLE 'pytania' ADD 'odpowiedz' text NOT NULL;
a: ALTER TABLE pytania ADD odpowiedz text NOT NULL;
odróżniaj tekst od nazwy tabeli czy kolumny
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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: 12.06.2025 - 13:38