Jump to content
php.lv forumi

Recommended Posts

Posted

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!";
}
?>

Posted

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!';
}

Posted

vel viens jaut - a kā tagad lai uztaisa ja zīmes ir mazāk vai 1650 tad neizdrukā šo skriptu - Uz nakoso lapu

Un kā lai uztaisa ja esmu nākamā lapā tad neizdrukā iepriekšējo skriptu kas izvada sākumu

Posted

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

}

Posted (edited)

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
Posted

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?

Posted

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!';
}

Posted

Tas tādēl, ka tajā vietā, kur tev šobrīd rāda "Nav tāda satura" jābūt kam citam.

Savā piemērā nerakstīju, ka "Nav tāda satura" rādīšana ir atkarīga no $row['garums']

Posted

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>';

}

Posted (edited)

Beidz pikstet

 

she paginatoru lieto uz nebedu

Edited by cucumber

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...