Błąd w php

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

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]

Coś nie działa.

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ń:

  1. W tej tabelece nie znajduje się nic. Czy przez to może wyświetlać się błąd?

  2. 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:

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")

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’

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.

Nie trzeba tego dodawać w tym przypadku :slight_smile:

a czemu tak mówisz? zawsze byłem pewny, że trzeba to dodać żeby móc operować na nazwach.

pozatym, zawsze można korzystać tylko z mysql_fetch_assoc()

Już działa. Problemem było sortowanie według nieistniejącej tabeli.

Nieistniejącego pola (kolumny), a nie tabeli.