marlboro Posted March 12, 2009 Report Share Posted March 12, 2009 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!"; } ?> Quote Link to comment Share on other sites More sharing options...
marlboro Posted March 13, 2009 Author Report Share Posted March 13, 2009 veljoprojām aktuāli meklēju meklēju un nekādīgi nevaru saprast kā būtu jātaisa skripts kas pēc 1650 zimēm turpmāko txt nodod uz nākamo lapu Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted March 13, 2009 Report Share Posted March 13, 2009 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!'; } Quote Link to comment Share on other sites More sharing options...
marlboro Posted March 13, 2009 Author Report Share Posted March 13, 2009 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 Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted March 13, 2009 Report Share Posted March 13, 2009 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 } Quote Link to comment Share on other sites More sharing options...
marlboro Posted March 13, 2009 Author Report Share Posted March 13, 2009 (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 March 13, 2009 by marlboro Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted March 13, 2009 Report Share Posted March 13, 2009 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? Quote Link to comment Share on other sites More sharing options...
marlboro Posted March 13, 2009 Author Report Share Posted March 13, 2009 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!'; } Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted March 16, 2009 Report Share Posted March 16, 2009 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'] Quote Link to comment Share on other sites More sharing options...
marlboro Posted March 18, 2009 Author Report Share Posted March 18, 2009 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ībafunction 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>'; } Quote Link to comment Share on other sites More sharing options...
marlboro Posted March 19, 2009 Author Report Share Posted March 19, 2009 Ludzu palidziet vismaz kkādu domu pametiet ... Quote Link to comment Share on other sites More sharing options...
cucumber Posted March 20, 2009 Report Share Posted March 20, 2009 (edited) Beidz pikstet she paginatoru lieto uz nebedu Edited March 20, 2009 by cucumber Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.