Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Błąd przy wyświetleniu pytania posiadającego swoje ID.
Forum PHP.pl > Forum > Przedszkole
welll1
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?
nospor
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.
welll1
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.
kadlub
$wykonaj = mysql_query($zapytanie) or die(mysql_error());
i powiedz co się wyświetli
nospor
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.
welll1
Otrzymałem komunikat:
Table 'odpowiedz' doesn't exist wstydnis.gif
czyli nie dodaje mi tabeli z odpowiedzią ...
xxdrago
Po prostu nie ma takiej tabeli

Zerknij do manuala i zobacz konstrukcje zapytania.
http://dev.mysql.com/doc/
abort
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.
welll1
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
abort
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.
nospor
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
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.