Avatar billede cvp Nybegynder
19. februar 2003 - 12:06 Der er 23 kommentarer og
1 løsning

Tagwall + side 123...

Hej

Jeg er ikke så god til PHP/SQL derfor følgende spørgsmål:
Jeg har downloadet en php/mysql tagwall fra www.script.dk. Scriptet virker også fint nok, men jeg kunne godt tænke mig at der maks ville blive vist eks 10  posts på siden, ellers bliver siden jo uendelig lang. Jeg har ligeledes fundet på netcoders.dk et script der skulle kunne dele indlæg op i flere sider - så der eks står side 1 2 3 osv.

Mit problem er nu, jeg ved ik hvordan jeg skal sætte de to php script sammen.. Nogle der har mod på at hjælpe mig?

tagwall:
<form method='post' action='<?=$PHP_SELF?>'>
<table cellspacing='3'>
    <tr>
        <td><table><tr><td><input type='text' name='navn' value='Navn' onfocus="if(this.value=='Navn')this.value='';" onblur="if(this.value=='')this.value='Navn';" size='22'></td></tr><tr><td><input type='text' name='email' value='E-mail' onfocus="if(this.value=='E-mail')this.value='';" onblur="if(this.value=='')this.value='E-mail';" size='22'></td></tr><tr><td><div align='right'><input type='submit' name='send' value='Tag'></div></td></tr></table></td>
        <td><textarea cols='30' rows='5' name='text'></textarea></td>
    </tr>
</table>
</form>

<?php

###########################################################################################
### This tagwall is made by Kasper Skytte Andersen.                    ###
### This script may be used and modified freely, if these lines are not removed.    ###
### Questions can be asked at: knaldhat@sol.dk.                        ###
###########################################################################################

//MySQL configuration start

$host = "";    //Enter the address to your MySQL server here
$user = "";            //Enter the username to your MySQL server here
$pass = "";            //Enter the password to your MySQL server here
$db = "";        //Enter the database on your MySQL server here

//MySQL configuration end

##############################################
#  Do not modify anything under this line  #
##############################################

$navn = $_POST['navn'];
$email = $_POST['email'];
$text = $_POST[text];
$time = date("d/m-Y H:i:s");

if ($_POST['navn'] == "Navn") {
    $navn = "Anonym";
}

if ($_POST['email'] == "E-mail") {
    $email = "null@null";
}

mysql_connect("$host", "$user", "$pass");
mysql_select_db($db);

if(!empty($_POST[text])){
    $insertSQL = "insert into tagwall (navn, email, time, text) values ('$navn', '$email', '$time', '$text')";
    mysql_query($insertSQL);
}

$result = mysql_query("SELECT * FROM tagwall ORDER BY id DESC LIMIT 10") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
    echo "<a href='mailto:".$row[email]."'>".$row[navn]."</a> - ".$row[time]."<br><br>".$row[text]."<br><br>";
}
mysql_close();

?>


side123 script:
<?php
    $connection = mysql_connect($hostname, $username, $password);
    $db = $database;
    $limit=10;  // How many rows to display on each page
   
    $numresults=mysql_db_query($db, "SELECT fields FROM insert_table_name_here WHERE insert_condition_here", $connection);
    $numrows=mysql_num_rows($numresults);

    if (empty($offset)) {
        $offset=0; // Where to start in the list, if nothing's specified. Default should be '0'
    }

    // Retrieve your data here
    $result=mysql_db_query("SELECT fields FROM insert_table_name_here WHERE insert_condition_here limit $offset,$limit");

    // calculate number of pages needing links
    $pages=intval($numrows/$limit);

    // $pages now contains int of pages needed unless there is a remainder from division
    if ($numrows%$limit) {
        $pages++;
    }

// Generate a nice layout for the links
    echo "Page [";
    for ($i=1;$i<=$pages;$i++) {
        $newoffset=$limit*($i-1);
        if ($offset==$newoffset) {
        print (" &nbsp; <font color=\"#ff0000\"><b>$i</b></font> &nbsp; \n");
        } else {
            print "<a href=\"$PHP_SELF?offset=$newoffset\">$i</a>\n";
        }
    }
    echo "]\n<br>\n";

// Display your result data here
?>


Det er også muligt der findes en nemmere måde at rette i det første script I, men jeg er som sagt ikke så stiv til PHP/Mysql.

