Kezdőoldal » Számítástechnika » Weblapkészítés » Hogyan lehetne megoldani a...

Hogyan lehetne megoldani a kilistazasnal? (PHP+SQL)

Figyelt kérdés

sziasztok


kerem a magusokat, hogy ne kovezzenek.

Talaltam egy kilistazo kodot amibe van lapozasi funkcio is. alakitottam mar rajta. phpba is bele bele nyultam helyenkent, viszont nem tudok programozni.


Lenyeg az, hogy sikeresen megoldottam, hogy ha rakattintok a listaban levo egyik nevre, akkor utana csak az azzal a nevvel szereplo rekordok listazodnak ki.


Viszont, a lapozas azutan nem mukodik, mivel a masodik oldalra valo lepesnel, gyakorlatilag az osszes rekord 2. oldalara lep.


egyebkent itt a link remelem nem tilos:


http://hunited.org/barcodes/result.php


es ime itt a brillians kod:


<?php

mysql_connect("localhost","rjntvg_preshift","123456a") or die (mysql_error());

mysql_select_db("rjntvg_wp252") or die (mysql_error());



if (isset($_GET['date'])) {

$sql = mysql_query("SELECT * FROM barcodes WHERE date=\"".mysql_real_escape_string($_GET['date'])."\" ORDER BY id ASC");

} elseif (isset($_GET['user'])) {

$sql = mysql_query("SELECT * FROM barcodes WHERE user=\"".mysql_real_escape_string($_GET['user'])."\" ORDER BY id ASC");

} else {

$sql = mysql_query("SELECT * FROM barcodes ORDER BY id ASC");

}


$nr = mysql_num_rows($sql);

if (isset($_GET['pn'])) {

$pn = preg_replace('#[^0-9]#i', '', $_GET['pn']);

//$pn = ereg_replace("[^0-9]", "", $_GET['pn']);

} else {

$pn = 1;

}

$itemsPerPage = 10;

$lastPage = ceil($nr / $itemsPerPage);

if ($pn < 1) { // If it is less than 1

$pn = 1; // force if to be 1

} else if ($pn > $lastPage) {

$pn = $lastPage;

}

$centerPages = "";

$sub1 = $pn - 1;

$sub2 = $pn - 2;

$add1 = $pn + 1;

$add2 = $pn + 2;

if ($pn == 1) {

$centerPages .= '  <span class="pagNumActive">' . $pn . '</span>  ';

$centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . $user . '">' . $add1 . '</a>  ';

} else if ($pn == $lastPage) {

$centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a>  ';

$centerPages .= '  <span class="pagNumActive">' . $pn . '</span>  ';

} else if ($pn > 2 && $pn < ($lastPage - 1)) {

$centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub2 . '">' . $sub2 . '</a>  ';

$centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a>  ';

$centerPages .= '  <span class="pagNumActive">' . $pn . '</span>  ';

$centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a>  ';

$centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a>  ';

} else if ($pn > 1 && $pn < $lastPage) {

$centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a>  ';

$centerPages .= '  <span class="pagNumActive">' . $pn . '</span>  ';

$centerPages .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a>  ';

}

$limit = 'LIMIT ' .($pn - 1) * $itemsPerPage .',' .$itemsPerPage;

if (isset($_GET['date'])) {

$sql2 = mysql_query("SELECT * FROM barcodes WHERE date=\"".mysql_real_escape_string($_GET['date'])."\" ORDER BY id ASC $limit");

} elseif (isset($_GET['user'])) {

$sql2 = mysql_query("SELECT * FROM barcodes WHERE user=\"".mysql_real_escape_string($_GET['user'])."\" ORDER BY id ASC $limit");

} else {

$sql2 = mysql_query("SELECT * FROM barcodes ORDER BY id ASC $limit");

}



$paginationDisplay = "";

if ($lastPage != "1"){

$paginationDisplay .= 'Page <strong>' . $pn . '</strong> of ' . $lastPage. '      ';

if ($pn != 1) {

$previous = $pn - 1;

$paginationDisplay .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $previous . '"> Back</a> ';

}

$paginationDisplay .= '<span class="paginationNumbers">' . $centerPages . '</span>';

if ($pn != $lastPage) {

$nextPage = $pn + 1;

$paginationDisplay .= '  <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $nextPage . '"> Next</a> ';

}

}

$outputList = '';

while($row = mysql_fetch_array($sql2)){


$id = $row["id"];

$barcode = $row["barcode"];

$time = $row["time"];

$date = $row["date"];

$user = $row["user"];


$outputList .= '<tr style="border:#999 1px solid;"><td style="border:#999 1px solid;">' . $barcode . '</td><td style="border:#999 1px solid;">' . $time . '</td><td style="border:#999 1px solid;">' . $date . '</td><td style="border:#999 1px solid;"><a href="result.php?user=' . $user . '">' . $user . '</a></td></tr>';


}

?>

<html>

<head>

<title>Barcodes</title>

<style type="text/css">

<!--

.pagNumActive {

color: #000;

border:#060 1px solid; background-color: #D2FFD2; padding-left:3px; padding-right:3px;

}

.paginationNumbers a:link {

color: #000;

text-decoration: none;

border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;

}

.paginationNumbers a:visited {

color: #000;

text-decoration: none;

border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;

}

.paginationNumbers a:hover {

color: #000;

text-decoration: none;

border:#060 1px solid; background-color: #D2FFD2; padding-left:3px; padding-right:3px;

}

