Avatar billede nc85 Nybegynder
23. februar 2005 - 11:18 Der er 6 kommentarer

function addnewMessage virker ik?

Hey alle...

Har dette script, men kan ikke rigtig få "function addnewMessage"
til at virke...

Håber der er nogle der kan hjælpe?

--------------------

<?
require("config.php");
$max_items = 10 //Max nummer af indlaeg der må blive vist
?>

<?
function displayNews($all = 0) {
    global $max_items;
    //Denne forespørgsel er for og op til $max_items
    $query = "SELECT id, titel, besked, " . "DATE FORMAT (postdate, %Y-%m-%d) as date" "FROM forum ORDER by postdate DESC LIMIT $max_items";
            }
        else
            {
    $query = "SELECT id, titel, besked, " . "DATE FORMAT(postdate, %Y-m%d) as date ""FROM forum ORDER BY postdate DESC";
            }
           
    $resultat = mysql_query($query);
    while(myrow = mysql_fetch_assoc($resultat)) {
   
        //Vis nyhederne
        echo "<table border='0' width'545' cellspacing'0' cellpadding'0'>\n";
        //henter variablerne sådan vi kan indsætte dem i de forskellige celler
        $date = $myrow['date'];
        $titel = htmlentities ($myrow['titel']);
        $besked = nl2br (strip_tags ($myrow['besked'], '<a><b><strong><i><u><li><ul>'));
       
        //Vis vores data
        echo "<tr><td><strong>$titel</strong><br />"
        echo "skrevet den $date</td></tr>";
       
        echo "<tr><td>$besked</td></tr>";
       
        //Henter antallet af besvarelser af indlægget!
        $kommentar_query = "SELECT count(*) FROM forum_kommentar " . " WHERE forum_id={$myrow['id']}";
        $kommentar_resultat = mysql_query($kommentar_query);
        $kommentar_række = mysql_fetch_row($kommentar_resultat);
       
        //Vis nr af kommentar med et link
        echo "<tr><td><a href=\"{$_SERVER['PHP_SELF']}" . "?action=show&amp;id={$myrow['id']}\">Besvarelser</a>" . "($kommentar_række[0]}</td></tr>\n";
        //Alslut tabellen
        echo "</table>";
        echo "<br />";
        }
       
        //Hvis vi skal vise alle indlæggene, så giver vi et link der skal gøre dette...
        if (alle == 0) {
            echo "<a href=\$_SERVER['PHP_SELF']}" . "?action=all\"> Se alle indlæg</a>";
        }
        }
?>
   
<?
function displayComments($id) {

$query = "SELECT * from forum_kommentar WHERE forum_id=$id";
$resultat = mysql_query($query);

echo "<table width='545' border='0' cellspacing='0' cellpadding='0'";
echo "<tr><td>";
echo "Besvarelser: <br /><br />";
echo "<hr>";
echo "</td></tr>";

//vis alle besvarelser

while ($myrow = mysql_fetch_assoc($resultat)) {

//henter variablerne
$navn = htmlentities($myrow['navn']);
$kommentar = strip_tags($myrow['kommentar'], '<a><b><i><u><li><ul><strong>');
$kommentar = nl2br ($kommentar);

echo "<tr><td>";
echo "<strong>af: $navn</strong></td></tr>";

echo "<tr><td>$kommentar</td></tr>";

echo "</table>";
echo "<br />";
}

//Så laver vi en form hvor brugeren kan indtaste nye besvarelser
echo "<br />";
echo "<hr>";

echo "<form action=\"{$_SERVER['PHP_SELF']}" . "?action=addcomment&amp;id=$id\" method=POST>";
echo "<table width'545' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr><td>Navn:</td>";
echo "<td><input type=\"text\" " . "width=\"30\" name=\"navn\"></td>";

echo "<tr><td>Besked:</td>";
echo "<td><textarea cols=\"30\" rows=\"8\" " .  "name=\"kommentar\"></textarea><br /></td>";

echo "<tr><td>Tryk Ok</td>";
echo "<td><input type=\"submit\" " . "width=\"30\" name=\"submit\" " . "value=\"Tilføj indlæg\"><br /></td>";
echo "</table></tr></td></form>";

}

?>

<?
//Dette script viser et indlæg med kommentarene!!
function displayOneItem($id) {

$query = "SELECT * FROM forum WHERE id=$id";
$resultat = mysql_query($query);

//Hvis vi ikke får nogle resultater tilbage, så skriv en fejl ud!
if(mysql_num_rows($resultat) == 0) {
    mysql_error("Der er sket en fejl");
    exit();
    }
$myrow = mysql_fetch_assoc($resultat);

//Hent variablerne
$titel = htmlentities ($myrow['titel']);
$besked = nl2br (strip_tags ($myrow['beskedtext']);, '<a><strong><b><i><u><ul><li>'));

//Så skal vi lave lidt HTML arbejde !
echo "<table width='545' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr><td><strong>$titel</strong></td></tr>";
echo "<tr><td>$besked</td></tr>";
echo "<table>";
echo "<br>";

//Vis nu kommentarene//
displayKommentarer($id);
}