På forhånd tak - Mvh Christian
Avatar billede avminarm Juniormester
19. februar 2003 - 12:17 #1
kigger lige på det :-)
Avatar billede cvp Nybegynder
19. februar 2003 - 12:56 #2
super :-)
Håber du måske kan hitte ud af noget
Avatar billede avminarm Juniormester
19. februar 2003 - 13:04 #3
prøv det her:
tagwall:
<?php
//PAGER
function Pager($field_to_count, $table_to_use){
    global $pr_side, $total, $pager;

    $pr_side=10;

    if (!isset($_GET['s'])) {
        $_GET['s'] = 0; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
    }

    $totalrow = mysql_query("select count(".$field_to_count.") as total from ".$table_to_use."") or die (mysql_error());
    $total = mysql_result($totalrow,0);

    $pager = $_GET['s'].",".$pr_side;

    /**************************************/
    /* definerer udskriv næste funktionen */
    /**************************************/
    function PrintPager(){
        global $pr_side, $total;
       
        /* Find ud af om derskal være et Forrige link */
        if ($_GET['s'] >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
            $previous_s = $_GET['s']-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
            echo "<a href=\"".$_SERVER['PHP_SELF']."?s=$previous_s\">Forrige</a>&nbsp;"; //Udskriver linket
        }

        /* Find ud af hvis/hvor mange sider der er rows til */
        $page = 1; //Definerer hvor sidetal skal starte
        for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
            if ($start != $_GET['s']) { //Tjekker om linket vil komme til at pege på den side man er på
                echo "<a href=\"".$_SERVER['PHP_SELF']."?s=$start\">$page</a>&nbsp;"; //...hvis ikke, udskrives link med værdien af $page
            } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
                if($total >= $pr_side) { echo "[$page]&nbsp;"; }//...udskrives værdien af $page bare, altså ikke som link
            }
            $page++; //Lægger en til $page til næste gang løkken køres
        }

        /* Find ud af om der skal være et næste link */
        if ($total > $_GET['s']+$pr_side) { //Tjekker om der er flere sider
            $next_s = $_GET['s']+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
            echo "<a href=\"".$_SERVER['PHP_SELF']."?s=$next_s\">Næste</a>"; //Udskriver linket "næste"
        }
    }//end funktion PrintPager()
}// end funktion Pager()
?>

<form method='post' action='<?=$PHP_SELF?>'>
<table cellspacing='3'>
    <tr>
        <td><table><tr><td><input type='text' name='navn' value='Navn' onfocus="if(this.value=='Navn')this.value='';" onblur="if(this.value=='')this.value='Navn';" size='22'></td></tr><tr><td><input type='text' name='email' value='E-mail' onfocus="if(this.value=='E-mail')this.value='';" onblur="if(this.value=='')this.value='E-mail';" size='22'></td></tr><tr><td><div align='right'><input type='submit' name='send' value='Tag'></div></td></tr></table></td>
        <td><textarea cols='30' rows='5' name='text'></textarea></td>
    </tr>
</table>
</form>

<?php
Pager("navn","tagwall");
###########################################################################################
### This tagwall is made by Kasper Skytte Andersen.                    ###
### This script may be used and modified freely, if these lines are not removed.    ###
### Questions can be asked at: knaldhat@sol.dk.                        ###
###########################################################################################

//MySQL configuration start

$host = "";    //Enter the address to your MySQL server here
$user = "";            //Enter the username to your MySQL server here
$pass = "";            //Enter the password to your MySQL server here
$db = "";        //Enter the database on your MySQL server here

//MySQL configuration end

##############################################
#  Do not modify anything under this line  #
##############################################

$navn = $_POST['navn'];
$email = $_POST['email'];
$text = $_POST[text];
$time = date("d/m-Y H:i:s");

if ($_POST['navn'] == "Navn") {
    $navn = "Anonym";
}

if ($_POST['email'] == "E-mail") {
    $email = "null@null";
}

mysql_connect("$host", "$user", "$pass");
mysql_select_db($db);

if(!empty($_POST[text])){
    $insertSQL = "insert into tagwall (navn, email, time, text) values ('$navn', '$email', '$time', '$text')";
    mysql_query($insertSQL);
}

$result = mysql_query("SELECT * FROM tagwall ORDER BY id DESC LIMIT ".$pager."") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
    echo "<a href='mailto:".$row[email]."'>".$row[navn]."</a> - ".$row[time]."<br><br>".$row[text]."<br><br>";
}
PrintPager();
mysql_close();
?>
Avatar billede cvp Nybegynder
19. februar 2003 - 13:20 #4
Tusinde tak for hurtig svar :o)
Hvis jeg overføre koden direkte (selvfølgelig husker jeg at rette i SQL informatiuon ang.  brugernavn/pass/database) får jeg desværre følgende fejl:

Warning: Supplied argument is not a valid MySQL result resource in /var/www/subdomains/my/docs/test/index.php on line 11

Warning: Wrong parameter count for mysql_db_query() in /var/www/subdomains/my/docs/test/index.php on line 16
Page []

nogen ide?
Avatar billede cvp Nybegynder
19. februar 2003 - 13:31 #5
øhh underligt problem: Overstående fejl må ha været noget explore geil, for jeg får ik den fejl nu (har intet gjort ud over at lukke min browser og åbne en ny)

men nu får jeg fejlen: No Database Selected

