Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Id artykułu, a $_GET
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam.
Chcę zrobić takie coś:
Klikam na zakładkę artykuły i tam mi się wyświetlają rekordy w pętli, są postronicowane i teraz jak kliknę w tytuł to chcę, żeby wyświetlił mi więcej informacji na temat artykułu.
Tylko mam problem. Nie mogę tego zrobić.

medbooki.php

  1. <?php
  2. ini_set('error_reporting', E_ALL | E_STRICT);
  3. ini_set('display_errors', 'Off');
  4. ini_set('log_errors', 'On');
  5. ini_set('error_log', 'full-path-to-a-log-file');
  6. ?>
  7. <?php
  8. if (!isset($_SESSION['sprawdz']))
  9. {
  10. $_SESSION['sprawdz'] = true;
  11. }
  12. $connect = mysql_connect('localhost', 'root', 'pass') or die('Nie mo&#x17C;na poł&#x105;czyc si&#x119; z baz&#x105; danych. Przepraszamy za kłopoty');
  13. $db = mysql_select_db('db') or die('Nie mo&#x17C;na poł&#x105;czyc si&#x119; z baz&#x105; danych. Przepraszamy za kłopoty');
  14. stripslashes($zapytanie1 = 'SELECT `id` FROM `artykuly`');
  15. $idzapytania1 = mysql_query($zapytanie1);
  16. $subpage = $_GET['page'];
  17. $perPage = 2;
  18. $id = $_GET['id'];
  19. if (is_numeric($_REQUEST['subpage']))
  20. {
  21. $subpage = (int) $_REQUEST['subpage'];
  22. }
  23. if ($subpage < 1)
  24. {
  25. $subpage = 1;
  26. }
  27. $start = ($subpage - 1) * $perPage;
  28. stripslashes($zapytanie1 = 'SELECT `info`,`tytul`,`cena` FROM `artykuly` ORDER BY `id` DESC LIMIT '.$start.', '.$perPage.'');
  29. $idzapytania1 = mysql_query($zapytanie1);
  30. while ($wiersz = mysql_fetch_array($idzapytania1))
  31. {
  32. echo '<div style="text-align:center;"><a style="text-decoration: none;" href="?page=medbooki&amp;id='.$id.'">'.$wiersz[1].'</a></div><br />';
  33. echo '<div style="text-align:center;">OBRAZEK</div><br />';
  34. echo '<div style="text-align:center;">Cena: '.$wiersz[2].' PLN</div>';
  35. echo '<div style="text-align:center;"><a style="text-decoration: none;" href="index.php?page=dostep">Kup</a></div><br /><hr /><br />';
  36. }
  37. $prev = $subpage - 1;
  38. $next = $subpage + 1;
  39. $prevLink = $_SERVER['PHP_SELF'] . '?page=medbooki&amp;subpage=' . $prev;
  40. $nextLink = $_SERVER['PHP_SELF'] . '?page=medbooki&amp;subpage=' . $next;
  41. stripslashes($zapytanie2 = 'SELECT `info`,`tytul`,`cena` FROM `artykuly`');
  42. $idzapytania2 = mysql_query($zapytanie2);
  43. $ilosc_wierszy = mysql_num_rows($idzapytania2);
  44. echo '<div style="text-align:center;">';
  45. if($subpage > 1)
  46. echo'<a style="text-decoration: none;" href="'.$prevLink.'">Poprzednia strona</a> ';
  47. $stron=round($ilosc_wierszy/$perPage);
  48. for($i=1; $i<=$stron; ++$i)
  49. {
  50. if($i==$subpage)
  51. echo '<b>'.$i.'</b>';
  52. else
  53. echo '<a style="text-decoration: none;" href="?page=medbooki&amp;subpage='.$i.'">'.$i.'</a>';
  54. }
  55. if($subpage < $stron)
  56. echo ' <a style="text-decoration: none;" href="'.$nextLink.'">Nast&#x119;pna strona</a>';
  57. echo '</div>';
  58. mysql_close($connect);
  59. ?>


Wyświetlanie rekordów działa, stronicowanie również, ale nie definiuje mi zmiennej id.
Gdy klikam w tytuł to powstaje taki adres:

http://mojastrona.pl/index.php?page=kat&am...asdadad&id=

a powinno być tak:

http://mojastrona.pl/index.php?page=kat&am...sdadad&id=1
1=id artykułu w bazie danych wynosi 1

Proszę o pomoc smile.gif
Co tutaj jest źle?

EDIT:

