Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Dane z URL
Forum PHP.pl > Forum > Przedszkole
oz3h
Witam!
Chcę zrobić na swojej stronie że jak kliknę w dany link to pojawia mi się tekst. Napisałem coś takiego:
  1. <?php
  2. if ($result = mysql_fetch_assoc ($query)) {
  3. $file_id = $result['file_id'];
  4. $download = "file.php?id='.$file_id.'&download";
  5. if ($_GET[$download]) {
  6. print "Jakiś tekst";
  7. }
  8. }
  9. ?>


Nie wiem dlaczego ale to nie działa sad.gif

Link wygląda tak:
  1. <?php
  2. <a href="file.php?id='.$file_id.'&download">Link</a>
  3. ?>


Proszę o pomoc
JaRoPHP
Popraw linijkę z warunkiem:
  1. <?php
  2. if (isset($_GET['download'])) {
  3. print "Jakiś tekst";
  4. }
  5. ?>
oz3h
Niestety dalej nie działa ;(
Cysiaczek
  1. <?php
  2. &download=costam
  3. ?>


Jak widzisz musisz coś przypisac zmiennej, aby isset() zadziałało.

Pozdrawiam
oz3h
Dodałem
  1. <?php
  2. $download = "file.php?id='.$file_id.'&download=ok";
  3. ?>

I dalej nie działa ;(
Cysiaczek
Pokaż cały kod łacznie z tym, który generuje link, bo to musi działac.
ps. ten, aktualny kod i podaj dokładnie jakie pliki biora udział w zabawie.
oz3h
Kod pliku:
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <link type="text/css" href="template/style.css" rel="stylesheet" media="screen" />
  5. </head>
  6. <body>
  7.  
  8. <?php
  9. require_once('globals.php');
  10.  
  11.  
  12. $query = mysql_query ("SELECT * FROM files WHERE file_id =".$_GET['id']." ORDER BY file_id DESC");
  13. if ($result = mysql_fetch_assoc ($query)) {
  14. $file_id = $result['file_id'];
  15. $file_name = $result['file_name'];
  16. $file_description = $result['file_description'];
  17. $file_description2 = $result['file_description2'];
  18. $file_size = $result['file_size'];
  19. $file_licence = $result['file_licence'];
  20. $file_os = $result['file_os'];
  21. $file_producer = $result['file_producer'];
  22. $file_producer_link = $result['file_producer_link'];
  23. $file_lang = $result['file_lang'];
  24. $file_link = $result['file_link'];
  25. $file_screen = $result['file_screen'];
  26. $file_screen_width = $result['file_screen_width'];
  27. $file_screen_height = $result['file_screen_height'];
  28. $file_date = $result['file_date'];
  29.  
  30. print '<b><p class="title">'.$file_name. '</p></b>';
  31. print '<a href="'.$file_screen.'" target="_blank"><img src="'.$file_screen.'" width="'.$file_screen_width.'" height="'.$file_screen_height.'" title="Kliknij aby powiększyć" align="right" border="0"></a>';
  32. print 'Producent: <a href="'.$file_producer_link.'" target="_blank">'.$file_producer.'</a><br>';
  33. print "Licencja: ".$file_licence."<br>";
  34. print "System operacyjny: ".$file_os."<br>";
  35. print "Język: ".$file_lang."<br>";
  36. print "Wielkość: ".$file_size."<br>";
  37. print 'Data dodania: '.date('d.m.Y', strtotime($file_date)).'<br>';
  38. print "<br>"; 
  39. print "".$file_description."<br>";
  40. if ($result['file_description2']) {
  41. print "<br>";
  42. print "".$result['file_description2']."<br>";
  43. }
  44. print "<br>";
  45. print '<center><a href="file.php?id='.$file_id.'&download=ok"><img src="template/img/pobierz.jpg" border="0"></a></center>';
  46. }
  47. if ($result = mysql_fetch_assoc ($query)) {
  48. $file_id = $result['file_id'];
  49. $download = "file.php?id='.$file_id.'&download=ok";
  50. if (isset($_GET['$download'])) {
  51. print "Jakiś tekst";
  52. }
  53. } 
  54. ?>
  55.  
  56. </body>
  57. </html>
Cysiaczek
Już Ci JaRoPHP napisał, że nazwę klucza tablicy podajemy bez znaku dolara. ; )
Zmień to.
  1. <?php
  2. if (isset($_GET['$download'])) {
  3. ?>


Pozdrawiam
oz3h
Zrobiłem tak
  1. <?php
  2. if (isset($_GET['download'])) {
  3. ?>

I też nie pomogło :/
Cysiaczek
Podstawy, podstawy, podstawy.
  1. <?php
  2. $download = "file.php?id='.$file_id.'&download=ok";
  3. ?>


Widzisz apostrofy i cydzysłowia?
Tak się tego nie robi, bo robi się tak
  1. <?php
  2. $download = 'file.php?id='.$file_id.'&download=ok';
  3. ?>
kszychu
Proszę o poprawienie tematu wątku.
oz3h
Naprawdę nie wiem dlaczego tak się dzieje ale robiłem już na wszystkie sposoby które mi napisaliście i dalej nie działa ;(
nospor
Cytat
Naprawdę nie wiem dlaczego tak się dzieje ale robiłem już na wszystkie sposoby które mi napisaliście i dalej nie działa ;(

Pewnie dlatego ze nie stosujesz sie do wszystkich porad i próśb:
Cytat
Proszę o poprawienie tematu wątku.

No nic, zamkne ci topic bys mial czas na pomyslenie jak powinien wygladac tytul tematu, a odblokuje jak dostane PW z wlasciwą trescia smile.gif

edit: Otwieram
Cysiaczek
Przed linijką
  1. <?php
  2. $query = mysql_query ("SELECT * FROM files WHERE file_id =".$_GET['id']." ORDER BY file_id DESC");
  3. ?>

wpisz:
  1. <?php
  2. print '<pre>';
  3. print_r($_GET);
  4. print '</pre>';
  5. ?>


i napisz, ci się wyświetliło (jeśli cokolwiek)
oz3h
Na stronie "file.php?id=1":
  1. <?php
  2. (
  3. [id] => 1
  4. )
  5. ?>


Na stronie "file.php?id=1&download=ok":
  1. <?php
  2. (
  3. [id] => 1
  4. [download] => ok
  5. )
  6. ?>
nospor
przeciez on tego if ma w jeszcze jednym ifie:
  1. <?php
  2. if ($result = mysql_fetch_assoc ($query)) {
  3. $file_id = $result['file_id'];
  4. $download = "file.php?id='.$file_id.'&download=ok";
  5. if (isset($_GET['$download'])) {
  6. print "Jakiś tekst";
  7. }
  8. }
  9. ?>

Pewnie mu nie wchodzi bo do pierwszego nie wszedl. Kurka, punkty kontrolne robic!!!
  1. <?php
  2. echo 'przed pierwszy if';
  3. if ($result = mysql_fetch_assoc ($query)) {
  4. echo 'po pierwszy if';
  5. $file_id = $result['file_id'];
  6. $download = "file.php?id='.$file_id.'&download=ok";
  7. echo 'przed drugi if';
  8. if (isset($_GET['download'])) {
  9. print "w drugi if";
  10. }
  11. }
  12. ?>

tongue.gif
oz3h
Zrobiłem tak jak mi mówiłeś nospor i wyświetliło mi się tylko "przed pierwszy if"
Cysiaczek
Masz rację Nospor laugh.gif , ale ta zabawę chciałem koledze zlecić za chwilę... jak by się okazało, że w ogóle jest po co ją zlecać. : D
Do tego momentu eliminowaliśmy błędy ewidentnie uniemożliwiające jakakolwiek dalsza pracę :|

a teraz zamieniasz
  1. <?php
  2. if ($result = mysql_fetch_assoc ($query)) {
  3. ?>


na

  1. <?php
  2. while ($result = mysql_fetch_assoc ($query)) {
  3. ?>


i się cieszymy...a przynajmniej powinniśmy

Pozdrawiam.
oz3h
Próbowałem już na tyle sposobów, że pomału zaczyna mi się wydawać, że to co chcę osiągnąć robi się inaczej lecz nie mam innego pomysłu :/
nospor
Cytat
a teraz zamieniasz
Kod php1
2
3 <?php
if ($result = mysql_fetch_assoc ($query)) {
?>



na

Kod php1
2
3 <?php
while ($result = mysql_fetch_assoc ($query)) {
?>



i się cieszymy...a przynajmniej powinniśmy
A z czego tu sie cieszyc? Jak mu if nie dzialal to tym bardziej petla nie zadziala tongue.gif

Pewnie juz pobral wszystkie rekordy (az cale jeden) bo dal warunek na ID, a ID zazwczyaj jest jedno, a juz wczesniej pobieral. a teraz mu wytlumaczcie co ma zrobic bo ja juz musze leciec. chyba se poradzicie winksmiley.jpg
JaRoPHP
Fragment Twojego pliku @oz3h :
  1. <?php
  2. $query = mysql_query ("SELECT * FROM files WHERE file_id =".$_GET['id']." ORDER BY file_id DESC");
  3. if ($result = mysql_fetch_assoc ($query)) {
  4.  $file_id = $result['file_id'];
  5.  //...
  6. }
  7. if ($result = mysql_fetch_assoc ($query)) {
  8.  //...
  9.  if (isset($_GET['$download'])) {
  10. print "Jakiś tekst";
  11.  }
  12. } 
  13. ?>

Dwa razy wywołujesz funkcję mysql_fetch_assoc(), lecz za drugim razem (drugi if) nie otrzymujesz żadnego wyniku, ponieważ funkcja ta już pobrała wszystkie rekordy (w pierwszym warunku if). Dlatego sprawdzenie drugiego warunku if zawsze zwraca fałsz i program nigdy nie wchodzi do tej części kodu.
Czy na pewno musisz wywołać drugi raz funkcję mysql_fetch_assoc()? Proponuję skasować drugi warunek if, a jego zawartość (odpowiednią część) wkleić do warunku pierwszego, coś w stylu:
  1. <?php
  2. $query = mysql_query ("SELECT * FROM files WHERE file_id =".$_GET['id']." ORDER BY file_id DESC");
  3. if ($result = mysql_fetch_assoc ($query)) {
  4.  $file_id = $result['file_id'];
  5.  //...
  6.  //...
  7.  if (isset($_GET['download'])) {
  8. print "Jakiś tekst";
  9.  }
  10. } 
  11. ?>
oz3h
Wielkie dzięki Jaro guitar.gif W końcu udało mi się to zrobić smile.gif Do końca życia będę pamiętał o nie wywoływaniu 2x mysql_fetch_assoc
Można zamknąć temat.
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.