Jump to content
php.lv forumi

txt dalīšana pa lapām


marlboro

Recommended Posts

Labdien nekādīgi nevaru izveidot txt dalīšanu par lapām ... mēģinu visādi gan pēc paraugiem gan nē bet laikam īsti neuztveru pareizo domu :(

Ar šo kodu nolasu db saturu un izvadu to atkarībā pēc Id esmu jau izveidojis ka teksts tiek limitēts ne vairāk par 1650 zīmēm - tagad vajadzētu izdarīt tā ja teksts ir lielāks par 1650 zimēm tas tiek salausts un sadalīts pa lapām - doma ir izveidot lai zem teksta kas tiek izrukāts būtu apakšā pogas ķipa <BACK / NEXT> lai tādā veidā varētu izlasīt visu ierakstu....

 

Varbūt var kādz parādīt kādu funkcionējošu gabalu lai īsti varētu saprast kas un kā tur notiek ....

 

Lūk mans kods >

<?php	
include("inc/config.php");

function sb($t,$len="1650"){
if(strlen($t) > $len){
$t = substr($t, 0, $len)."...";
}
return $t;
}


if(array_key_exists('id',$_GET)) {
$lapa = (int)$_GET['id'];

}
else {
$lapa =1;
}
$result = mysql_query("SELECT id, saturs FROM DB.saturs WHERE id = $lapa") or die("Nevar savienoties ar tabulu!");
$lapu_masivs = Array();
while ($row = mysql_fetch_assoc($result)){
$lapu_masivs[$row['id']]=$row['saturs'];
}

if(array_key_exists($lapa,$lapu_masivs )){

$x=$lapu_masivs[$lapa];
echo $x=sb($x, 1650);
}
else {
echo "Lapa Netika atrasta!";
}
?>

Link to comment
Share on other sites

Es darītu šādi:

if(array_key_exists('id',$_GET)) {
$lapa = (int)$_GET['id'];
}
$sakt_no_lapas=0;
if(array_key_exists('sakt_no_lapas',$_GET)){
$sakt_no_lapas=(int)$_GET['sakt_no_lapas'];
}
$vaicajums = 'SELECT SUBSTRING(saturs, ' . ($sakt_no_lapas * 1650) . ', 1650) AS saturs FROM DB.saturs WHERE id = ' . $lapa;
$result = mysql_query($vaicajums) or die("Nevar savienoties ar tabulu!");
if ($row = mysql_fetch_assoc($result)){
echo $row['saturs'] . '<br/><a href="?id='.$lapa.'&sakt_no_lapas='.($sakt_no_lapas + 1) . '">Uz nākošo lapu</a>';
}
else {
echo 'Nav tāda satura!';
}

Link to comment
Share on other sites

Izmaini vaicājumu tā, ka tas atgriež arī garumu datiem:

'SELECT SUBSTRING(saturs, ' . ($sakt_no_lapas * 1650) . ', 1650) AS saturs, LENGTH(saturs) AS garums FROM DB.saturs WHERE id = ' . $lapa;

 

 

Un tad atkarībā no tā, kurā satura lapā esi, tad arī izdrukā vai neizdrukā:

if($row['garums']>(1+$sakt_no_lapas) * 1650){

//vajag nākošās parādīšanas linku

}

if($sakt_no_lapas>0){

//vajag iepriekšējās parādīšanas linku

}

Link to comment
Share on other sites

Hm - šādi neizdrukā vispar pogu Uz nākošo lapu

 

if(array_key_exists('id',$_GET)) {
$lapa = (int)$_GET['id'];
}
$sakt_no_lapas=0;
if(array_key_exists('sakt_no_lapas',$_GET)){
$sakt_no_lapas=(int)$_GET['sakt_no_lapas'];
}
$vaicajums = 'SELECT SUBSTRING(saturs, ' . ($sakt_no_lapas * 1650) . ', 1650) AS saturs, LENGTH(saturs) AS garums FROM DB.saturs WHERE id = ' . $lapa;
$result = mysql_query($vaicajums) or die("Nevar savienoties ar tabulu!");
if($row['garums']>(1+$sakt_no_lapas) * 1650){
echo $row['saturs'] . '<br/><a href="?id='.$lapa.'&sakt_no_lapas='.($sakt_no_lapas + 1) . '">Uz nākošo lapu</a>';
}
else {
echo 'Nav tāda satura!';
}

 

 

tātad kopā tas izkatās šādi :

 

function sb($t,$len="1650"){
if(strlen($t) > $len){
$t = substr($t, 0, $len)."...";
}
return $t;
}
if(array_key_exists('id',$_GET)) {
$lapa = (int)$_GET['id'];
}
else {
$lapa =1;
}
$result = mysql_query("SELECT id, saturs FROM DB.saturs WHERE id = $lapa") or die("Nevar savienoties ar tabulu!");
$lapu_masivs = Array();
while ($row = mysql_fetch_assoc($result)){
$lapu_masivs[$row['id']]=$row['saturs'];
}
if(array_key_exists($lapa,$lapu_masivs )){

// pēc manām domām te vajadzētu -  If lapu masivs = &sakt_no_lapas tad 


$x=$lapu_masivs[$lapa];
echo $x=sb($x, 1650);
}
else {
echo "Lapa Netika atrasta!";
}




if(array_key_exists('id',$_GET)) {
$lapa = (int)$_GET['id'];
}
$sakt_no_lapas=0;
if(array_key_exists('sakt_no_lapas',$_GET)){
$sakt_no_lapas=(int)$_GET['sakt_no_lapas'];
}
$vaicajums = 'SELECT SUBSTRING(saturs, ' . ($sakt_no_lapas * 1645) . ', 1645) AS saturs FROM DB.saturs WHERE id = ' . $lapa;
$result = mysql_query($vaicajums) or die("Nevar savienoties ar tabulu!");
if ($row = mysql_fetch_assoc($result)){
echo $row['saturs'] . '<br/><a href="?id='.$lapa.'&sakt_no_lapas='.($sakt_no_lapas + 1) . '">Uz nākošo lapu</a>';
}
else {
echo 'Nav tāda satura!';
}

Edited by marlboro
Link to comment
Share on other sites

Ir aizdomas, ka esmu nepareizi izdarījis, ka nosaucis substring() rezultātu kā lauka nosaukumu `saturs`

Pamēģini šitā:

$vaicajums = 'SELECT SUBSTRING(saturs, ' . ($sakt_no_lapas * 1645) . ', 1645) AS saturs_isais, , LENGTH(saturs) AS garums FROM DB.saturs WHERE id = ' . $lapa;

 

un attiecīgi masīva indeksos atsaucies uz 'saturs_isais'.

 

Bet kādēļ Tu vispirms savāc visus saturus un liec tos masīvā? Kāds tam ir mērķis?

Link to comment
Share on other sites

tagad izdrukā ka nau tāda satura -

}
$vaicajums = 'SELECT SUBSTRING(saturs, ' . ($sakt_no_lapas * 1645) . ', 1645) AS saturs_isais, LENGTH(saturs) AS garums FROM DB.saturs WHERE id = ' . $lapa;
$result = mysql_query($vaicajums) or die("Nevar savienoties ar tabulu!");
if($row['garums']>(1+$sakt_no_lapas) * 1650){
echo $row['saturs_isais'] . '<br/><a href="?id='.$lapa.'&sakt_no_lapas='.($sakt_no_lapas + 1) . '">Uz nākošo lapu</a>';
}
else {
echo 'Nav tāda satura!';
}

