Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wynikiem - MySQL
Forum PHP.pl > Forum > Przedszkole
-=Eter=-
Witam! Mam pewien problem, a mianowicie: w bazie "download" mam tabelę "tabela" i dwie kolumny: "numer" i "plik". Chciałbym, aby skrypt php pobierał wartość "plik" a danego wiersz "numer". Mam oto taki kod:
  1. <?php
  2.  
  3. mysql_connect(&#092;"localhost\", \"konto\", \"haslo\") or die(\"Nie mozna sie polaczyc z MySQL\");
  4. mysql_select_db(&#092;"download\") or die(\"Nie mozna sie polaczyc z baza danych\");
  5. $dane = mysql_query(&#092;"SELECT plik FROM tabela WHERE numer='$id';\") or die(\"Nie mozna odnalezc danych pliku\");
  6. print $dane;
  7.  
  8. ?>

Jednak funkcja, zamiast zwracac np. wartość "plik.txt" zwraca: Resource id #3
Gdzie jest błąd? THX z góry za pomoc
Pozdro
nospor
O rajciu. Zaglądajcie czasem najpierw do manuala a potem zadawajcie pytania (mialem napisac glupie pytania ale sie powstrzymalem)
Cytat
mysql_query() zwraca identyfikator wyniku (lub FALSE w przypadku niepowodzenia) jedynie dla zapytań typu SELECT, SHOW, EXPLAIN i DESCRIBE. Dla innych zapytań SQL mysql_query() zwraca TRUE lub FALSE informując czy zapytanie zakończyło się sukcesem czy też nie. Jeśli nie została zwrócona wartość FALSE to znaczy, że zapytanie było prawidłowe i może być wykonane przez serwer. Nie mówi natomiast nic o liczbie przetworzonych lub zwróconych wierszy. Jest również możliwe, że zapytanie zostanie wykonane poprawnie, nie przetwarzając lub zwracając żadnych wierszy.

Cytat
Przyjmując, że zapytanie się powiodło, można użyć mysql_num_rows() by uzyskać informację o liczbie wierszy zwróconych w instrukcji SELECT, lub mysql_affected_rows() w celu uzyskania liczby wierszy przetworzonych przez instrukcje DELETE, INSERT, REPLACE i UPDATE.

Jedynie po operacjach SELECT, SHOW, EXPLAIN i DESCRIBE mysql_query() zwróci identyfikator wyniku, który można przekazać do funkcji mysql_fetch_array() lub innych funkcji operujących na tablicach wyników. Po wykonaniu operacji na wyniku, można zwolnić zasoby przez niego wykorzystywane wywołując mysql_free_result(). Po zakończeniu działania skryptu pamięć i tak będzie automatycznie zwolniona.
dasko
...
Przecież jakiekolwiek zapytanie pobierające nie zwraca i nigdy nie zwracało szukanych wartości, tylko odpowiedni zasób(albo FALSE w przypadku niepowodzenia) - więc nie ma żadnego błędu. Trzeba tylko ten zasób przekształcić do jakiejś struktury odczytywalnej - tablicy, obiektu.

Czyli możesz napisać tak:
  1. <?php
  2.  
  3. mysql_connect(&#092;"localhost\", \"konto\", \"haslo\") or die(\"Nie mozna sie polaczyc z MySQL\");
  4. mysql_select_db(&#092;"download\") or die(\"Nie mozna sie polaczyc z baza danych\");
  5. $dane = mysql_query(&#092;"SELECT plik FROM tabela WHERE numer='$id';\") or die(\"Nie mozna odnalezc danych pliku\");
  6. // do tablicy asocjacyjnej
  7. while($row = mysql_fetch_assoc($dane)) print $row['plik'];
  8.  
  9. ?>

Powinno działać snitch.gif

EDIT: Nie zauważyłem postu nospora, sorry smile.gif
-=Eter=-
Sorki, za niedoczytanie sad.gif
dasko: niestety, nie działa sad.gif
Pozdrawiam
nospor
a co ci nie dziala? wywala jakiś błąd? skrypt @dasko jest poprawny. Może Ci nic nie znalazł czyli nic nie wyswietla. moze nie ma numer o wartośc $id
-=Eter=-
Pogrzebałem trochę w kodzie i zastąpiłem $id przykładowo 1 i wtedy zadziałało. Wielkie dzięki za pomoc. Teraz mykam do szkoły, jak wrócę to pogrzebię biggrin.gif
Jeszcze raz THX, pozdro
lilik
  1. <?php
  2.  
  3. mysql_connect(&#092;"localhost\", \"konto\", \"haslo\") or die(\"Nie mozna sie polaczyc z MySQL\");
  4. mysql_select_db(&#092;"download\") or die(\"Nie mozna sie polaczyc z baza danych\");
  5. $dane = mysql_query(&#092;"SELECT plik FROM tabela WHERE numer='$id';\") or die(\"Nie mozna odnalezc danych pliku\");
  6. // do tablicy asocjacyjnej
  7. while($row = mysql_fetch_assoc($dane)) {
  8. print &#092;".$row['plik'].\";
  9. }
  10. ?>

moze tak zadziala ? winksmiley.jpg
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.