Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]problem ze stronicowaniem elementów, problem ze stronicowaniem el. wybranych na podstawie kategorii-listy
czarnaowca777
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 17.03.2012

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


Witam
Mam na stronie element - rozwijaną listę, do której wczytuję elementy - kategorie z bazy i na jej podstawie wyświetlam artykuły z danej kategorii.
Po wybraniu kategorii wyświetlam artykuły stronicując je np. po 5 na stronie tylko że to nie działa, bo po dołączeniu stronicowania okazuje się,
że przecież wybierając kolejną stronę artykułów z danej kategorii strona się przeładowuje i już nie wie co było wybrane z listy (jaka kategoria).
Czy możecie mi jakoś dać pomysł (a jak to wymaga większej wiedzy, której nie posiadam to chociaż mniej-więcej wytłumaczyć gdzie szukać rozwiązania) i jak doprowadzić to do ładu i składu?

ps.Jeżeli potrzeba fragment kodu celem zobaczenia co z tym zrobić można to wkleję no ale to jest stronicowanie które przed dodaniem listy działało i zwykła rozwijana lista z przyciskiem submit, która też działa tylko w połączeniu ze stronicowaniem nie ma sensu...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Ruch Radzionków
post
Post #2





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


pokażesz kod (IMG:style_emoticons/default/questionmark.gif) bo bez kodu to mogę zmyślac co tam może byc

Ten post edytował Ruch Radzionków 17.03.2012, 19:12:23
Go to the top of the page
+Quote Post
czarnaowca777
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 17.03.2012

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


wklejam całość ale oznaczyłam mniej więcej co gdzie czym jest bo trochę tam chaos...

Kod
// to poniżej wyświetla rozwijaną listę kategorii do wyboru


$zapytan=mysql_query('SELECT * FROM kategorie ORDER BY id DESC');
echo "<form method=\"get\">";
echo "<select class=\"element select medium\" id=\"element_7\" name=\"element_7\">";
echo " <option value=\"\" selected=\"selected\">Wybierz kategorię i potwierdź wybór aby wyświetlić</option>";
while ($option=mysql_fetch_assoc($zapytan)){
echo '<option value="'.$option['nazwa'].'">'.$option['nazwa'].'</option>';}
echo "</select>";
echo "<input id=\"saveForm\" class=\"button_text\" type=\"submit\" name=\"submit\" value=\"Ok\" />";
echo "</form>";


