Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problemy w początkowej fazie nauki MySQL
Forum PHP.pl > Forum > Przedszkole
PrzedszkolakMySQL
Witam,
Trochę już programuję w php ale dopiero zaczynam swoją przygodę z MySQL. No i jak na razie to idzie dosyć ciężko… Gdy w Internecie szukam jakichś kursów to wszystkie są takie same, na przykładzie zawodników NBA ;-). Więc jeśli znacie jakiś dobry kurs to dajcie linka.
A jak na razie to stawiam pierwsze kroki to napisałem taki kod (a raczej wziąłem z kursów):
  1. <html>
  2. <head>
  3. <?
  4. $sql_conn = mysql_connect('localhost', 'login', 'haslo');
  5. mysql_query('CREATE DATABASE zawodnicy');
  6. mysql_select_db('zawodnicy');
  7. $zapytanie = 'CREATE TABLE nba (id int NOT NULL AUTO_INCREMENT, imie char(30), lata char(3), punkty char(3), mistrzostwa char(3), PRIMARY KEY(id))';
  8. mysql_query($zapytanie);
  9. $zapytanie = "INSERT INTO `nba` (`id`, `nazwisko`, `lata`, `punkty` , `mistrzostwa`) VALUES ('', 'Jordan', '13', '32', '6')";
  10. $idzapytania = mysql_query($zapytanie);
  11. echo $idzapytania;
  12.  
  13. $zapytanie = "SELECT `id`,`nazwisko`,`lata`,`punkty` FROM `nba`";
  14. $idzapytania = mysql_query($zapytanie);
  15. echo 'aaaa'.$idzapytania.'bbbb';
  16. echo '<table>';
  17. while ($wiersz = mysql_fetch_row($idzapytania))
  18. {
  19. echo '<tr><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td><td>'. $wiersz[3] .'</td></tr>';
  20. }
  21. echo '<table>';
  22. mysql_close($sql_conn);
  23. ?>
  24. </body>
  25. </html>

I zwraca mi to taki błąd:

supplied argument is not a valid MySQL resorce
" title="Zobacz w manualu php" target="_manual

a $idzapytania jest puste.

Co z tym jest nie tak?
Pozdrawiam.
Ludvik
Masz kolumnę imie, a w instrukcji select chcesz pobrać dane z kolumny nazwisko. Poza tym:
- Nazw tabel i kolumn nie musisz ujmować w znaki " ` ", ładniej wygląda bez...
- Projekt bazy jest tragiczny. Liczby zapisujesz w danych tekstowych. Zmienić na liczby całkowite.
- Jeżeli masz pole z auto_increment, to pomijasz je na 2 sposoby: albo nie wpisujesz go w ogólę na listę z danymi, albo przypisujesz mu wartość NULL. NULL to nie jest to samo co pusty ciąg znaków.

Do nauki baz danych mimo wszystko polecam książki, w których wszystko jest opisane obszerniej niż w kursach na stronach www, które w większości przedstawiają zagadnienia dosyć pobieżnie.

EDIT: Zapomniałem wyjasnić na czym polega błąd, mimo tego, że było to wałkowane wiele razy. Funkcja mysql_query" title="Zobacz w manualu php" target="_manual zwraca zasób, którego możemy używać do przeglądania wyników zapytania. W przypadku błędu w zapytaniu, nie dostaniemy tego zasobu tylko logiczny fałsz. Funkcje mysql_fetch_* oraz inne przyjmujące ten zasób za argument zwracają właśnie taki błąd...
PrzedszkolakMySQL
Trochę to nawet śmieszne, ale właśnie to powodowało błąd. Dzięki!
A projekt bazy rzeczywiście jest kiepski, ale teraz chcę poznać MySQL - gdy będę robić jakiś projekt w oparciu o bazy to wtedy będę się starać zrobić lepszą strukturę danych smile.gif

Pozdrawiam
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.