Avatar billede fiil123 Nybegynder
21. marts 2005 - 18:12 Der er 23 kommentarer og
1 løsning

Nyheds system, skal kunne rette i nyhederne!

Hej igen.
Jeg har et nyhedssystem der består af, admin.php, dbconnet.php og news.php det jeg gerne vil have tilføjet til mit nyhedssystem er sådan at man kan rette i nyheder i admin.php lige som man kan slette dem... enten i et popup vindu eller at nyheden dukker frem i den form der allerede er der i forvejen... PS jeg er totalt neeeewbie need the CODE!
Admin.php//

<?PHP

//dbconnet indeholder login opl. til db
$dato = date("j.n.Y");
$titel = $_POST[titel];
$nyhed = $_POST[nyhed];
$forfatter = $_POST[forfatter];



if(isset($titel)) {
    include("dbconnect.php");
    mysql_query("INSERT INTO nyheder (titel, nyhed, forfatter, dato) VALUES ('$titel','$nyhed','$forfatter','$dato')") or die(mysql_error());
    header("location: ".$_SERVER['PHP_SELF']."");
}
?>

<FORM action="admin.php" method="POST">
<TABLE>

<tr>
<td><INPUT type="text" name="titel" value="Nyhedens titel"></td>
</tr>

<tr>
<td><TEXTAREA name="nyhed" rows="15" cols="30">Din nyhed her</TEXTAREA></td>
</tr>

<tr>
<td><INPUT type="text" name="forfatter" value="Skrevet af"></td>
</tr>

<tr>
<td><INPUT type="submit" name="indset" value="Opret Nyhed"></td>
</tr>

</TABLE>
</FORM>

<?PHP
if($_GET['function'] == "slet") {
    include("dbconnect.php");
    mysql_query("DELETE FROM nyheder WHERE id = '$_GET[id]'") or die(mysql_error());
}


include("dbconnect.php");
$res = mysql_query("SELECT * FROM nyheder") or die(mysql_error());

        while ($row = mysql_fetch_array($res)) {
            echo "Nyhed fra den $row[dato]: $row[titel]&nbsp;";
            echo "<a href='admin.php?function=slet&id=$row[id]'>Slet</a>";
            echo "<br>";
        }
?>

<A href="show_news.php">vis nyheder</a>

og en dbconnect:

dbconnect.php//

<?PHP

$mysql_db = "******";
$mysql_host = "localhost";
$mysql_user = "******";
$mysql_pass = "******";


$DB = mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die(mysql_error());
mysql_select_db($mysql_db) or die(mysql_error());

?>

Til sidst bliver nyheden vist med:
News.php//
<?PHP
include("news/dbconnect.php");

$res = mysql_query("SELECT * FROM nyheder order by id desc limit 5") or die(mysql_error());
while ($row = mysql_fetch_array($res)) {
    echo "$row[titel]&nbsp;&nbsp;";
    echo "$row[dato]<br><br>";   
    echo "$row[nyhed]<br>";
    echo "By: $row[forfatter]";
    echo "<br>";
    echo "<br>";
 
}
?>
Avatar billede jakobdo Ekspert
21. marts 2005 - 18:46 #1
Hvad med dette kode: (gem det evt som rediger.php)
Så laver du en sider som viser dine nyheder, og laver et link ala:

rediger.php?id=1
rediger.php?id=2
rediger.php?id=3

Og hvilke ID dine nyheder nu må have...

<?PHP

//dbconnet indeholder login opl. til db
include("dbconnect.php");

if(isset($_POST['opdater']))
{
    //dbconnet indeholder login opl. til db
    $dato = date("j.n.Y");
    $titel = $_POST['titel'];
    $nyhed = $_POST['nyhed'];
    $forfatter = $_POST['forfatter'];
    $nyhedsID = $_POST['nyhedsid'];

  mysql_query("UPDATE nyheder SET title = '" . $titel. "', nyhed = '". $nyhed ."', dato = '" . $dato . "' WHERE id = $_nyhedsID LIMIT 1") or die(mysql_error());
  header("location: http://www.dinside.dk/hvorduviserdinenyheder.php");
}

$nyhedsID = $_GET['id'];

if(is_numeric($nyhedsID))
{
    $query = mysql_query("SELECT * FROM nyheder WHERE id = " . $nyhedsID . " LIMIT 1") or die(mysql_error());
    if(mysql_num_rows($query) > 0)
    {
        $row = mysql_fetch_assoc($query);
       
        echo "<FORM action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"POST\">";
        echo "<TABLE>";
       
        echo "<tr>";
        echo "<td><INPUT type=\"hidden\" name=\"nyhedsid\" value=\"" . $row['id'] . "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"text\" name=\"titel\" value=\"" . $row['titel']. "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><TEXTAREA name=\"nyhed\" rows=\"15\" cols=\"30\">" . $row['nyhed'] . "</TEXTAREA></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"text\" name=\"forfatter\" value=\"" . $row['forfatter'] . "<"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"submit\" name=\"opdater\" value=\"Opdater Nyhed\"></td>";
        echo "</tr>";

        echo "</TABLE>";
        echo "</FORM>";
    }
}
?>
Avatar billede fiil123 Nybegynder
21. marts 2005 - 19:11 #2
den kommer med denne fejl:
Parse error: parse error, unexpected '<' in /customers/dwankers.dk/dwankers.dk/httpd.www/RFC_PHP/news/rediger.php on line 45
Avatar billede jakobdo Ekspert
21. marts 2005 - 19:52 #3
Jeg havde en tryk-fejl:

