Avatar billede php-nybegynderen Nybegynder
26. november 2006 - 13:57 Der er 11 kommentarer

Problemer med update!

Jeg har lavet et nyhedscript, som jeg ikke kan få til at opdatere. Min tilføj og slet funktion virker fint, men når jeg skal redigere, og trykker på min redigerknap, bliver alle values tomme.

I kan se hvad der sker her: www.divinium.dk/divinium/cms/edit_nyhed.php - Og jeg ser gerne at i ikke misbruger det (sætter kode på lige bagefter).

edit_nyhed.php (scriptet):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

    <head>
    <title>Rediger nyheder</title>
    <link href="style-php.css" rel="stylesheet" type="text/css">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>

    <h1>Rediger nyheder</h1>
    <hr><br>

    <?php

    $submit = $_POST["submit"];

    if($submit == $submit){

    $overskrift = $_POST["overskrift"];

    $skribent = $_POST["skribent"];

    $nyhed = $_POST["nyhed"];


    include("db.php");


    mysql_query("UPDATE nyheder SET overskrift='$overskrift',skribent='$skribent',nyhed='$tekst' where id = '$_GET[id]'") or die(mysql_error()); }

    ?>


    <?php


    $result = mysql_query("SELECT * FROM nyheder ORDER BY id DESC") or die(mysql_error());

    $antal = mysql_num_rows($result);


    if($antal == 0) {

    print "<p>Der er desværre ingen nyheder.</p>";


    } else {


    while ($row = mysql_fetch_array($result)) {


    print "

    <table align='left' cellpadding='0' cellspacing='0'>


        <tr>

            <td align='left'>
            <p>
            Overskrift:<br>
            <input type='text' cols='41' name='overskrift' value='$row[overskrift]'>
            </p>
            </td>
        </tr>
        <tr>
            <td align='left'>
            <p>
            Skribent:<br>
            <input type='text' cols='41' name='skribent' value='$row[skribent]'>
            </p>
            </td>

        </tr>

        <tr>

            <td colspan='3' align='left'>
            <p>
            Nyhed:<br>

            <textarea rows='10' cols='41' name='tekst'>$row[nyhed]</textarea>
            </p>

            </td>

        </tr>
        <tr>
            <td align='left'>
            <form action='edit_nyhed.php?id=$row[id]' name='edit_nyhed' method='post'>
            <input type='submit' name='submit' value='Rediger'>
            </form>
            </td>
        </tr>


    </table>


    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>


    "; } }

    ?>

    </body>

</html>
Avatar billede zynzz Praktikant
26. november 2006 - 14:04 #1
Skift:
if($submit == $submit){

til:
if(isset($_POST[submit])){
Avatar billede php-nybegynderen Nybegynder
26. november 2006 - 14:26 #2
Warning: mysql_query() [function.mysql-query]: Access denied for user: 'divinium.dk@localhost' (Using password: NO) in /customers/divinium.dk/divinium.dk/httpd.www/divinium/cms/edit_nyhed.php on line 38

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /customers/divinium.dk/divinium.dk/httpd.www/divinium/cms/edit_nyhed.php on line 38
Access denied for user: 'divinium.dk@localhost' (Using password: NO)

Det hjalp ikke ligefrem :/
Avatar billede zynzz Praktikant
26. november 2006 - 14:35 #3
Fordi du ikke kan oprette forbindelse til din database
Avatar billede php-nybegynderen Nybegynder
26. november 2006 - 14:37 #4
Nu kan jeg, og det virker .. stadig ikke :(
Avatar billede simplus Nybegynder
26. november 2006 - 14:38 #5
Prøv:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

    <head>
    <title>Rediger nyheder</title>
    <link href="style-php.css" rel="stylesheet" type="text/css">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>

    <h1>Rediger nyheder</h1>
    <hr><br>

    <?php
    include("db.php");

    if(isset($_POST["submit"])) {

    $overskrift = $_POST["overskrift"];
    $skribent = $_POST["skribent"];
    $nyhed = $_POST["nyhed"];

    mysql_query("UPDATE nyheder SET overskrift='$overskrift',skribent='$skribent',nyhed='$tekst' where id = '$_GET[id]'") or die(mysql_error()); }

    $result = mysql_query("SELECT * FROM nyheder ORDER BY id DESC") or die(mysql_error());
    $antal = mysql_num_rows($result);


    if($antal == 0) {
        print "<p>Der er desværre ingen nyheder.</p>";
    }else{
        while ($row = mysql_fetch_array($result)) {
    print "

    <table align='left' cellpadding='0' cellspacing='0'>


        <tr>

            <td align='left'>
            <p>
            Overskrift:<br>
            <input type='text' cols='41' name='overskrift' value='$row[overskrift]'>
            </p>
            </td>
        </tr>
        <tr>
            <td align='left'>
            <p>
            Skribent:<br>
            <input type='text' cols='41' name='skribent' value='$row[skribent]'>
            </p>
            </td>

        </tr>

        <tr>

            <td colspan='3' align='left'>
            <p>
            Nyhed:<br>

            <textarea rows='10' cols='41' name='tekst'>$row[nyhed]</textarea>
            </p>

            </td>

        </tr>
        <tr>
            <td align='left'>
            <form action='edit_nyhed.php?id=$row[id]' name='edit_nyhed' method='post'>
            <input type='submit' name='submit' value='Rediger'>
            </form>
            </td>
        </tr>

    </table>

    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>

    "; } }
    ?>

    </body>

</html>
Avatar billede php-nybegynderen Nybegynder
26. november 2006 - 14:48 #6
Virker stadig ikke :/

db.php:

<?php

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

?>

Det er ikke en fejl her vel?
Avatar billede simplus Nybegynder
26. november 2006 - 15:01 #7
Altså, der er ikke en decideret fejl i scriptet som så. Dog kender jeg ikke dine personlige info, og skal heller ikke vide det. Det jeg vil frem til er at fejlen ligger i at den ikke kan connecte til databasen..

har du skrevet dit rigtige brugernavn, kode og databasenavn? hvad står der under host?
Avatar billede php-nybegynderen Nybegynder
26. november 2006 - 15:12 #8
CREATE TABLE `nyheder` (
  `overskrift` varchar(20) NOT NULL default '',
  `skribent` varchar(20) NOT NULL default '',
  `dato` varchar(20) NOT NULL default '',
  `nyhed` text NOT NULL,
  `id` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=49 ;

Det er min MySQL. Og det der står som oplysninger er rigtigt.
Min host er localhost
Avatar billede simplus Nybegynder
26. november 2006 - 15:26 #9
Databasen ser skam fin ud, men den connecter dog stadig ikke til MySQL. Prøv at oprette en ny fil med indholdet:

<?php
$host="localhost";
$user="ditbrugernavn";
$pass="ditkodeord";
$db="ditdatabasenavn";

mysql_connect($host,$user,$pass);
mysql_select_db($db);
?>

også kør den.. Der skal ikke stå andet end det.. Hvis du får nogen fejl så er det det som er fejlen, hvis ikke så er det i den anden fil.

Hvilket betyder at vi kan finde ud af hvor fejlen ligger.
Avatar billede php-nybegynderen Nybegynder
26. november 2006 - 15:30 #10
Det virker stadig ikke.
Avatar billede php-nybegynderen Nybegynder
26. november 2006 - 15:31 #11
Den laver bare tomt indhold i hele tabellen.
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