?>

<?
//Tilføj Kommentarer
function addcomment($id) {

$query = "INSERT INTO forum_kommentar " . "VALUES('', $id, '{$_POST['navn']}'," . "'{$_POST['kommentar']}')";
mysql_query = mysql_query(query);

echo "Du har nu besvaret indlægget";
echo "<br />";
echo "<a href=\"{$_SERVER['PHP_SELF']}" . "?action=show&amp;id=$id\">Tilbage</a>";
}

?>

<?
function addnewMessage($id) {
//Så laver vi en form hvor brugeren kan indtaste nye besvarelser
echo "<br />";
echo "<hr>";

echo "<form action=\"{$_SERVER['PHP_SELF']}" . "?action=addnewmessage&amp;id=$id\" method=POST>";
echo "<table width'545' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr><td>Titel</td>";
echo "<td><input type=\"text\" " . "width=\"30\" name=\"titel\"></td>";

echo "<tr><td>Besked:</td>";
echo "<td><textarea cols=\"30\" rows=\"8\" " .  "name=\"besked\"></textarea><br /></td>";

echo "<tr><td>Tryk Ok</td>";
echo "<td><input type=\"submit\" " . "width=\"30\" name=\"submit\" " . "value=\"Tilføj indlæg\"><br /></td>";
echo "</table></tr></td></form>";

}

?>

<?
//Dette er hvor scriptet bestemmer hvad der skal gøres!

