Avatar billede rjpa Nybegynder
26. maj 2003 - 22:18 Der er 30 kommentarer og
1 løsning

PageBreak i Contents (MySQL CMS Site needs help)

Hej,

Jeg er ved at udvikle mit eget Reviews/Artikkel system: www.oldreviews.com. Nu er det sådan at jeg kan se at disse *Nuke sites bruger noget de kalder --pagebreaks-- i deres artikler som gør at man kan få artiklen/reviewet delt op på flere sider når man bruger denne funktion i f.eks. $contents som indholder hovedtekst i f.eks. et review/artikel. Jeg vil høre om der er nogen der kan hjælpe mig med at lave en lign. til min side?
Der er 200 point at hente eller mere, det er den eneste ting jeg næsten mangler.

Mvh
rjpa
Avatar billede ahv Nybegynder
26. maj 2003 - 22:26 #1
Mener du at den kun skal vise x antal tegn i en nyhed?
http://www.delfs.dk/articles/danish/Start_af_tekst.php
Avatar billede rjpa Nybegynder
27. maj 2003 - 01:06 #2
Nope, den skal dele teksten mellem --pagebreak-- op i flere sider, altså artikler kan "span" over flere sider.

/rjpa
Avatar billede sostack Nybegynder
27. maj 2003 - 08:10 #3
<?php
$sidenummer = (isset($_GET[sidenummer])) ? 0 : $_GET[sidenummer];
/* Her kommer din kode, der henter data fra MySql */

    if(isset($contents) && isset($breakpoint))
    {
        $pages = explode($breakpoint, $contents);
        $numb_pages = count($pages);
    }
    if($pages)
    {
        if($sidenummer == 0)
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer + 1 . "'>næste side</a>\n";
        }
        elseif($sidenummer == $numb_pages - 1)
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer - 1 . "'>forige side</a>\n";
        }
        else
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer - 1 . "'>forige side</a> | <a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" $sidenummer + 1 . "'>næste side</a>\n"\n";
    }
    }
?>

//sostack
Avatar billede sostack Nybegynder
27. maj 2003 - 08:10 #4
$sidenummer = (isset($_GET[sidenummer])) ? 0 : $_GET[sidenummer];
skal lige være:
$sidenummer = (!isset($_GET[sidenummer])) ? 0 : $_GET[sidenummer];
Avatar billede rjpa Nybegynder
27. maj 2003 - 08:13 #5
sostack: virker denne funktion ligesom i phpnuke's sektions funktion: --pagebreak-- ??

/rjpa
Avatar billede sostack Nybegynder
27. maj 2003 - 08:20 #6
Jeg aner ikke hvordan phpnuke's sektions funktion virker, men hvis du sætter nogle --pagebreak-- ind i teksten i databasen, og sætter $breakpoint = "--pagebreak--"; så genererer scriptet siderne, med "næste side" og "forige side".

//sostack
Avatar billede rjpa Nybegynder
27. maj 2003 - 09:11 #7
Dette er du hvis på at det virker? (vil bare være helt sikker)

/rjpa
Avatar billede sostack Nybegynder
27. maj 2003 - 10:18 #8
Tjah, hvor sikker kan man være, med programmering/tænkte planer??
Prøv det, og brug det, eller slet det igen. Det gør ingen skade, i hvert fald!

//sostack
Avatar billede rjpa Nybegynder
28. maj 2003 - 11:55 #9
sostack: Jeg får følgende fejl: Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in f:\www\test\contents.php on line 29

Der er følgende linie: echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer - 1 . "'>forige side</a> | <a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" $sidenummer + 1 . "'>næste side</a>\n"\n";

Hvad er der galt?
Avatar billede sostack Nybegynder
28. maj 2003 - 11:59 #10
skal self. være:
echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer - 1 . "'>forige side</a> | <a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" $sidenummer + 1 . "'>næste side</a>\n";

//sostack
Avatar billede rjpa Nybegynder
28. maj 2003 - 12:33 #11
Får følgende fejl: Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in f:\www\test\contents.php on line 29

og mit script ser således ud:
<?php
$db = mysql_connect("localhost", "root", "") or die ("Sorry no connection to database server!");
mysql_select_db("test") or die ("Could not select the database!");
$sql = mysql_query("SELECT * FROM test");
$row = mysql_fetch_array($sql);
$contents = $row["contents"];