Dette stykke:
$row['forfatter'] . "<"></td>";

Skal rettes til:

$row['forfatter'] . "\"></td>";

I linie 44 eller 45.
Avatar billede fiil123 Nybegynder
21. marts 2005 - 19:58 #4
oki det har jeg gjort når jeg åbner filen på min server kommer der ingen ting... Øhh nok fordi jeg ikke forstår det her:
Så laver du en sider som viser dine nyheder, og laver et link ala:

rediger.php?id=1
rediger.php?id=2
rediger.php?id=3

Og hvilke ID dine nyheder nu må have...
Avatar billede jakobdo Ekspert
21. marts 2005 - 20:28 #5
Prøv at åben siden, hvor du tager et id som matcher en nyhed, og prøv at åben siden: rediger.php?id=5

Hvor 5 er tallet på en nyhed.
Avatar billede fiil123 Nybegynder
21. marts 2005 - 21:32 #6
Når jeg vil opdatere siger den:
"You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 1' at line 1"
Avatar billede jakobdo Ekspert
21. marts 2005 - 21:39 #7
Prøv denne update:

mysql_query("UPDATE nyheder SET titel = '" . $titel. "', nyhed = '". $nyhed ."', dato = '" . $dato . "' WHERE id = " . $_nyhedsID . " LIMIT 1") or die(mysql_error());
Avatar billede fiil123 Nybegynder
21. marts 2005 - 21:52 #8
nu kommer jeg ikke engang ind til den form nu kommer den med fejlen allerede til start
Avatar billede jakobdo Ekspert
21. marts 2005 - 22:01 #9
Prøv lige det hele her:

<?PHP

//dbconnet indeholder login opl. til db
include("dbconnect.php");

if(isset($_POST['opdater']))
{
    //dbconnet indeholder login opl. til db
    $dato = date("j.n.Y");
    $titel = $_POST['titel'];
    $nyhed = $_POST['nyhed'];
    $forfatter = $_POST['forfatter'];
    $nyhedsID = $_POST['nyhedsid'];

  mysql_query("UPDATE nyheder SET titel = '" . $titel. "', nyhed = '". $nyhed ."', dato = '" . $dato . "' WHERE id = " . $_nyhedsID . " LIMIT 1") or die(mysql_error());
  header("location: http://www.dinside.dk/hvorduviserdinenyheder.php");
}

$nyhedsID = $_GET['id'];

if(is_numeric($nyhedsID))
{
    $query = mysql_query("SELECT * FROM nyheder WHERE id = " . $nyhedsID . " LIMIT 1") or die(mysql_error());
    if(mysql_num_rows($query) > 0)
    {
        $row = mysql_fetch_assoc($query);
     
        echo "<FORM action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"POST\">";
        echo "<TABLE>";
     
        echo "<tr>";
        echo "<td><INPUT type=\"hidden\" name=\"nyhedsid\" value=\"" . $row['id'] . "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"text\" name=\"titel\" value=\"" . $row['titel']. "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><TEXTAREA name=\"nyhed\" rows=\"15\" cols=\"30\">" . $row['nyhed'] . "</TEXTAREA></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"text\" name=\"forfatter\" value=\"" . $row['forfatter'] . "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"submit\" name=\"opdater\" value=\"Opdater Nyhed\"></td>";
        echo "</tr>";

        echo "</TABLE>";
        echo "</FORM>";
    }
}
?>
Avatar billede fiil123 Nybegynder
21. marts 2005 - 22:20 #10
den kommer med samme fejl
Avatar billede jakobdo Ekspert
22. marts 2005 - 07:58 #11
Kan du evt give mig link til siden?
Jeg jeg synes sgu det ser ok ud.
Prøv evt at test sql alene i phpmyadmin.
Avatar billede fiil123 Nybegynder
22. marts 2005 - 15:27 #12
http://www.dwankers.dk/RFC_PHP/login/login.php
User: eksperten
Pass: eksperten
Avatar billede jakobdo Ekspert
22. marts 2005 - 15:52 #13
Prøv lige at gem denne rediger.php:

<?PHP

//dbconnet indeholder login opl. til db
include("dbconnect.php");

if(isset($_POST['opdater']))
{
    //dbconnet indeholder login opl. til db
    $dato = date("j.n.Y");
    $titel = $_POST['titel'];
    $nyhed = $_POST['nyhed'];
    $nyhedsID = $_POST['nyhedsid'];
   
    echo $dato . "<br>";
    echo $titel . "<br>";
    echo $nyhed . "<br>";
    echo $nyhedsID . "<br>";
   
    exit();

  mysql_query("UPDATE nyheder SET titel = '" . $titel. "', nyhed = '". $nyhed ."', dato = '" . $dato . "' WHERE id = " . $_nyhedsID . " LIMIT 1") or die(mysql_error());
  header("location: http://www.dinside.dk/hvorduviserdinenyheder.php");
}

