Nejste přihlášeni
Stránky 1
Zdravím, už nějakou dobu si vrtám hlavu s tím, jak na svou stránku zakomponovat stránkování bez toho, abych musel kód nějak kompletně přepracovat.
Na straně serveru probíhá toto:
<?php
session_start();
header('Content-Type: text/plain; charset=utf-8-czech');[/ins]
$dbhost = 'innodb.endora.cz:3306';
$dbuser = 'ondrejpatrovic';
$dbpass = '***********';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
mysqli_set_charset($conn, "utf8");
$conn->query("set character_set_results `UTF-8`");
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$requested_page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$start_from = ($page - 1)*$pocet;
switch ($_POST['cislo']) {
case 1:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
GROUP BY r.nazev
ORDER BY RAND()';
break;
case 2:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, r.cas_od, r.obrazek AS obrazek,COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
WHERE r.cas_od<CURDATE() + INTERVAL 3 MONTH AND r.cas_od>=CURDATE()
GROUP BY r.nazev
ORDER BY r.cas_od ASC
';
break;
case 3:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, r.cas_do, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
where r.cas_do
GROUP BY r.nazev
ORDER BY r.cas_do DESC';
break;
case 4:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, r.typ AS typ, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
WHERE r.typ=1
GROUP BY r.nazev
';
break;
case 5:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, r.typ AS typ, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
WHERE r.typ=2
GROUP BY r.nazev';
break;
case 6:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
WHERE r.typ=3
GROUP BY r.nazev';
break;
case 7:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
WHERE r.typ=4
GROUP BY r.nazev';
break;
case 8:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
WHERE r.typ=5
GROUP BY r.nazev';
break;
case 9:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
WHERE r.typ=6
GROUP BY r.nazev';
break;
case 10:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
GROUP BY r.nazev
ORDER BY round(hodnoceni,3) DESC';
break;
case 11:
$sql = 'SELECT DISTINCT r.id_event AS ID, r.nazev AS nazev, COALESCE(ROUND(AVG(eh.hodnoceni),2),"0") as hodnoceni, r.obrazek AS obrazek, r.popis AS popis FROM eventy r LEFT JOIN eventy_hodnoceni eh ON (eh.e_vent = r.id_event)
GROUP BY r.nazev
ORDER BY r.id_event DESC';
break;
}
mysqli_select_db($conn, 'ticketshop');
$result = mysqli_query($conn, $sql);
if(! $result ) {
die('Could not get data: ' . mysqli_error($conn));
}
$rows = array();
while( $r = mysqli_fetch_object($result)){
$rows[] = $r;
}
echo json_encode($rows);
?>
O následné zpracování v Jquery se pak stará tato funkce:
function sort(cislo){
console.log("sort");
$(".list-group-item").css( "background-color", "white" );
$("#"+cislo).css( "background-color", "#66D6EC" );
$.post("Eventy_Sorty.php",{cislo: cislo},function(vysledek){
// console.log(vysledek);
vysledek2=JSON.parse(vysledek);
console.log(vysledek2);
// console.log(vysledek2[0].nazev);
// console.log(vysledek2[0].hodnoceni);
$("#vklad").html("");
if (vysledek2.length==0) {
$("#vklad").html("");
$("#vklad").append("NENALEZENY ŽÁDNÉ VÝSLEDKY");
}
else {
for(var m=0;m<vysledek2.length;m++){
// var popis= vysledek2[m].popis.slice(0,40) + "...";
$("#vklad").append(""
+"<div class='col-sm-3 col-lg-3 col-md-3'>"
+"<div class='thumbnail'>"
+"<img class='img-responsive' src='"+vysledek2[m].obrazek+"' alt=''>"
+"<div class='caption'>"
+"<h4 align='center'><a href='Detail_Eventu.php?IDR="+vysledek2[m].ID+"' onclick=' ("+vysledek2[m].ID+")'>"+vysledek2[m].nazev+"</a>"
+"</h4>"
+"<p align='center' id='Hodnoceni'><b>INDEX OČEKÁVÁNÍ: "+vysledek2[m].hodnoceni+"/10</b></p>"
// +"<p align='center'>"+popis+"</p>"
+"</div>"
+"</div>"
);
/* if(vysledek2[m].hodnoceni==null){
$("#Hodnoceni").html("<b>BEZ INDEXU OČEKÁNÍ</b>");
}
else{
$("#Hodnoceni").html("<b>INDEX OČEKÁVÁNÍ: "+vysledek2[m].hodnoceni+"/10</b>");
} */
}
}
});
}
(i) jsou v kulatých závorkách jen zde, jinak v kódu mám samozřejmě hranaté.
Budu rád za jakékoli připomínky a nápady, za než již předem děkuji.
Upravil ondrejpatrovic (2019-04-03 18:45:53)
Offline
Stránky 1