$breakpoint = "<breakpoint>";
$sidenummer = (isset($_GET[sidenummer])) ? 0 : $_GET[sidenummer];
/* Her kommer din kode, der henter data fra MySql */

    if(isset($contents) && isset($breakpoint))
    {
        $pages = explode($breakpoint, $contents);
        $numb_pages = count($pages);
    }
    if($pages)
    {
        if($sidenummer == 0)
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer + 1 . "'>næste side</a>\n";
        }
        elseif($sidenummer == $numb_pages - 1)
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer - 1 . "'>forige side</a>\n";
        }
        else
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer - 1 . "'>forige side</a> | <a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" $sidenummer + 1 . "'>næste side</a>\n";
    }
    }
?>



Hvad går der galt??
Avatar billede sostack Nybegynder
28. maj 2003 - 12:43 #12
sidenummer=" $sidenummer + 1 . "'>næste side</a>\n";
skal være:
sidenummer=" . $sidenummer + 1 . "'>næste side</a>\n";
_____________Î

//sostack
Avatar billede rjpa Nybegynder
28. maj 2003 - 13:10 #13
Hmm, jeg får en fejl mere: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in f:\www\test\contents.php on line 5

den indholder: $row = mysql_fetch_array($sql);
Jeg har databasen test som indholder tabellen contents

Hvad gør jeg galt?

/rjpa
Avatar billede rjpa Nybegynder
28. maj 2003 - 20:30 #14
jeg får desværre kun udskriften:
1'>næste side
Avatar billede tipsen Nybegynder
04. juni 2003 - 10:44 #15
<?php
$db = mysql_connect("localhost", "root", "") or die("Sorry no connection to database server!");
mysql_select_db("test") or die ("Could not select the database!");
$sql = mysql_query("SELECT * FROM test") or die(mysql_error());
Avatar billede rjpa Nybegynder
04. juni 2003 - 10:46 #16
tipsen: hvad er der galt med det?

/rjpa
Avatar billede rjpa Nybegynder
04. juni 2003 - 10:52 #17
får samme trælse fejl :(
Avatar billede tipsen Nybegynder
04. juni 2003 - 10:52 #18
Hvilken fejl får du nu?
Avatar billede rjpa Nybegynder
04. juni 2003 - 10:54 #19
1'>næste side
Avatar billede sostack Nybegynder
04. juni 2003 - 11:10 #20
Prøv lige med:
<?php
$db = mysql_connect("localhost", "root", "") or die ("Sorry no connection to database server!");
mysql_select_db("test") or die ("Could not select the database!");
$sql = mysql_query("SELECT * FROM test");
$row = mysql_fetch_assoc($sql);
$contents = $row['contents'];

$breakpoint = "<breakpoint>";
$sidenummer = (isset($_GET['sidenummer'])) ? 0 : $_GET['sidenummer'];

    if(isset($contents) && isset($breakpoint))
    {
        $pages = explode($breakpoint, $contents);
        $numb_pages = count($pages);
    }
    if($pages)
    {
        if($sidenummer == 0)
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer + 1 . "'>næste side</a>\n";
        }
        elseif($sidenummer == $numb_pages - 1)
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer - 1 . "'>forige side</a>\n";
        }
        else
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . $sidenummer - 1 . "'>forige side</a> | <a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" $sidenummer + 1 . "'>næste side</a>\n";
    }
    }
?>

//sostack
Avatar billede rjpa Nybegynder
04. juni 2003 - 11:14 #21
Får følgende fejl:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in f:\www\test\contents.php on line 36
Avatar billede rjpa Nybegynder
04. juni 2003 - 11:17 #22
skriver stadigvæk:
1'>næste side
Avatar billede rjpa Nybegynder
04. juni 2003 - 11:18 #23
og min database bruger dette:
# phpMyAdmin MySQL-Dump
# version 2.5.0
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Generation Time: Jun 04, 2003 at 11:17 AM
# Server version: 3.23.55
# PHP Version: 4.3.0
# Database : `test`
# --------------------------------------------------------

#
# Table structure for table `contents`
#
# Creation: May 28, 2003 at 07:24 PM
# Last update: May 28, 2003 at 07:51 PM
#