Ok zrobiłem.
Tylko teraz jak zrobić, że jak kliknę w ten tytuł to pokaże mi zawartość tego artykułu?
Skrypt wygląda teraz tak:

  1. <?php
  2. ini_set('error_reporting', E_ALL | E_STRICT);
  3. ini_set('display_errors', 'Off');
  4. ini_set('log_errors', 'On');
  5. ini_set('error_log', 'full-path-to-a-log-file');
  6. ?>
  7. <?php
  8. if (!isset($_SESSION['sprawdz']))
  9. {
  10. $_SESSION['sprawdz'] = true;
  11. }
  12. $connect = mysql_connect('localhost', 'root', 'pass') or die('Nie mo&#x17C;na poł&#x105;czyc si&#x119; z baz&#x105; danych. Przepraszamy za kłopoty');
  13. $db = mysql_select_db('db') or die('Nie mo&#x17C;na poł&#x105;czyc si&#x119; z baz&#x105; danych. Przepraszamy za kłopoty');
  14. $idzapyt1 = mysql_query($zapyt1);
  15. $subpage = $_GET['page'];
  16. $perPage = 2;
  17. if (is_numeric($_REQUEST['subpage']))
  18. {
  19. $subpage = (int) $_REQUEST['subpage'];
  20. }
  21. if ($subpage < 1)
  22. {
  23. $subpage = 1;
  24. }
  25. $start = ($subpage - 1) * $perPage;
  26. stripslashes($zapytanie1 = 'SELECT `id`, `info`,`tytul`,`cena` FROM `artykuly` ORDER BY `id` DESC LIMIT '.$start.', '.$perPage.'');
  27. $idzapytania1 = mysql_query($zapytanie1);
  28. while ($wiersz = mysql_fetch_array($idzapytania1))
  29. {
  30. echo '<div style="text-align:center;"><a style="text-decoration: none;" href="?page=medbooki&amp;id='.$wiersz[0].'">'.$wiersz[1].'</a></div><br />';
  31. echo '<div style="text-align:center;">OBRAZEK</div><br />';
  32. echo '<div style="text-align:center;">Cena: '.$wiersz[2].' PLN</div>';
  33. echo '<div style="text-align:center;"><a style="text-decoration: none;" href="index.php?page=dostep">Kup</a></div><br /><hr /><br />';
  34. }
  35. $prev = $subpage - 1;
  36. $next = $subpage + 1;
  37. $prevLink = $_SERVER['PHP_SELF'] . '?page=medbooki&amp;subpage=' . $prev;
  38. $nextLink = $_SERVER['PHP_SELF'] . '?page=medbooki&amp;subpage=' . $next;
  39. stripslashes($zapytanie2 = 'SELECT `info`,`tytul`,`cena` FROM `artykuly`');
  40. $idzapytania2 = mysql_query($zapytanie2);
  41. $ilosc_wierszy = mysql_num_rows($idzapytania2);
  42. echo '<div style="text-align:center;">';
  43. if($subpage > 1)
  44. echo'<a style="text-decoration: none;" href="'.$prevLink.'">Poprzednia strona</a> ';
  45. $stron=round($ilosc_wierszy/$perPage);
  46. for($i=1; $i<=$stron; ++$i)
  47. {
  48. if($i==$subpage)
  49. echo '<b>'.$i.'</b>';
  50. else
  51. echo '<a style="text-decoration: none;" href="?page=medbooki&amp;subpage='.$i.'">'.$i.'</a>';
  52. }
  53. if($subpage < $stron)
  54. echo ' <a style="text-decoration: none;" href="'.$nextLink.'">Nast&#x119;pna strona</a>';
  55. echo '</div>';
  56. mysql_close($connect);
  57. ?>
Blame
Dajesz if'a który sprawdza czy jest ustawiony $_GET['id'] jeśli tak wyświetlasz artykuł jak nie to robisz to co teraz masz w skrypcie. Trochę masz ten kod zagmatwany więc mogę się mylić.
adrianozo
Jakieś sugestie?

Chyba masz racje. Tak muszę zrobić smile.gif
darko
EEeee... ja tak z innej beczki, co to daje:

  1. stripslashes($zapytanie1 = 'SELECT `id`, `info`,`tytul`,`cena` FROM `artykuly` ORDER BY `id` DESC LIMIT '.$start.', '.$perPage.'');
  2. $idzapytania1 = mysql_query($zapytanie1);


questionmark.gif Nie dość że nie stripujesz (funkcja zwraca łańcuch i nie działa jak referencja zwrotna), to jeszcze próbujesz użyć argumentu funkcji...

powinno być:
  1. $zapytanie1 = 'SELECT `id`, `info`,`tytul`,`cena` FROM `artykuly` ORDER BY `id` DESC LIMIT '.$start.', '.$perPage.''
  2. $idzapytania1 = mysql_query(stripslashes($zapytanie1));


A co to
$idzapyt1 = mysql_query($zapyt1);

robi? Co to jest $zapyt1 questionmark.gif

Popraw ten horror, nic dziwnego, że nie działa... porób wcięcia w kodzie (tego co jest teraz nie da się czytać), usuń to, co jest niepotrzebne i jeszcze raz pokaż cały uporządkowany kod jak wygląda.
adrianozo
Cytat(darko @ 29.11.2009, 20:50:12 ) *
A co to
$idzapyt1 = mysql_query($zapyt1);
robi? Co to jest $zapyt1 questionmark.gif


Zapomniałem tego po prostu usunąć.

Nie wiem za bardzo w które miejsce tego if'a wrzucić blinksmiley.gif
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.