Link to comment
Share on other sites

Biki palaboju savu jautājumu tatad - man vajg

1. kā lai uztaisu ja esmu te: ?id=1&sakt_no_lapas=1 tad back poga ved mani atpakal uz ?id=1 (vai ar kadz id tur ir ..)

2. kā lai uztaisu tā ka izrukā pogu next un back tik tādā gadījumā ja ir vairāk ka 1640 zīmes?

 

patreiz esmu salicis/sataisijis lai man izdrukājas back un Nect pogas - varu parvietoties uz nakamo ,iepriekšējo tekstu....

 

kā lai salieku šīs abas darbibas kopā - vajg tā ja piem esmu zem id=2 tā izdrukājas teksts no 1 lidz 1640 zīmēm un izdrukā pogu next apakšā (ja zimes vairāk ka 1640) ja nospiežu "tālāk" teksts no 1 - 1640 pazūd un uzākas otrā darbiība?

 

Patreiz sanāk tā ka man darbiba 1 izrukā tekstu lidz 1640 zīmēm apakšā paradas poga "Tālāk" nozpiezot iepriekš minēto pogu pievienojas klāt jauns teksts sakot no 1640 zimes ... nesaprotu kā uztaisit lai 1 teksts pazūd ja nospiežu tālāk... ?

 

//pirmā darbība

function sb($t,$len="1600"){

if(strlen($t) > $len){

$t = substr($t, 0, $len)."...";

}

return $t;

}

if(array_key_exists('id',$_GET)) {

$lapa = (int)$_GET['id'];

}

else {

$lapa =1;

}

$result = mysql_query("SELECT id, saturs FROM db.saturs WHERE id = $lapa") or die("Nevar savienoties ar tabulu!");

$lapu_masivs = Array();

while ($row = mysql_fetch_assoc($result)){

$lapu_masivs[$row['id']]=$row['saturs'];

}

if(array_key_exists($lapa,$lapu_masivs )){

$x=$lapu_masivs[$lapa];

echo $x=sb($x, 1650);

}

else {

echo "Lapa Netika atrasta!";

}

 

if(array_key_exists('id',$_GET)) {

$lapa = (int)$_GET['id'];

}

$sakt_no_lapas=0;

if(array_key_exists('sakt_no_lapas',$_GET)){

$sakt_no_lapas=(int)$_GET['sakt_no_lapas'];

}

 

// otrā darbība

 

$result = mysql_query('SELECT SUBSTRING(saturs, ' . ($sakt_no_lapas * 1600) . ', 1600) AS saturs FROM db.saturs WHERE id = ' . $lapa) or die("Nevar savienoties ar tabulu!");

if ($row = mysql_fetch_assoc($result)){

echo $row['saturs'];

}

if($sakt_no_lapas>1){

echo '<br/><a href="?id='.$lapa.'&sakt_no_lapas='.($sakt_no_lapas - 1) . '">Atpaka</a> ';

}

if($sakt_no_lapas>=0){

echo '<a href="?id='.$lapa.'&sakt_no_lapas='.($sakt_no_lapas + 1) . '">Uz nakoso lapu</a>';

}

Link to comment
Share on other sites

Beidz pikstet

 

she paginatoru lieto uz nebedu

Edited by cucumber
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...