Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z wynikiem - MySQL
-=Eter=-
post 20.06.2005, 07:14:22
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 20.06.2005, 07:47:51
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dasko
post 20.06.2005, 07:50:38
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ć snitch.gif

EDIT: Nie zauważyłem postu nospora, sorry smile.gif

Ten post edytował dasko 20.06.2005, 07:51:50
Go to the top of the page
+Quote Post
-=Eter=-
post 20.06.2005, 07:54:47
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 sad.gif
dasko: niestety, nie działa sad.gif
Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post 20.06.2005, 07:58:17
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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-=Eter=-
post 20.06.2005, 08:00:13
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ę biggrin.gif
Jeszcze raz THX, pozdro
Go to the top of the page
+Quote Post
lilik
post 20.06.2005, 09:34:23
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 ? winksmiley.jpg
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 11:02