.paginationNumbers a:active {

color: #000;

text-decoration: none;

border:#999 1px solid; background-color:#F0F0F0; padding-left:3px; padding-right:3px;

}

-->

</style>

</head>

<body>

<div style="margin-left:64px; margin-right:64px;">

<h2>Total Barcodes: <?php echo $nr; ?></h2>

</div>

<div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>

<div style="margin-left:64px; margin-right:64px;"><table style="border:#999 0px solid;"><?php print "$outputList"; ?></table></div>

<div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $paginationDisplay; ?></div>

</body>

</html>



tehat a lenyeg az lenne, hogy ha elkuldom azt hogy csak "XXXXX" nevueket listazzon, hogyan lehetne megoldani, hogy a lapozo tovabbra is mukodjon. valami sejtesem van, viszont mint irtam nem tudok kodokat irni. ollozgatok meg probalok rajonni, hogy mi hogy.


szoval valaki segitsen. koszonom. udv.


2015. jan. 21. 18:38
 1/7 A kérdező kommentje:
en hulye sikeresen posztoltam a linket, es a db eleresi adatokat is. azon gondolkozom, hogy gyakorlatilag ezzel tudna barki barmit kezdeni? nem mintha a tarhelyen barmi erdekes dolog lenne, csak ilyesmikre hasznalom. draga GYIK meg annyira jol megvan csinalva hogy meg szerkeszteni se tudom a leirast... (Y)
2015. jan. 21. 18:50
 2/7 anonim ***** válasza:

Nem tudom feltűnt-e, de az általad linkelt oldalon is, ha 10-nél több rekord tartozik egy névhez (pl.: fgjg), amit csak 2 oldalon tud megjeleníteni, akkor a 2. oldalra lépve ugyanúgy végrehajtódik a fő lekérdezés, és megjelenít mindenkit attól függetlenül, hogy te Jóskát kiválasztottad előtte.


Ha erre gondoltál, akkor az a legegyszerűbb, ha a $itemsPerPage értékét növeled.


Ha az, ha nem, én értek a PHP-hoz, de az biztos, hogy ezt a 100 sort nem fogom átbogarászni, hogy felfogjam mit is akar csinálni a kód, miért úgy lett megcsinálva, és rájöjjek, hogy hol a hiba.


Egyszerűbb lenne 0-ról megírni egy ilyet, mint ebből kitalálni a hiba okát, és helyrehozni.


Sose értettem miért vág bele ilyenbe valaki, aki nem tud programozni.

2015. jan. 21. 18:58
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
Ja most esett le, hogy amit linkeltél az a tiéd...hát igen, aki nagyon akar az tud vele kezdeni dolgokat.
2015. jan. 21. 18:59
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:

azert meg ugy is hogy nem ertek hozza ertem minden egyes sorat a kodnak, egyaltalan nem nehez.


es amit emlitettel, pont az a problemam, de le is irtam.


hogy miutan megkapja, hogy melyik user altal kuldott kodokat listazzon ki, azutan a lapozo nem mukodik, mert a 2-es gombon ami a 2. oldalra leptetne egy olyan hivatkozas kellene amiben megvan jelolve a user is.


$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . $user . '">' . $add1 . '</a> ';

} else if ($pn == $lastPage) {

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> ';

$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';

} else if ($pn > 2 && $pn < ($lastPage - 1)) {

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub2 . '">' . $sub2 . '</a> ';

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> ';

$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> ';

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a> ';

} else if ($pn > 1 && $pn < $lastPage) {

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $sub1 . '">' . $sub1 . '</a> ';

$centerPages .= ' <span class="pagNumActive">' . $pn . '</span> ';

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add1 . '">' . $add1 . '</a> ';



ez az erintett kodreszlet egyebkent... ottvan hogy pn


'?pn=' . $add1


ez a resz jeloli a 2. oldalra lepo gombot.


viszont nyilvan nekem az kellene odairva lenni mint hivatkozas hogy result.php?pn=2&user=valami



megpedig az a VALAMI amit az elozoekben kilistaztattam.

2015. jan. 21. 19:44
 5/7 anonim ***** válasza:

az a baj, ha egy userre rámész, és több oldalnyi rekordja van, a lapozólinkekbe nem kerül be, hogy melyik user x. oldala, csak hogy x. oldal.

http://hunited.org/barcodes/result.php?user=fgjg&pn=2

ezt kéne összehozni, hogy minden linkbe bekerüljön, hogy ha megvan nyitva user, hozzá legyen adva a user=$user


pl itt is

if(isset($_GET['user'])){

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '&user=' .$_GET['user']. '">' . $add2 . '</a> ';

}else{

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . '">' . $add2 . '</a> '; //eredeti

}


így jó hosszú lesz, de az $add változók után csinálhatsz helyette egy ilyet:

$user_link='';

if(isset($_GET['user'])) $user_link = '&user='.$_GET['user'];

ezután már csak ezt a változót kell hozzáadni, ami vagy üres, vagy tartalmazza a szükséges adatot ->

$centerPages .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pn=' . $add2 . $user_link . '">' . $add2 . '</a> ';

2015. jan. 21. 19:49
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

akkor jól gondolod, az a gond (+prev-next link is)

remélem érthetően írtam le :D

2015. jan. 21. 19:53
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:
szia koszi a valaszt. holnap megcsinalom mert mar golyozik a szemem :) es remelem hogy fogom erteni, ha nem... semmi gond. kereslek majd ;) :D
2015. jan. 21. 20:49

További kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!