og jeg har tjekket op på at brugernavn og database er korrekt - fatter lige minus lige nu :-/
Avatar billede avminarm Juniormester
19. februar 2003 - 13:32 #6
hedder din fil index.php eller tagwall.php?
Avatar billede cvp Nybegynder
19. februar 2003 - 13:33 #7
Filen hedder index.php
Avatar billede avminarm Juniormester
19. februar 2003 - 13:35 #8
prøv at ændre Pager("navn","tagwall"); til Pager("íd","tagwall");
Avatar billede avminarm Juniormester
19. februar 2003 - 13:38 #9
Flyt din mysql konfiguration op over funktionen - sådan her:

tagwall:
<?php
//MySQL configuration start

$host = "";    //Enter the address to your MySQL server here
$user = "";            //Enter the username to your MySQL server here
$pass = "";            //Enter the password to your MySQL server here
$db = "";        //Enter the database on your MySQL server here

//MySQL configuration end

//PAGER
function Pager($field_to_count, $table_to_use){ ..... osv
Avatar billede cvp Nybegynder
19. februar 2003 - 13:42 #10
det gir desværre det samme - men igen tak for hurtig svar :o)

"No Database Selected"
Avatar billede avminarm Juniormester
19. februar 2003 - 13:46 #11
har du angivet:
$db = "mindb";        //Enter the database on your MySQL server here
eller noget i den stil
Avatar billede cvp Nybegynder
19. februar 2003 - 13:47 #12
jeg ved ik om det har noget af betydning, men databasen er oprettet med et script der også fulgte med tagwall (hentet fra script.dk)

CREATE TABLE tagwall (
  id int(9) NOT NULL auto_increment,
  navn varchar(50) NOT NULL,
  email varchar(250) NOT NULL,
  time longtext NOT NULL,
  text longtext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede cvp Nybegynder
19. februar 2003 - 13:47 #13
$host = "localhost";    //Enter the address to your MySQL server here
$user = "bruger";            //Enter the username to your MySQL server here
$pass = "xxxxxx";            //Enter the password to your MySQL server here
$db = "tagwall";        //Enter the database on your MySQL server here
Avatar billede avminarm Juniormester
19. februar 2003 - 13:48 #14
husk at slette længere nede i scriptet - vis lige din database struktur
Avatar billede cvp Nybegynder
19. februar 2003 - 13:51 #15
RE: husk at slette længere nede i scriptet - vis lige din database struktur

Øhh hvis du mener slette de andre sql informationer, så har jeg sat // foran de original linier.

altså:
//MySQL configuration start

//$host = "localhost";    //Enter the address to your MySQL server here
//$user = "wildchild";            //Enter the username to your MySQL server here
//$pass = "bamse";            //Enter the password to your MySQL server here
//$db = "tagwall";        //Enter the database on your MySQL server here

//MySQL configuration end

database struktur:
# phpMyAdmin MySQL-Dump
# version 2.4.0-rc1
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Generation Time: Feb 19, 2003 at 01:47 PM
# Server version: 3.23.47
# PHP Version: 4.1.2
# Database : `tagwall`
# --------------------------------------------------------

#
# Table structure for table `tagwall`
#

CREATE TABLE tagwall (
  id int(9) NOT NULL auto_increment,
  navn varchar(50) NOT NULL default '',
  email varchar(250) NOT NULL default '',
  time longtext NOT NULL,
  text longtext NOT NULL,
  PRIMARY KEY  (id),
  KEY id (id)
) TYPE=MyISAM;
Avatar billede avminarm Juniormester
19. februar 2003 - 13:51 #16
er du sikker på at din database hedder 'tagwall' - databasen er ikke det samme som tabel navnet
Avatar billede cvp Nybegynder
19. februar 2003 - 13:52 #17
både databasen og tabel hedder tagwall - men det virkede før, altså bare uden den der side 123 funktion eller hva det hedder ;o)
Avatar billede avminarm Juniormester
19. februar 2003 - 13:53 #18
obs - det er ikke smart at vise sine login oplysninger her på exp - men det er forhåbentlig en lokal server
Avatar billede cvp Nybegynder
19. februar 2003 - 13:54 #19
hehe så det godt, men jo det er en lokal server, og er netop i dette øjeblik blevet rettet :o)
Avatar billede avminarm Juniormester
19. februar 2003 - 13:57 #20
prøv lige at flytte/klippe disse linier op under der hvor du skriver  login oplysninger:

mysql_connect("$host", "$user", "$pass");
mysql_select_db($db);
Avatar billede cvp Nybegynder
19. februar 2003 - 14:03 #21
hmm - lidt underligt - det virker, som før - altså uden den deler op i sider123
Avatar billede cvp Nybegynder
19. februar 2003 - 14:05 #22
NEJ!! tror faktisk det virker nu, vist bare mig der var en nørd,.. nøø nå nej.. teste rlige
Avatar billede cvp Nybegynder
19. februar 2003 - 14:08 #23
Tusinde tak - det er lige som det skal være :o)
Mange tak for din tålmodighed med mig.
Avatar billede avminarm Juniormester
19. februar 2003 - 14:10 #24
det var så lidt ;o)
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