if (isset($_GET["submit"])){
if (empty($_GET["element_7"])){
    echo "<p style=\"color:red; font-size:17px\"><b>Musisz wybrać kategorię z listy aby wyświetlić artykuły !</b></p>";}
else{


// to poniżej jeżeli użytkownik wcisnął wcześniej submit i wybrał kategorię  wyświetla artykuły z wybranej z listy kategorii po 2 na stronie, jak ich więcej ogółem to je stronicuje


$wybor = isset($_GET['element_7']) && !empty($_GET['element_7']) ? $_GET['element_7'] : '';
@mysql_query("SET NAMES 'utf8';");
if(isset($_GET['page'])) $subpage = $_GET['page']; else $subpage = '';
$perPage = 2;
if (!empty($_GET['subpage']) && (is_numeric($_GET['subpage'])))
{
$subpage = (int) $_GET['subpage'];
}
if ($subpage < 1)
{
$subpage = 1;
}
@mysql_query("SET NAMES 'utf8';");
$start = ($subpage - 1) * $perPage;
$zapytanie = "SELECT * FROM `artykuły`  WHERE kategoria='".$wybor."' ORDER BY `DATA` DESC LIMIT ".$start.", ".$perPage."";
$idzapytania = @mysql_query($zapytanie);
$max_zapytanie = "SELECT * FROM `artykuły` WHERE kategoria='".$wybor."' "; // żeby się pozbyć głupiego limitu [ustalamy max stron]
$max_idzapytania = mysql_query($max_zapytanie);
if(mysql_real_escape_string((!isset($_GET['id'])) or empty($_GET['id'])))
{
while ($wiersz = @mysql_fetch_array($idzapytania))
{


//tutaj to tylko " śmieci" tzn. część odpowiedzialna za to jak się wyświetlają te artykuły;)


   $id=$wiersz['id'];
   echo "<table border=\"0px\" width=\"770px\" background=\"nawigacja/b2.jpg\">";
   echo "<img src=\"top.png\">";
   echo "<tr><td width=\"700px\"  background=\"nawigacja/b1.jpg\"><p title=\"Nagłówek\"><u>".$wiersz['tresc']."</u></p></td>
   <td><form>
   <input type=\"button\" onclick=\"usunWpis($id)\" value=\"Usuń\" />
   </form>
   </td>
   <td><a href=\"edytuj_artykul.php?id=$id\"><img src=\"nawigacja/ed.png\" title=\"Edytuj\" align=\"middle\"></a></td></tr>";
   echo "</table>";
   echo "<table border=\"0px\" width=\"770px\" background=\"nawigacja/b2.jpg\">";
   echo "<tr><td background=\"nawigacja/b1.jpg\"><p title=\"Treść - aby edytować kliknij przycisk w prawym górnym rogu ramki\">
   <i>".$wiersz['tresc']."</i><br /><br /></td></tr>";
   echo "</table>";
   echo "<table border=\"0px\" width=\"770px\" background=\"nawigacja/b2.jpg\">";
   echo "<tr><td background=\"nawigacja/b1.jpg\"><p title=\"ID newsa\"><b>ID:</b> ".$wiersz['id']."</p></td>
   <td align=\"right\" background=\"nawigacja/b1.jpg\">
   <p title=\"data dodania\">".$wiersz['data']."</p></td></tr>";
          echo "</table>";
     echo "        <img src=\"bottom.png\">";
    echo "<br />";
   echo "<br />";

   }
   }


//ciąg dalszy stronicowania poniżej:


$prev = $subpage - 1;
$next = $subpage + 1;
$prevLink = 'przegladaj_artykuly.php?page='.$prev;
$nextLink = 'przegladaj_artykuly.php?page='.$next;
$ilosc_wierszy = mysql_num_rows($max_idzapytania);
if($subpage > 1)
echo'<center><a style="text-decoration: none;" href="'.$prevLink.'">Poprzednia strona</a></center> ';
$stron=round($ilosc_wierszy/$perPage);
echo "<div align=\"center\">";
for($i=1; $i<=$stron; ++$i)
{
if($i==$subpage)
echo $i;
else
echo '<a style="text-decoration: none;" href="przegladaj_artykuly.php?page='.$i.'">'.$i.' </a>';
}
if($subpage < $stron)
echo ' <a style="text-decoration: none;" href="'.$nextLink.'">Następna strona</a>';
echo "<br /><a href=\"admin.php\"><img src=\"nawigacja/home.jpg\"></a>";
echo "</div>";
mysql_close();}}
?>


Ten post edytował czarnaowca777 17.03.2012, 19:21:47
Go to the top of the page
+Quote Post
Ruch Radzionków
post
Post #4





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