CREATE TABLE `contents` (
  `cid` int(8) unsigned NOT NULL auto_increment,
  `contents` longtext,
  PRIMARY KEY  (`cid`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

#
# Dumping data for table `contents`
#

INSERT INTO `contents` VALUES (1, 'Prisbillige spilkonsoller kan muligvis udgøre basis i fremtidens supercomputere. \r\n<!--pagebreak-->\r\nVed hjælp af 70 Sony PlayStation 2 spilkonsoller har forskere fra det amerikanske institut National Center for Supercomputing Applications (NCSA) skabt en supercomputer, som kun har kostet hvad der svarer til 315.000 kroner. Det skriver den amerikanske avis New York Times. \r\n<!--pagebreak-->\r\nDe 70 spilkonsoller er udstyret med Linux og er sat sammen med en højhastigheds-switch fra Hewlett-Packard. \r\n<!--pagebreak-->\r\nSystemet kan kapere op mod 500 milliarder operationer pr. sekund og kvalificerer dermed til betegnelsen supercomputer.\r\n<!--pagebreak-->\r\nForskerne benytter PlayStation 2\'s processor, som bærer navnet Emotion Engine. Denne processor kan udføre 6,5 milliarder operationer i sekundet.');
Avatar billede sostack Nybegynder
04. juni 2003 - 11:44 #24
Så kører det:
<?php
$db = mysql_connect("localhost", "root", "") or die ("Sorry no connection to database server!");
mysql_select_db("test") or die ("Could not select the database!");
$sql = mysql_query("SELECT * FROM contents");
$row = mysql_fetch_array($sql);
$contents = $row['contents'];

$breakpoint = "<!--pagebreak-->";
$sidenummer = (isset($_GET['sidenummer'])) ? $_GET['sidenummer'] : 0;
echo $sidenummer;
    if(isset($contents) && isset($breakpoint))
    {
        $pages = explode($breakpoint, $contents);
        $numb_pages = count($pages);
   
    if($pages)
    {
        if($sidenummer == 0)
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . intval($sidenummer + 1) . "'>næste side</a>\n";
        }
        elseif($sidenummer == intval($numb_pages - 1))
        {
        echo $pages[$sidenummer] . "<center><a href='" . $_SERVER['PHP_SELF'] . "?sidenummer=" . intval($sidenummer - 1) . "'>forige side</a>\n";
        }
        else
        {
        echo $pages[$sidenummer] . "<center><a href=" . $_SERVER['PHP_SELF'] . "?sidenummer=" . intval($sidenummer - 1) . ">forige side</a> - <a href=" . $_SERVER['PHP_SELF'] . "?sidenummer=" . intval($sidenummer + 1) . ">næste side</a>";
    }
    }
  }
?>

Der var lige et par detaljer:
1. din tabel hedder jo 'contents' og ikke test som i din $sql = mysql_query("SELECT * FROM test");
2. i databasen har du indsat "<!--pagebreak-->" som breakpoint, men du bruger stadig $breakpoint = "breakpoint";

//sostack
Avatar billede tipsen Nybegynder
04. juni 2003 - 11:49 #25
ripa: Når man en anden gang foreslår noget, så prøv det - så havde du set med det samme, at der ikke var en tabel ved navn "test"...
Avatar billede rjpa Nybegynder
04. juni 2003 - 11:58 #26
sostack: tak for hjælpen det virkede..
tipsen: jepps den var jeg klar over nu, dooh min fejl :(
Hvordan kan jeg fjerne udprint af side nummer inden output af $contents?

/rjpa
Avatar billede sostack Nybegynder
04. juni 2003 - 12:25 #27
med:
//echo $sidenummer;


//sostack
Avatar billede rjpa Nybegynder
04. juni 2003 - 12:28 #28
Lige en sidste ting: Hvordan kan jeg få sidenummer 0 til at blive til 1 i stedet for??

/rjpa
Avatar billede tipsen Nybegynder
04. juni 2003 - 12:31 #29
Er det ikke ligegyldigt, hvis du ikke udskriver det ;-)
Avatar billede rjpa Nybegynder
04. juni 2003 - 12:33 #30
Hmm egentlig ikke, jeg vil også gerne have det til udskrift ;)

/rjpa
Avatar billede sostack Nybegynder
04. juni 2003 - 12:54 #31
echo intval($sidenummer + 1)

//sostack
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB