Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z wynikiem - MySQL
-=Eter=-
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.06.2005
Skąd: Leszno City

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.
Go to the top of the page
+Quote Post
dasko
post
Post #3





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 9.11.2004

Ostrzeżenie: (0%)
-----


...
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ć (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

EDIT: Nie zauważyłem postu nospora, sorry (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował dasko 20.06.2005, 07:51:50
Go to the top of the page
+Quote Post
-=Eter=-
post
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.06.2005
Skąd: Leszno City

Ostrzeżenie: (0%)
-----


Sorki, za niedoczytanie (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
dasko: niestety, nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Go to the top of the page
+Quote Post
-=Eter=-
post
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.06.2005
Skąd: Leszno City

Ostrzeżenie: (0%)
-----


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ę (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Jeszcze raz THX, pozdro
Go to the top of the page
+Quote Post
lilik
post
Post #7





Grupa: Zarejestrowani
Postów: 66
Pomógł: 5
Dołączył: 17.03.2005

Ostrzeżenie: (0%)
-----


  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 ? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 20:51