Hirdetés
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Milyen okostelefont vegyek?
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Pulzust is mér az Apple AirPods Pro 3
- iPhone topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy S24 - nos, Exynos
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Netfone
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
biker
nagyúr
válasz
hellsing71
#2237
üzenetére
de ez ettől még két lekérdezés, csak egybeágyaztad
-
nevemfel
senior tag
válasz
hellsing71
#2233
üzenetére
Valóban kihagyhatom, hogy össz hány rekord van a táblában, a lapozás anélkül is működik.
Nem hiszem, hogy a teljes táblára a COUNT queryt érdemes kihagyni, szerintem ez a leggyorsabb lekérdezés.
-
biker
nagyúr
válasz
hellsing71
#2234
üzenetére
nem vonhatod össze, mert más alapján számol. szerintem. de valóban, századokat jelent csak
-
biker
nagyúr
válasz
hellsing71
#2229
üzenetére
ennél egyszerűbb
Nálam több százezer soros táblák lapozóval
<script>
$(document).ready(function(){
$('#naploTabla').DataTable({
'processing': true,
'serverSide': true,
'serverMethod': 'post',
'ajax': {
'url':'ajax_naplo_file.php'
},
'columns': [
{ data: 'datum' },
{ data: 'esemeny' },
{ data: 'ertek' },
]
});
});
</script>a feldolgozó pedig
<?php
include("master.php");
// Create connection
try{
$conn = new PDO("mysql:host=$host;dbname=$adatbazis","$sql_felhasznalo","$sql_jelszo",
array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING,
));
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
die('Unable to connect with the database');
}
## Read value
$draw = $_POST['draw'];
$row = $_POST['start'];
$rowperpage = $_POST['length']; // Rows display per page
$columnIndex = $_POST['order'][0]['column']; // Column index
$columnName = $_POST['columns'][$columnIndex]['data']; // Column name
$columnSortOrder = $_POST['order'][0]['dir']; // asc or desc
$searchValue = $_POST['search']['value']; // Search value
$searchArray = array();
## Search
$searchQuery = " ";
if($searchValue != ''){
if (substr_count($searchValue, " ")==0)
{
$searchQuery = " AND (datum LIKE :datum or
esemeny LIKE :esemeny ) ";
$searchArray = array(
'datum'=>"%$searchValue%",
'esemeny'=>"%$searchValue%"
);
}
else
{
$searchValue_arr=explode(" ", $searchValue);
$i=1;
foreach($searchValue_arr AS $expl_value) {
$searchQuery.= " AND (datum LIKE :datum$i or
esemeny LIKE :esemeny$i ) ";
$searchArray = array(
"datum$i"=>"%$expl_value%",
"esemeny$i"=>"%$expl_value%"
);
}
}
}
## Total number of records without filtering
$stmt = $conn->prepare("SELECT COUNT(*) AS allcount FROM fitness_naplo{$_SESSION['helyszin']} ");
$stmt->execute();
$records = $stmt->fetch();
$totalRecords = $records['allcount'];
## Total number of records with filtering
$stmt = $conn->prepare("SELECT COUNT(*) AS allcount FROM fitness_naplo{$_SESSION['helyszin']} WHERE 1 ".$searchQuery);
$stmt->execute($searchArray);
$records = $stmt->fetch();
$totalRecordwithFilter = $records['allcount'];
## Fetch records
$stmt = $conn->prepare("SELECT * FROM fitness_naplo{$_SESSION['helyszin']} WHERE 1 ".$searchQuery." ORDER BY ".$columnName." ".$columnSortOrder." LIMIT :limit,:offset");
// Bind values
foreach($searchArray as $key=>$search){
$stmt->bindValue(':'.$key, $search,PDO::PARAM_STR);
}
$stmt->bindValue(':limit', (int)$row, PDO::PARAM_INT);
$stmt->bindValue(':offset', (int)$rowperpage, PDO::PARAM_INT);
$stmt->execute();
$empRecords = $stmt->fetchAll();
//echo "ok";
$data = array();
foreach($empRecords as $row){
// echo "ok";
$data[] = array(
"datum"=>$row['datum'],
"esemeny"=>translated($row['esemeny'], $_GET['sel_lang']),
"ertek"=>$row['ertek']
);
}
## Response
$response = array(
"draw" => intval($draw),
"iTotalRecords" => $totalRecords,
"iTotalDisplayRecords" => $totalRecordwithFilter,
"aaData" => $data
);
echo json_encode($response);
?>nyilván testre kell szabnod, de az elv ennyi, ajaxxal hívogatja, és küldi melyik 10 vagy 25 vagy 100 sort kérje le
-
martonx
veterán
válasz
hellsing71
#2229
üzenetére
Rosszul állsz hozzá. Mivel lapozást használsz, soha nem kell a teljes táblát listáznod. És biztosra veszem, hogy kettő lekérdezés elég.
Select akármi from tábla
Where feltételek (nyilván az alap eset, amikor még where sincs) queryEz az alap lekérdezésed, ami csak egy alap, de ilyen formában sose kell lefuttatnod.
1. lekérdezés: alap query count-ja, azaz maxmimum hány sornyi adatod van (ez is erőforrásigényes tud lenni, de amit mondtál 250k adatsor nudli, majd 6 milliárd sornál ráérhetsz ezen aggodni)
2. lekérdezés: alap lekérdezés az aktuális page-nek megfelelően (pl. 20-dik pagenek megfelelő 10 sor)azaz sose fogsz a megjelenített sorok számánál (pl. 10/20/50/100) többet elkérni a db-től. Hiszen pont erre való a pagelés.
-
nevemfel
senior tag
válasz
hellsing71
#2229
üzenetére
Emlékszem, hogy régebben használtam mysql alatt a SQL_CALC_FOUND_ROWS + FOUND_ROWS párost. Ezzel a módszerrel egy lekérdezést meg tudsz takarítani a három közül, de mindenképp érdemes lemérni, melyik módszer mennyi idő-, esetleg egyéb erőforrás nyereséget hoz, mert el tudom képzelni, hogy manapság a mindenféle gyorsítótárazás korában gyakorlatilag semennyi különbség nem lesz.
Új hozzászólás Aktív témák
- Lenovo Miix 520 i5-8250U / 8 GB RAM / 256 GB / Windows 11 / EU bill
- Bomba ár! Lenovo IdeaPad V320-17IKB - i3-7G I 8GB I 128SSD + 1TB I 17,3" I HDMI I Cam I W11 I Gari!
- Samsung Galaxy S22 Ultra 12/256gb - Törött kijelző
- Apple Airtag (A2187)
- Bomba Ár! HP ProBook 650 G1 - i5-4GEN I 8GB I 128-256SSD I 15,6" HD I Cam I W10 I Garancia!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Tablet felvásárlás! Samsung Galaxy Tab S10+, Samsung Galaxy Tab S10 Ultra, Samsung Galaxy Tab S10 FE
- Nyugdíjazott laptopok :) Ingyen Foxpost!
- 365 NAPRA RÉSZLETRE BANKMNETES KAMATMENTES , GAMER PC ,LAPTOPOK , GAMER SZÉKEK , GAMER MONITOROK
- ÁRGARANCIA! Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5050 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


