Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dział download problem
Forum PHP.pl > Forum > Przedszkole
daro82
Witam jestem zupelnie zielony dopiero zaczynamy przygode z php i mysql mam prosbe o pomoc musze stworzyc baze w mysql plikow z rozszerzeniem doc i pdf zeby mozna je było ściągnać ze strony. Czekam na podpowiedzi jakies skrypty lub linki do artykułów na ten temat z góry dziekuje aarambo.gif
NetJaro
Tworzysz tabele z polami: id, nazwa, plik. Wypełniasz, np.:
1 | Cesja domeny | cesja_domeny.doc

Potem przez php wykonujesz zapytanie czytające dane z tej bazy i w pętki while (której użyjesz winksmiley.jpg ) dajesz odpowiednie echo (tzn. wyświetlasz link, <a href [..]).
daro82
Cytat(NetJaro @ 30.07.2006, 16:38 ) *
Tworzysz tabele z polami: id, nazwa, plik. Wypełniasz, np.:
1 | Cesja domeny | cesja_domeny.doc

Potem przez php wykonujesz zapytanie czytające dane z tej bazy i w pętki while (której użyjesz winksmiley.jpg ) dajesz odpowiednie echo (tzn. wyświetlasz link, <a href [..]).

Pewnie będę pytał o banlna sprawy ale czy pole plik ma być zwykłym tesktowym polemgdzie bedize wpisana nazwa pliku z rozszeżeniem z palca?

I jeszcze mam pyatnko do tej 2 cześci jak mam uzyc tej petli while jeżeli mogł bys mi pomoc.
generelnie chodzi mi o to zeby uzytkownik mogł wybrac sobie z 1 okna 1 z baz np kaset wideo i wtedy zeby mu sie wyswietlily linki spisow do pobrania a gdy jest jeden zeby wyskoczylo okno do pobrania(jak mam to zrobic)
z góry dzieki i tak juz mi duzo pomogleś
=kokos=
Zakładając że baze już masz, dajmy na to o nazwie wideo, a wniej tabelę dajmy na to o nazwie filmy. Pliki pdf czy doc przechowujesz w katalogu o nazwie download.

Struktura tabeli filmy

ID | nazwa | plik

Pole plik to zwykłe pole tekstowe i tam wpisujesz nazwę pliku wraz z rozszerzeniem.

  1. <?php
  2. //dane do polaczenia MySQL
  3. //nazwa serwera, standardowo localhost
  4. $serwer = 'localhost';
  5. //uzytkownik bazy danych
  6. $uzytkownik = 'root'; //twoja nazwa uzutkownika
  7. //haslo uzytkownika bazy danych
  8. $haslo = ''; //twoje hasło
  9. //nazwa dazy danych w ktorej beda zainstalowane tabele
  10. $baza = 'wideo';
  11.  
  12. //funkcja laczaca z baza
  13. if(!@mysql_connect($serwer, $uzytkownik, $haslo)) die('Złe dane do połaczenia!');
  14. //wybranie bazy
  15.  
  16. //zapytanie
  17.  
  18. $wynik = mysql_query ('SELECT * FROM filmy;') or
  19. die ('błąd w pytaniu');
  20.  
  21. //wyświetlenie wyniku
  22. echo '<table>';
  23. while ($wiersz = mysql_fetch_assoc ($wynik))
  24. {
  25. echo '<tr><td>';
  26. echo $wiersz['nazwa'];
  27. echo '<td>';
  28. echo '<a href="download/'.$wiersz['plik'].'">'.$wiersz['plik'].'</a>';
  29. }
  30. echo '</table>';
  31. ?>
daro82
Cytat(=kokos= @ 8.08.2006, 00:22 ) *
Zakładając że baze już masz, dajmy na to o nazwie wideo, a wniej tabelę dajmy na to o nazwie filmy. Pliki pdf czy doc przechowujesz w katalogu o nazwie download.

Struktura tabeli filmy

ID | nazwa | plik

Pole plik to zwykłe pole tekstowe i tam wpisujesz nazwę pliku wraz z rozszerzeniem.

  1. <?php
  2. //dane do polaczenia MySQL
  3. //nazwa serwera, standardowo localhost
  4. $serwer = 'localhost';
  5. //uzytkownik bazy danych
  6. $uzytkownik = 'root'; //twoja nazwa uzutkownika
  7. //haslo uzytkownika bazy danych
  8. $haslo = ''; //twoje hasło
  9. //nazwa dazy danych w ktorej beda zainstalowane tabele
  10. $baza = 'wideo';
  11.  
  12. //funkcja laczaca z baza
  13. if(!@mysql_connect($serwer, $uzytkownik, $haslo)) die('Złe dane do połaczenia!');
  14. //wybranie bazy
  15.  
  16. //zapytanie
  17.  
  18. $wynik = mysql_query ('SELECT * FROM filmy;') or
  19. die ('błąd w pytaniu');
  20.  
  21. //wyświetlenie wyniku
  22. echo '<table>';
  23. while ($wiersz = mysql_fetch_assoc ($wynik))
  24. {
  25. echo '<tr><td>';
  26. echo $wiersz['nazwa'];
  27. echo '<td>';
  28. echo '<a href="download/'.$wiersz['plik'].'">'.$wiersz['plik'].'</a>';
  29. }
  30. echo '</table>';
  31. ?>