niech stracę podam ci moje stronnicowanie
  1. define('MAXPAGE', 25);
  2. $pok = mysql_query("SELECT COUNT(*) FROM users ORDER BY id");
  3. list($max) = mysql_fetch_row($pok);
  4. $total = ceil($max / MAXPAGE);
  5. $page = intval(@$_GET["page"]);
  6. if(0 == $page)
  7. {
  8. $page = 1;
  9. }
  10. $start = MAXPAGE * ($page - 1);
  11. $full = MAXPAGE;
  12. $obej = mysql_query("SELECT * FROM users ORDER BY id limit $start, $full");
  13. while(list($id, $login, $haslo, $mail, $status, $langs, $data, $admin, $oficjalne) = mysql_fetch_row($obej))
  14. {
  15.  
  16. }
  17. if($_GET[page] == '')
  18. {
  19. $strona = '1';
  20. }
  21. else
  22. {
  23. $strona = $_GET[page];
  24. }
  25. $poprzedniastrona = $_GET[page] - 1;
  26. if($_GET[page] == '')
  27. {
  28. $nastepnastrona = '2';
  29. }
  30. else
  31. {
  32. $nastepnastrona = $_GET[page] + 1;
  33. }
  34. echo'</table>';
  35. if($total == '0')
  36. {
  37.  
  38. }
  39. else
  40. {
  41. echo'<table align="center">
  42. <tr>
  43. <td>';
  44. if(($_GET[page] == '1') || ($_GET[page] == ''))
  45. {
  46. }
  47. else
  48. {
  49. echo'<a href="index.php?event=users&page=1"><input type="submit" value="'.$lang[pierwszastronakatalog].'"></a><a href="index.php?event=users&page='.$poprzedniastrona.'"><input type="submit" value="'.$lang[poprzedniastronakatalog].'"></a>';
  50. }
  51. echo $lang[stronakatalog]; echo $strona; echo $lang[zkatalog]; echo $total;
  52. if($strona == $total)
  53. {
  54.  
  55. }
  56. else
  57. {
  58. echo'<a href="index.php?event=users&page='.$nastepnastrona.'"><input type="submit" value="'.$lang[nastepnastronakatalog].'"></a><a href="index.php?event=users&page='.$total.'"><input type="submit" value="'.$lang[ostatniastronakatalog].'"></a>';
  59. }
  60. echo'</td>
  61. </tr>
  62. </table>';
  63. }

define('MAXPAGE', 25); oznacza ile zapytań ma się znaleśc na jednej stronie

sobie to zmień
bo to jest z mojej strony
po prostu na tej samej stronie wyświetla ci to co chcesz tylko na samym końcu jest &page= czyli ktura strona

i daj pomógł

Ten post edytował Ruch Radzionków 17.03.2012, 19:34:48
Go to the top of the page
+Quote Post
czarnaowca777
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 17.03.2012

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


Kod
    <input type="submit" value="'.$lang[pierwszastronakatalog].'"></a>
    <a href="przegladaj_artykuly.php?event=users&page='.$poprzedniastrona.'">

Czy mógłbyś mi powiedzieć jak działa to event=users&page?
Ja jestem jeszcze średnio oświeconym człowiekiem w tym temacie więc jak już kopiuję prawie gotowca to chociaż czegoś się nauczyć bym chciała przy tym (IMG:style_emoticons/default/wink.gif)
No i ciągle mi wywala że : Use of undefined constant page - assumed 'page' in (...)
i Undefined index: page in (...)
oraz Use of undefined constant stronakatalog - assumed 'stronakatalog' in (...) - nie bardzo rozumiem mam to czymś zastąpić to "stonakatalog" - co to robi ? tam ma być ścieżka do czegoś?

do page dodałam apostrofy i mu przeszło ale za to się czepia Undefined variable: lang


aha i tak z innej beki trochę
mój link wygląda tak : przegladaj_artykuly.php?element_7=nazwakategorii&submit=Ok
Przy czym element_7 to jest pobrana z listy kategoria... nie wiem - tak ma być? ty miałeś tam users ale moja baza to "artykuły" więc zamieniłam analogicznie i wyszły takie klocki.

Ten post edytował czarnaowca777 17.03.2012, 20:48:54
Go to the top of the page
+Quote Post
Ruch Radzionków
post
Post #6





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


to jest link nie muszisz miec event=user tylko tam zastepujesz to swoim linkiem tak jak masz na php.pl taki link:
index.php?showtopic=195401
to muszisz to zmienic na swoj link jaki jest otwarty ta strona
Go to the top of the page
+Quote Post
czarnaowca777
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 17.03.2012

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


