Witam!
Postanowiłem “pobawić” się w php i mysql.
<?php include('mysql.php'); ?>
<?php
while ($row = mysql_fetch_array('SELECT * FROM pracownik_dolnoslaskie_fbudowlana ORDER BY data'))
echo('
| ‘.$row[‘data’].’ | ‘.$row[‘tresc’].’ | ‘.$row[‘nick’].’ ‘.$row[‘email’].’ ‘.$row[‘telefon’].’ |
'); ?> <?php mysql_close($link); ?>[/code]
Niestety coś mi nie działa tu poprawnie. Proszę o pomoc.
Błąd:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in … on line 3
kutar
(Kutar 0)
1 Luty 2008 15:08
#2
Po pierwsze, po co zamykasz ?> skoro zaraz ponownie otwierasz <?php
?
co do pytania… ehhhh… wiesz do czego służy funkcja mysql_fetch_array() ? Najwyraźniej nie.
Poczytaj sobie:
http://pl.php.net/manual/pl/function.my … -array.php
i przy okazji:
http://pl.php.net/manual/pl/function.mysql-query.php
<?php include('mysql.php');
$query=mysql_query('SELECT * FROM pracownik_dolnoslaskie_fbudowlana ORDER BY data');
while ($row = mysql_fetch_array($query))
echo('
| ‘.$row[‘data’].’ | ‘.$row[‘tresc’].’ | ‘.$row[‘nick’].’ ‘.$row[‘email’].’ ‘.$row[‘telefon’].’ |
'); mysql_close($link); ?>[/code]
Airborn
(Airborn)
2 Luty 2008 13:33
#4
a co właściwie robi plik mysql.php ?
W pliku mysql.php znajdują się dane do połączenia z bazą danych.
I mam kilka pytań:
W tej tabelece nie znajduje się nic. Czy przez to może wyświetlać się błąd?
Kiedy próbuje do tabelki dodać rekordy przez phpmyadmin:
INSERT INTO pracownik_dolnoslaskie_fbudowlana VALUES <
-> NULL,
-> “2008-02-03”,
-> “Patrol13”,
-> "patrol@patrol13.net ",
-> “000-000-000”
-> “Przykład”>;
Wyświetla mi błąd:
Wygląda na to, że w twoim zapytaniu SQL jest błąd. W znalezieniu przyczyny problemu może pomóc także - jeśli się pojawi - poniższy opis błędu serwera MySQL. ERROR: Nieznany znak przestankowy @ 56 STR: -> SQL: INSERT INTO pracownik_dolnoslaskie_fbudowlana VALUES < -> NULL, -> “2008-02-03”, -> “Patrol13”, -> "patrol@patrol13.net ", -> “000-000-000” -> “Przykład”> zapytanie SQL: INSERT INTO pracownik_dolnoslaskie_fbudowlana VALUES < -> NULL, -> “2008-02-03”, -> “Patrol13”, -> "patrol@patrol13.net ", -> “000-000-000” -> “Przykład”> MySQL zwrócił komunikat: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘< -> NULL, -> “2008-02-03”, -> “Patrol13”, -> "patrol@patrol13.net ", -> "00’ at line 1
kutar
(Kutar 0)
3 Luty 2008 12:27
#6
Kiedy dodajesz rekordy do bazy, to wartości nie zamieszczasz w nawiasach ostrych, ale w okrągłych ( )
INSERT INTO pracownik_dolnoslaskie_fbudowlana VALUES (NULL,"2008-02-03","Patrol13","patrol@patrol13.net","000-000-000","Przykład")
kutar
(Kutar 0)
3 Luty 2008 19:56
#8
Zamień linie pobierania z bazy na taką:
$query=mysql_query('SELECT * FROM pracownik_dolnoslaskie_fbudowlana ORDER BY data') or die(mysql_error());
i napisz co wyświetli.
Mam taki kod:
<?php include('mysql.php');
$query=mysql_query('SELECT * FROM pracownik_dolnoslaskie_dniepelnosprawnych ORDER BY data') or die(mysql_error());
while ($row = mysql_fetch_array($query))
echo('
| ‘.$row[‘data_dodania’].’ | ‘.$row[‘tresc’].’ | ‘.$row[‘nick’].’ ‘.$row[‘email’].’ ‘.$row[‘telefon’].’ |
'); mysql_close($link); ?>[/code]
Wyświetla mi taki komunikat:
Unknown column ‘data’ in ‘order clause’
lysy1033
(Lysy1033)
4 Luty 2008 17:40
#10
sprawdź budowę tabeli a najlepiej daj nam kod za pomocą którego ją stworzyłeś.
następna sprawa to z tego co pamiętam to mysql_fetch_array() zwraca dane w tabeli ale odwołuje się do niej tak:
$row[0],$row[1]. żeby robić to na nazwach trzeba dopisać do mysql_fetch_array($wynik, MYSQL_ASSOC).
W linii 2 jest błąd bo nie może znaleźć kolumny data w tabeli w bazie. po nazwach przy $row domyślam się, że kolumna ta w bazie nazywa się data_dodania więc zapytanie do bazy będzie takie:
SELECT * FROM pracownik_dolnoslaskie_dniepelnosprawnych ORDER BY data_dodania.
kutar
(Kutar 0)
4 Luty 2008 20:27
#11
następna sprawa to z tego co pamiętam to mysql_fetch_array() zwraca dane w tabeli ale odwołuje się do niej tak: $row[0],$row[1]. żeby robić to na nazwach trzeba dopisać do mysql_fetch_array($wynik, MYSQL_ASSOC).
Nie trzeba tego dodawać w tym przypadku
lysy1033
(Lysy1033)
4 Luty 2008 20:33
#12
a czemu tak mówisz? zawsze byłem pewny, że trzeba to dodać żeby móc operować na nazwach.
Airborn
(Airborn)
4 Luty 2008 20:38
#13
pozatym, zawsze można korzystać tylko z mysql_fetch_assoc()
Już działa. Problemem było sortowanie według nieistniejącej tabeli.
kutar
(Kutar 0)
5 Luty 2008 13:17
#15
Nieistniejącego pola (kolumny), a nie tabeli.