masz racje dziala te twoje roziwazanie ale nie jescze tak jak potrzeba gdyz wysiwetlaja sie dane tylko z 1 tabeli a ja mam 3 tabele a chcicalbym zrobic tak zebym mogl z okna wybrac sobie nazwe tabeli np flimy albo bajki wtedy w oknie obok odpowiednio pokazywaly by sie filmy albo bajki i po wyborze tytulu zebym mogl je sciagnac czy masz moze jakis pomysl na takie roziwazanie? Z góry dzieki i sorry za klopot :roll2:
=kokos=
można to zrobić na wiele sposobów, ja bym chyba wybrał jednak formularzyk z polami <select> i tam wstawił nazwy tabel. Później stworzył takie o to zapytanie

  1. <?php
  2. $sql = ("SELECT * FROM '".$wybor['POST']."'"); // gdzie wybór to nazwa formularza
  3. ?>


a później po wysłaniu formularza wyświetlił to co zostało zaznaczone
daro82
Cytat(=kokos= @ 11.08.2006, 20:15 ) *
można to zrobić na wiele sposobów, ja bym chyba wybrał jednak formularzyk z polami <select> i tam wstawił nazwy tabel. Później stworzył takie o to zapytanie

  1. <?php
  2. $sql = ("SELECT * FROM '".$wybor['POST']."'"); // gdzie wybór to nazwa formularza
  3. ?>


a później po wysłaniu formularza wyświetlił to co zostało zaznaczone


Wiem ze zadaje banalne pytania ale gdzie mam wstawic tego twojego selcta zeby mi tak dzialalo? mam modyfikowac ten wyzej czy stworzyc cos zupelnie innego z gory dzieki :roll2:
=kokos=
Możesz zmodyfikować ten co podałem Tobie wyżej smile.gif

  1. <?php
  2. require('polacz.php');
  3.  
  4. $sql = mysql_query("show tables;");
  5.  
  6. $ile = mysql_num_rows($sql);
  7.  
  8. echo '<br />';
  9.  
  10. echo '<form method="post">';
  11. echo '<select name="wybor">';
  12.  
  13. for($i=0; $i <$ile; $i++)
  14. {
  15. $wiersz = mysql_fetch_assoc($sql);
  16. echo '<option>'.$wiersz['Tables_in_baza'].'</option>'; //tutaj podajesz nazwę bazy. Tables_in_nazwa.bazy
  17. }
  18. echo '</select>';
  19. echo '<input type=submit value=Pokaż>';
  20. echo '</form>';
  21.  
  22. if($_POST['wybor']) 
  23. {
  24.  
  25.  $wynik = mysql_query ('SELECT * FROM '.$_POST['wybor'].';') or
  26. die ('błąd w pytaniu');
  27.  
  28. //wyświetlenie wyniku
  29.  echo '<table border=1>';
  30.  while ($wiersz = mysql_fetch_assoc ($wynik))
  31.  {
  32.  echo '<tr><td>';
  33.  echo $wiersz['nazwa'];
  34.  echo '<td>';
  35.  echo '<a href="download/'.$wiersz['plik'].'">'.$wiersz['plik'].'</a>';
  36.  }
  37.  echo '</table>';
  38.  
  39. }
  40. else {}
  41. ?>
daro82
Cytat(=kokos= @ 11.08.2006, 23:43 ) *
Możesz zmodyfikować ten co podałem Tobie wyżej smile.gif

  1. <?php
  2. require('polacz.php');
  3.  
  4. $sql = mysql_query("show tables;");
  5.  
  6. $ile = mysql_num_rows($sql);
  7.  
  8. echo '<br />';
  9.  
  10. echo '<form method="post">';
  11. echo '<select name="wybor">';
  12.  
  13. for($i=0; $i <$ile; $i++)
  14. {
  15. $wiersz = mysql_fetch_assoc($sql);
  16. echo '<option>'.$wiersz['Tables_in_baza'].'</option>'; //tutaj podajesz nazwę bazy. Tables_in_nazwa.bazy
  17. }
  18. echo '</select>';
  19. echo '<input type=submit value=Pokaż>';
  20. echo '</form>';
  21.  
  22. if($_POST['wybor']) 
  23. {
  24.  
  25.  $wynik = mysql_query ('SELECT * FROM '.$_POST['wybor'].';') or
  26. die ('błąd w pytaniu');
  27.  
  28. //wyświetlenie wyniku
  29.  echo '<table border=1>';
  30.  while ($wiersz = mysql_fetch_assoc ($wynik))
  31.  {
  32.  echo '<tr><td>';
  33.  echo $wiersz['nazwa'];
  34.  echo '<td>';
  35.  echo '<a href="download/'.$wiersz['plik'].'">'.$wiersz['plik'].'</a>';
  36.  }
  37.  echo '</table>';
  38.  
  39. }
  40. else {}
  41. ?>