a co z tym lang - Undefined variable: lang
Gdzie to zdefiniować i jako co?
Kod
  echo $lang['stronakatalog']; echo $strona; echo $lang['zkatalog']; echo $total;
    if($strona == $total)
    {
    
    }
    else
    {
    echo'<a href="przegladaj_artykuly.php?&page="'.$nastepnastrona.'"><input type="submit" value="'.$lang['nastepnastronakatalog'].'"></a
    <a href="przegladaj_artykuly.php?&page='.$total.'"><input type="submit" value="'.$lang['ostatniastronakatalog'].'"></a>';

Go to the top of the page
+Quote Post
Ruch Radzionków
post
Post #8





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


zamiast tego
  1. echo $lang['stronakatalog']; echo $strona; echo $lang['zkatalog']; echo $total;

zrób tak
  1. echo'Strona'; echo $strona; echo ' z '; echo $total;
Go to the top of the page
+Quote Post
czarnaowca777
post
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 17.03.2012

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


Kod
@mysql_query("SET NAMES 'utf8';");
define('MAXPAGE', 1);
    $pok = mysql_query("SELECT COUNT(*) FROM users ORDER BY id");
    list($max) = mysql_fetch_row($pok);
    $total = ceil($max / MAXPAGE);
    $page = intval(@$_GET["page"]);
    if(0 == $page)
    {
    $page = 1;
    }
    $start = MAXPAGE * ($page - 1);
    $full = MAXPAGE;
    $obej = mysql_query("SELECT * FROM users ORDER BY id limit $start, $full");
    while(list($id, $login, $haslo, $mail, $status, $langs, $data, $admin, $oficjalne) = mysql_fetch_row($obej))
    {
     echo "$id <br/>";
     echo "$login <br/>";
     echo "$haslo <br/>";
    }
    if($_GET['page'] == '')
    {
    $strona = '1';
    }
    else
    {
    $strona = $_GET['page'];
    }
    $poprzedniastrona = $_GET['page'] - 1;
    if($_GET['page'] == '')
    {
    $nastepnastrona = '2';
    }
    else
    {
    $nastepnastrona = $_GET['page'] + 1;
    }
    echo'</table>';
    if($total == '0')
    {
    
    }
    else
    {
    echo'<table align="center">
    <tr>
    <td>';
    if(($_GET['page'] == '1') || ($_GET['page'] == ''))
    {
    }
    else
    {
    echo'<a href="test.php?event=users&page=1"><input type="submit" value="'.$lang[pierwszastronakatalog].'">
    </a><a href="test.php?event=users&page='.$poprzedniastrona.'"><input type="submit" value="'.$lang[poprzedniastronakatalog].'"></a>';
    
    }
    echo'Strona'; echo $strona; echo ' z '; echo $total; echo "</br";
    if($strona == $total)
    {
    
    }
    else
    {
  echo'<a href="test.php?event=users&page='.$nastepnastrona.'"><input type="submit" value="'.$lang[nastepnastronakatalog].'"></a>
  <a href="test.php?event=users&page='.$total.'"><input type="submit" value="'.$lang[ostatniastronakatalog].'"></a>';
    }
    echo'</td>
    </tr>
    </table>';
    }
    ?>


A więc mam coś takiego,

Notice: Undefined index: page in C:\...\test.php on line 33

Notice: Undefined index: page in C:...\test.php on line 41

Notice: Undefined index: page in C:\...\test.php on line 42

Notice: Undefined index: page in C:\...\test.php on line 60

Notice: Use of undefined constant nastepnastronakatalog - assumed 'nastepnastronakatalog' in C:\...\test.php on line 76

Notice: Undefined variable: lang in C:\...\test.php on line 76

Notice: Use of undefined constant ostatniastronakatalog - assumed 'ostatniastronakatalog' in C:\...\test.php on line 77

Notice: Undefined variable: lang in C:\...\test.php on line 77

Nie bardzo ogarniam te błędy, bo mając 4 rekordy w testowej bazie users i rozmieszczając je po 1 na stronie mam taki efekt, że kliknięcie przycisku następna strona od razu przenosi do ostatniej
bedąc na ostatniej klikam wstecz i jestem na stronie 1
Gdy jestem na 4 klikam następną i jestem na str 3 a tam z dwóch robią się 4 przyciski...
value na przyciskach nie działa.
Czy tobie to działa poprawnie? bo poza tą wskazówką i dodaniem do page apostrofów bo wywalało błąd to nic nie zmieniałam

No i jeszcze to mówiłeś że to będzie jakby na jednej stronie tak, bez odświerzania jeśli dobrze rozumiem a tu też jest page1, page2 itd - jak to ma działać ? To mi zadziała z listą o której wcześniej pisałam?
Czym to się różni zasadniczo od mojego stronicowania?





Go to the top of the page
+Quote Post
Ruch Radzionków
post
Post #10





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


mój kod działa w 100% to po 1 a po 2 pokaz cały kod bo nie wiem w jakiej linijce co się znajduje
Go to the top of the page
+Quote Post
czarnaowca777
post
Post #11





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 17.03.2012

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


Kod
<?php
$adres_ip_serwera_mysql_z_baza_danych = '127.0.0.1';
$nazwa_bazy_danych = 'nazwa';
$login_bazy_danych = '';
$haslo_bazy_danych = '';
if ( !mysql_connect($adres_ip_serwera_mysql_z_baza_danych,$login_bazy_danych,$haslo_bazy_danych) ) {
   echo 'Nie moge polaczyc sie z baza danych';
     exit (0);
}
if ( !mysql_select_db($nazwa_bazy_danych) ) {
   echo 'Blad otwarcia bazy danych';
     exit (0);
}
@mysql_query("SET NAMES 'utf8';");
define('MAXPAGE', 1);
    $pok = mysql_query("SELECT COUNT(*) FROM users ORDER BY id");
    list($max) = mysql_fetch_row($pok);
    $total = ceil($max / MAXPAGE);
    $page = intval(@$_GET["page"]);
    if(0 == $page)
    {
    $page = 1;
    }
    $start = MAXPAGE * ($page - 1);
    $full = MAXPAGE;
    $obej = mysql_query("SELECT * FROM users ORDER BY id limit $start, $full");
    while(list($id, $login, $haslo, $mail, $status, $langs, $data, $admin, $oficjalne) = mysql_fetch_row($obej))
    {
     echo "$id <br/>";
     echo "$login <br/>";
     echo "$haslo <br/>";
    }
    if($_GET['page'] == '')
    {
    $strona = '1';
    }
    else
    {
    $strona = $_GET['page'];
    }
    $poprzedniastrona = $_GET['page'] - 1;
    if($_GET['page'] == '')
    {
    $nastepnastrona = '2';
    }
    else
    {
    $nastepnastrona = $_GET['page'] + 1;
    }
    echo'</table>';
    if($total == '0')
    {
    
    }
    else
    {
    echo'<table align="center">
    <tr>
    <td>';
    if(($_GET['page'] == '1') || ($_GET['page'] == ''))
    {
    }
    else
    {
    echo'<a href="test.php?event=users&page=1"><input type="submit" value="'.$lang[pierwszastronakatalog].'">
    </a><a href="test.php?event=users&page='.$poprzedniastrona.'"><input type="submit" value="'.$lang[poprzedniastronakatalog].'"></a>';
    
    }
    echo'Strona'; echo $strona; echo ' z '; echo $total; echo "</br";
    if($strona == $total)
    {
    
    }
    else
    {
  echo'<a href="test.php?event=users&page='.$nastepnastrona.'"><input type="submit" value="'.$lang[nastepnastronakatalog].'"></a>
  <a href="test.php?event=users&page='.$total.'"><input type="submit" value="'.$lang[ostatniastronakatalog].'"></a>';
    }
    echo'</td>
    </tr>
    </table>';
    }
    ?>


i to są błędy od razu na test.php a nie te co wywala na kliknięciu dalej czy poprzednia:
Notice: Undefined index: page in C:\\test.php on line 33

Notice: Undefined index: page in C:\\test.php on line 41

Notice: Undefined index: page in C:\\test.php on line 42

Notice: Undefined index: page in C:\\test.php on line 60

Notice: Undefined index: page in C:\\test.php on line 60
Strona1 z 4 Notice: Use of undefined constant nastepnastronakatalog - assumed 'nastepnastronakatalog' in C:\\test.php on line 76

Notice: Undefined variable: lang in C:\\test.php on line 76

Notice: Use of undefined constant ostatniastronakatalog - assumed 'ostatniastronakatalog' in C:\\test.php on line 77

Notice: Undefined variable: lang in C:\\test.php on line 77

Ten post edytował czarnaowca777 18.03.2012, 18:24:58
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: 23.08.2025 - 18:18