$nyhedsID = $_GET['id'];

if(is_numeric($nyhedsID))
{
    $query = mysql_query("SELECT * FROM nyheder WHERE id = " . $nyhedsID . " LIMIT 1") or die(mysql_error());
    if(mysql_num_rows($query) > 0)
    {
        $row = mysql_fetch_assoc($query);
   
        echo "<FORM action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"POST\">";
        echo "<TABLE>";
   
        echo "<tr>";
        echo "<td><INPUT type=\"hidden\" name=\"nyhedsid\" value=\"" . $row['id'] . "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"text\" name=\"titel\" value=\"" . $row['titel']. "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><TEXTAREA name=\"nyhed\" rows=\"15\" cols=\"30\">" . $row['nyhed'] . "</TEXTAREA></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"text\" name=\"forfatter\" value=\"" . $row['forfatter'] . "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"submit\" name=\"opdater\" value=\"Opdater Nyhed\"></td>";
        echo "</tr>";

        echo "</TABLE>";
        echo "</FORM>";
    }
}
?>
Avatar billede fiil123 Nybegynder
22. marts 2005 - 15:59 #14
http://www.dinside.dk/hvorduviserdinenyheder.php... det er ikke admin.php du tænker på vel?
Avatar billede fiil123 Nybegynder
22. marts 2005 - 16:04 #15
Nu springer den til en side hvor den viser den "opdatering" man har lavet men den opdatere ikke nyhederne...
Avatar billede jakobdo Ekspert
22. marts 2005 - 16:09 #16
Mærkeligt.
Alle variabler er sat ok...
Jeg må tænke mere over det...
Skal nok finde en løsning.
Avatar billede fiil123 Nybegynder
22. marts 2005 - 16:13 #17
ville det hjælpe hvis du fik filerne?
Avatar billede jakobdo Ekspert
22. marts 2005 - 20:24 #18
Prøv denne:

<?PHP

//dbconnet indeholder login opl. til db
include("dbconnect.php");

if(isset($_POST['opdater']))
{
    //dbconnet indeholder login opl. til db
    $dato = date("j.n.Y");
    $titel = mysql_escape_string($_POST['titel']);
    $nyhed = mysql_escape_string($_POST['nyhed']);
    $nyhedsID = mysql_escape_string($_POST['nyhedsid']);
 
      mysql_query("UPDATE nyheder SET titel = '" . $titel. "', nyhed = '". $nyhed ."', dato = '" . $dato . "' WHERE id = " . $_nyhedsID . " LIMIT 1") or die(mysql_error());
      header("location: http://www.dinside.dk/hvorduviserdinenyheder.php");
}

$nyhedsID = $_GET['id'];

if(is_numeric($nyhedsID))
{
    $query = mysql_query("SELECT * FROM nyheder WHERE id = " . $nyhedsID . " LIMIT 1") or die(mysql_error());
    if(mysql_num_rows($query) > 0)
    {
        $row = mysql_fetch_assoc($query);
 
        echo "<FORM action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"POST\">";
        echo "<TABLE>";
 
        echo "<tr>";
        echo "<td><INPUT type=\"hidden\" name=\"nyhedsid\" value=\"" . $row['id'] . "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"text\" name=\"titel\" value=\"" . $row['titel']. "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><TEXTAREA name=\"nyhed\" rows=\"15\" cols=\"30\">" . $row['nyhed'] . "</TEXTAREA></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"text\" name=\"forfatter\" value=\"" . $row['forfatter'] . "\"></td>";
        echo "</tr>";

        echo "<tr>";
        echo "<td><INPUT type=\"submit\" name=\"opdater\" value=\"Opdater Nyhed\"></td>";
        echo "</tr>";

        echo "</TABLE>";
        echo "</FORM>";
    }
}
?>
Avatar billede fiil123 Nybegynder
22. marts 2005 - 20:28 #19
Så kommer fejlen igen...
Avatar billede fiil123 Nybegynder
22. marts 2005 - 20:37 #20
Filerne ligger her... www.dwankers.dk/1.rar
Avatar billede jakobdo Ekspert
22. marts 2005 - 20:57 #21
Prøv at kontakt mig på MSN: jakobdo (AT) hotmail (DOT) com
Avatar billede jakobdo Ekspert
22. marts 2005 - 22:07 #22
Er svar...
Avatar billede jakobdo Ekspert
22. marts 2005 - 22:09 #23
mysql_query("UPDATE nyheder SET titel = '".$titel."', nyhed = '".$nyhed."', dato = '".$dato."' WHERE id = ".$nyhedsID." LIMIT 1") or die(mysql_error());
Avatar billede fiil123 Nybegynder
22. marts 2005 - 22:11 #24
Vil lige tilføje at jakobdo virkelig viste god stil med dette spørgsmål!
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