kolejne banalne pytanie ale tak to juz jest ze mna ten skrypt mam urzyc w calosci zamista tamtych czy go wklejc w konkretne miejsce napisz mi co i jak bo jestem zielony ale z gory dziki mas zu mnie piwo podaj adres to ci wysle:) jak zadziala:)
=kokos=
Ten skrypt jest już przerobiony i możesz go dać zamiast tamtego smile.gif powinien działać.

P.S. Pamiętaj, że ten skrypt wyświetli Ci w polach option wszystkie tabele jakie masz w bazie. Więc jęsli będziesz miał więcej niż te które chcesz wyświetlić też one tam się pojawią winksmiley.jpg

P.S.2 Piwo hmmm cool.gif laugh.gif

Aha jeszcze jedno. Linijka
  1. <?php
  2. reqire('polacz.php')
  3. ?>
jest tutaj zamiast tego całego łączenia się z serverem mysql i bazą. Stwórz sobie plik o nazwie polacz.php i umieść tam ten kod

  1. <?php
  2. //dane do polaczenia MySQL
  3. //nazwa serwera, standardowo localhost
  4. $serwer = 'localhost';
  5. //uzytkownik bazy danych
  6. $uzytkownik = 'root'; //twoja nazwa uzutkownika
  7. //haslo uzytkownika bazy danych
  8. $haslo = ''; //twoje hasło
  9. //nazwa dazy danych w ktorej beda zainstalowane tabele
  10. $baza = 'wideo';
  11. ?>


zamiast za kazdym razem to pisać po prostu wpisz require('polacz.php');
daro82
  1. <?php
  2. require('polacz.php')
  3. ?>
  4. <?php
  5.  
  6. $sql = mysql_query("show tables;");
  7.  
  8. $ile = mysql_num_rows($sql);
  9.  
  10. echo '<br />';
  11.  
  12. echo '<form method="post">';
  13. echo '<select name="wybor">';
  14.  
  15. for($i=0; $i <$ile; $i++)
  16. {
  17. $wiersz = mysql_fetch_assoc($sql);
  18. echo '<option>'.$wiersz
  19. ['Tables_in_baza'].'</option>';
  20. }
  21. echo '</select>';
  22. echo '<input type=submit value=Pokaż>';
  23. echo '</form>';
  24.  
  25. if($_POST['wybor'])
  26. {
  27.  
  28.  $wynik = mysql_query ('SELECT * FROM '.$_POST['wybor'].';') or
  29. die ('błąd w pytaniu');
  30.  
  31.  
  32.  echo '<table border=1>';
  33.  while ($wiersz = mysql_fetch_assoc ($wynik))
  34.  {
  35.  echo '<tr><td>';
  36.  echo $wiersz['nazwa'];
  37.  echo '<td>';
  38.  echo '<a href="download/'.$wiersz['plik'].'">'.$wiersz['plik'].'</a>';
  39.  }
  40.  echo '</table>';
  41. }
  42. else {}
  43. ?>

po uzyciu twojego skryptu pojawia mi sie ramka do wybierania ale jest pusta i przycisk pokaz ale nic poza tym.
Wyskakuje mi taki blad Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in i ze on jest w lini 17 skryptu a ona wygada nastepujaco $ile = mysql_num_rows($sql);
Czekam na pomoc i jescze raz wielkie dzieki :roll2:
=kokos=
Błąd, który Ci wywala
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource ... dry.gif
oznacza, że coś źle masz w zapytaniu. Tutaj tyczy się to zapytania w zmiennej $sql. Jeśli jest ono takie jak podałeś to powinno wszystko działać ok. Sprawdziłem ten skrypt, który podałem wcześniej i działa tak jak powinien. Ten błąd jest przyczyną tego, że nic się nie wyświetla. Do pętli for nie dopisuje wartości ze zmiennej $ile i przez to nie wykonuje się ona ani razu. Przeanalizuj jeszcze raz skrypt i porównaj go z tym, który Ci podałem, jeśli nie będzie dalej działać to się odezwij: 4843179 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.