echo "<table width='545' cellspacing='0' cellpadding='0' border='0'>";
echo "<tr><td>";
switch($_GET['action']) {
    case 'show':
        displayOneItem($_GET['id']);
        break;
    case 'all':
        displayNews(1);
        break;
    case 'addcomment':
        addcomment($_GET['id'];
        break;
    case 'addnew':
        addnewMessage($_GET['id'];
        break;
    default:
        displayNews();
        }
    echo "</td></tr></table>";
   
?>
Avatar billede nc85 Nybegynder
23. februar 2005 - 11:35 #1
hov, det var vist det forkerte...

her er det UDEN FEJL :)


----------------------

<?
require("config.php");
$max_items = 10 //Max nummer af indlaeg der må blive vist
?>

<?
function displayNews($all = 0) {
    global $max_items;
    //Denne forespørgsel er for og op til $max_items
    if ($all == 0) {
        /* this query is for up to $max_items */
        $query = "SELECT id,titel,besked," .
                "DATE_FORMAT(postdate, '%Y-%m-%d') as date " .
                "FROM forum ORDER BY postdate DESC LIMIT $max_items";
    } else {
        /* this query will get all news */
        $query = "SELECT id,titel,besked," .
                "DATE_FORMAT(postdate, '%Y-%m-%d') as date " .
                "FROM forum ORDER BY postdate DESC";
           
    $resultat = mysql_query($query);
    while ($myrow = mysql_fetch_assoc($resultat)) {
   
        //Vis nyhederne
        echo "<table border='0' width'545' cellspacing'0' cellpadding'0'>\n";
        //henter variablerne sådan vi kan indsætte dem i de forskellige celler
        $date = $myrow['date'];
        $titel = htmlentities ($myrow['titel']);
        $besked = nl2br (strip_tags ($myrow['besked'], '<a><b><strong><i><u><li><ul>'));
       
        //Vis vores data
        echo "<tr><td><strong>$titel</strong><br />";
        echo "skrevet den $date</td></tr>";
       
        echo "<tr><td>$besked</td></tr>";
       
        //Henter antallet af besvarelser af indlægget!
        $kommentar_query = "SELECT count(*) FROM forum_kommentar " . " WHERE forum_id={$myrow['id']}";
        $kommentar_resultat = mysql_query($kommentar_query);
        $kommentar_række = mysql_fetch_row($kommentar_resultat);
       
        //Vis nr af kommentar med et link
        echo "<tr><td><a href=\"{$_SERVER['PHP_SELF']}" . "?action=show&amp;id={$myrow['id']}\">Besvarelser</a>" . "($kommentar_række[0]}</td></tr>\n";
        //Alslut tabellen
        echo "</table>";
        echo "<br />";
        }
        }
        //Hvis vi skal vise alle indlæggene, så giver vi et link der skal gøre dette...
        if (alle == 0) {
            echo "<a href=\$_SERVER['PHP_SELF']}" . "?action=all\"> Se alle indlæg</a>";
        }
        }
?>
   
<?
function displayComments($id) {

$query = "SELECT * from forum_kommentar WHERE forum_id=$id";
$resultat = mysql_query($query);

echo "<table width='545' border='0' cellspacing='0' cellpadding='0'";
echo "<tr><td>";
echo "Besvarelser: <br /><br />";
echo "<hr>";
echo "</td></tr>";

//vis alle besvarelser

while ($myrow = mysql_fetch_assoc($resultat)) {

//henter variablerne
$navn = htmlentities($myrow['navn']);
$kommentar = strip_tags($myrow['kommentar'], '<a><b><i><u><li><ul><strong>');
$kommentar = nl2br ($kommentar);

echo "<tr><td>";
echo "<strong>af: $navn</strong></td></tr>";

echo "<tr><td>$kommentar</td></tr>";

echo "</table>";
echo "<br />";
}

//Så laver vi en form hvor brugeren kan indtaste nye besvarelser
echo "<br />";
echo "<hr>";

echo "<form action=\"{$_SERVER['PHP_SELF']}" . "?action=addcomment&amp;id=$id\" method=POST>";
echo "<table width'545' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr><td>Navn:</td>";
echo "<td><input type=\"text\" " . "width=\"30\" name=\"navn\"></td>";

echo "<tr><td>Besked:</td>";
echo "<td><textarea cols=\"30\" rows=\"8\" " .  "name=\"kommentar\"></textarea><br /></td>";

echo "<tr><td>Tryk Ok</td>";
echo "<td><input type=\"submit\" " . "width=\"30\" name=\"submit\" " . "value=\"Tilføj indlæg\"><br /></td>";
echo "</table></tr></td></form>";

}

?>

<?
//Dette script viser et indlæg med kommentarene!!
function displayOneItem($id) {

$query = "SELECT * FROM forum WHERE id=$id";
$resultat = mysql_query($query);

//Hvis vi ikke får nogle resultater tilbage, så skriv en fejl ud!
if(mysql_num_rows($resultat) == 0) {
    mysql_error("Der er sket en fejl");
    exit();
    }
$myrow = mysql_fetch_assoc($resultat);

//Hent variablerne
$titel = htmlentities ($myrow['titel']);
$news = nl2br (strip_tags ($myrow['besked'], '<a><strong><li><ul><b><i><u>'));

//Så skal vi lave lidt HTML arbejde !
echo "<table width='545' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr><td><strong>$titel</strong></td></tr>";
echo "<tr><td>$besked</td></tr>";
echo "<table>";
echo "<br>";

//Vis nu kommentarene//
displayKommentarer($id);
}

?>

<?
//Tilføj Kommentarer
function addcomment($id) {

$query = "INSERT INTO forum_kommentar " . "VALUES('', $id, '{$_POST['navn']}'," . "'{$_POST['kommentar']}')";
$mysql_query = mysql_query(query);

echo "Du har nu besvaret indlægget";
echo "<br />";
echo "<a href=\"{$_SERVER['PHP_SELF']}" . "?action=show&amp;id=$id\">Tilbage</a>";
}

?>

<?
function addnewMessage($id) {
//Så laver vi en form hvor brugeren kan indtaste nye besvarelser
echo "<br />";
echo "<hr>";

echo "<form action=\"{$_SERVER['PHP_SELF']}" . "?action=addnewmessage&amp;id=$id\" method=POST>";
echo "<table width'545' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr><td>Titel</td>";
echo "<td><input type=\"text\" " . "width=\"30\" name=\"titel\"></td>";

echo "<tr><td>Besked:</td>";
echo "<td><textarea cols=\"30\" rows=\"8\" " .  "name=\"besked\"></textarea><br /></td>";

echo "<tr><td>Tryk Ok</td>";
echo "<td><input type=\"submit\" " . "width=\"30\" name=\"submit\" " . "value=\"Tilføj indlæg\"><br /></td>";
echo "</table></tr></td></form>";

}

?>

<?
//Dette er hvor scriptet bestemmer hvad der skal gøres!

echo "<table width='545' cellspacing='0' cellpadding='0' border='0'>";
echo "<tr><td>";
switch($_GET['action']) {
   
    case 'show':
        displayOneItem($_GET['id']);
        break;
    case 'all':
        displayNews(1);
        break;
    case 'addcomment':
        addComment($_GET['id']);
        break;
    default:
        displayNews();
}

    echo "</td></tr></table>";
   
?>
Avatar billede nc85 Nybegynder
23. februar 2005 - 12:31 #2
og den ligger heller ikke de forskellige data i databasen?

Forstår det virkelig ikke..

Håber der er nogle der kan hjælpe mig med at få dette script til at virke...
Avatar billede mjense173 Nybegynder
23. februar 2005 - 13:04 #3
echo "<form action=\"{$_SERVER['PHP_SELF']}" . "?action=addnewmessage&amp;id=$id\" method=POST>";

rettes til:

echo "<form action=\"{$_SERVER['PHP_SELF']}" . "?action=addnewmessage&id=$id\" method=POST>";
Avatar billede coderdk Praktikant
23. februar 2005 - 13:09 #4
mjense173, Nej, det bør da virke med &amp; da det er sådan det anbefales at gøre det ;)
Avatar billede apache999 Nybegynder
23. februar 2005 - 13:10 #5
Så vidt, jeg kan se, har du ikke en case i din switch, der håndterer den action, du kalder addnewmessage. Derfor går den bare videre til default (som er displaynews), når formen bliver submittet.

Derudover mangler du den funktion, der rent praktisk INSERTer den nye message i databasen. Alle de POSTede data går bare op i røg, så vidt jeg kan se.
Avatar billede mjense173 Nybegynder
23. februar 2005 - 13:12 #6
ok
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