Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ongelma!

Sivun loppuun

LiDE [02.05.2004 18:12:23]

#

Minulla on pienoinen ongelma sivujen laittamisen kanssa....

Eli mulla on koodi mikä hakee tiedot txt tiedostosta.

      if(!isset($_GET['start']))
      $_GET['start'] = 0;
      $next = $_GET['start'] + $haksivu;
      $viestit = file("viestit.txt");
      $viestit = array_reverse($viestit);
      $maara = count($viestit);

for ($i = $_GET['start']; $i < $next; $i ++) {
	      $sisalto = explode("|", $viestit[$i], 4);
	      $nimi = $sisalto[0];
	      $email = $sisalto[1];
	      $aika = $sisalto[2];
	      $viesti = $sisalto[3];

ja sit tulee print ja sen sisäl tulosteet...

if ($maara > $haksivu)
	{
		$x = ($maara/$haksivu	);
		$r = round($x);
		$d = ($x-$r);
    	if ($d>0){
		$x = ($r+1);}
		else $x = round($x);
	for ($a=0; $a < $x; $a++) {
		$c = ($a*$haksivu);
		if ($start == $c)
			{print ("| $c");}
			else {
		print ("<a href=\"gb.php?start=$c$luku\">| $c </a>");}
}
}

Eli tuolla tavalla olen sitä yrittänyt tehdä mutta en kässää missä on vika. aina jos rivejä on vähemmän kuin mitä sivulle mahtuisi niin se tekee sinne sivulle viimeiseksi tyhjän printtauksen. otsikkaat ja kaikki näkyy paitti itse tietoa ei ole koska sitä ei ole olemassakaan..

Saisko apua ongelmaan.

makeuu [02.05.2004 21:14:19]

#

mitä se heittää ilmoitukseksi?`Parse-erroria?

Tempfile [02.05.2004 21:26:26]

#

Ensiksi suosittelisin käyttämään kooditageja, selventää paljon asioita. Lue keskustelun ohjeesta lisää.

Koodissa ensimmäinen korjattava asia olisivat puuttuvat aaltosulut. Ainakin ensimmäisestä iffistä ja tuosta for-loopista niitä näkyy uupuvan.
En myöskään suosittelisi käyttämään $_GET['start']:ia suoraan, muuta tuo alku vaikka tällaiseksi:

if(isset($_GET['start']) && is_int($_GET['start'])){
  $start = $_GET['start'];
} else {
  $start = 0;
}

Pitäisi olla hieman turvallisempi.

Juhis [02.05.2004 22:35:10]

#

Tuossa ylläolevassa koodissa isset() funkkarin käyttö on turhaa, koska jos $_GET['start'] muuttujaa ei ole, tai se ei ole integer niin $start = $_GET['start']. Mutta jos se on integer niin $start = 0.

pistemies [02.05.2004 23:24:22]

#

Kovin olet vaikeasti lähtenyt sivuttamaan. Olen itse käyttänyt tällaista, alunperin Nuclesin koodia:

<?php


         $tiedosto = file("viestit.txt");
         $tiedosto =  array_reverse($tiedosto);

         $max_index = count($tiedosto)-1;
         if (isset($_GET['fmark']))
          {
            $start = $_GET['fmark']; // Seuraavat sivut
            $end = $_GET['fmark'] + 9;
          }
         else
          {
            $start = 0; //Eka-sivu
            $end = 9;
          }

       $up_start = $start + 10; // seuraavat=lisätään 10 riviä
       $down_start = $start - 10; // edelliset
       $max = $max_index + 1;

       echo "Viestejä yhteensä " . $max;
       echo "<TABLE BORDER=\"0\" ><TR>";

    if ($max_index <= 9)
     {
       echo "<TD align=\"left\"></TD>";
       echo "<TD  align=\"right\"></TD></TR></TABLE>";
     }
    elseif ($end < 10)
     {
       echo "<TD align=\"left\"></TD>";
       echo '<TD  align=\"right\"><a href=\"index.php?fmark=$up_start\">Edelliset 10</a></TD></TR></TABLE>";
     }
    elseif (($end > 9) && ($max_index > $end))
     {
       echo "<TD  align=\"left\"><a href=\"index.php?fmark=$down_start\">Uudemmat 10</a></TD>";
       echo "<TD  align=\"right\"><a href=\"index.php?fmark=$up_start\">Edelliset 10</a></TD></TR></TABLE>";
     }
    elseif ($max_index <= $end)
     {
       echo "<TD align=\"left\"><a href=\"index.php?fmark=$down_start\">Uudemmat 10</a></TD>";
       echo "<TD  align=\"right\"></TD></TR></TABLE>";
     }
     echo "<br>";

  if ($max_index != -1)   // jos viestejä on vain yksi
       for($i=$start ; $i<=$end; $i++) // tulostaan viestit $startin ja $endin väliltä
    {

      $viesti = explode("|", $tiedosto[$i]);
 echo "<table>";

     echo // Tulostetaan tähän

    if ($i == $max_index)
    break;
     }
?>

T.M. [03.05.2004 00:18:09]

#

Voisinpa melkein sanoa samaa myös sinun koodillesi :)

Vilkaiseppas tätä:
https://www.ohjelmointiputka.net/koodit_nayta.php?id=622

LiDE [03.05.2004 21:23:35]

#

T.M. Tossa sun antamas linkissä niin missä muodos pitää olla ton filun sisältö? eli ton txt filun.

T.M. [04.05.2004 14:37:07]

#

Ihan missä muodossa tahansa, tuo funktio sivuttaa taulukon alkioden määrän mukaan.

Koodivinkkini esimerkin mukaan tieto on riveittäin, eli esimerkiksi jokainen viesti omalla rivillään.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta