Avatar billede stoiss Nybegynder
14. september 2005 - 13:14 Der er 59 kommentarer og
1 løsning

Hjælp mig

hejsa allesammen..

nu har jeg siddet og prøvet at lave et nyhedssystem, men kan ikke få det ti at virke :-S (!!)

nogen der ved hvor jeg kan finde et helt normalt nyhedssystem hvor jeg kan poste nyheder via en form, måske indsætte billeder, og med konnentarsystem .. kommentarsystem er ikke nødvendigt nu når jeg lige tænker mig om.. det vil side en form der skriver ti en database, og en siden der trække der ud igen, helt enkelt.. mangler det virkelig virkelig meget!!

.S
Avatar billede jakobdo Ekspert
14. september 2005 - 22:02 #1
Kan du selv kode php?
Designe databasen? (tabeller)
Avatar billede stoiss Nybegynder
14. september 2005 - 23:30 #2
hmm.. nej :-/
Avatar billede jakobdo Ekspert
15. september 2005 - 08:05 #3
HTML?
Avatar billede stoiss Nybegynder
15. september 2005 - 11:07 #4
Hmm.. ja kan godt html til en vis grænse
Avatar billede jakobdo Ekspert
15. september 2005 - 11:10 #5
Start med at lave en form, hvor du har følgende felter:

input -> name = overskrift
textarea -> name = indhold eller nyhed
input (submit knap)

Formen skal postes til f.eks.: opret_nyhed.php
Avatar billede stoiss Nybegynder
15. september 2005 - 11:18 #6
ja har jeg gjort
Avatar billede stoiss Nybegynder
15. september 2005 - 11:20 #7
<form action="opret_nyhed.php" >

<input type="text" name="overskrift">
<input type="textarea" name="indhold">
<input type="submit" value="post">
</form>

skal den ik se sådan ud
Avatar billede jakobdo Ekspert
15. september 2005 - 11:20 #8
<textarea name="indhold" cols="20" rows="20"></textarea>
Avatar billede stoiss Nybegynder
15. september 2005 - 11:24 #9
hvor skal det hen?
Avatar billede stoiss Nybegynder
15. september 2005 - 11:29 #10
<form action="opret_nyhed.php" >

<input type="text" name="overskrift">
<textarea name="indhold" cols="20" rows="20"></textarea>
<input type="submit" value="post">
</form>

sådan eller ..?
Avatar billede jakobdo Ekspert
15. september 2005 - 11:33 #11
<form action="opret_nyhed.php" method="POST">

<input type="text" name="overskrift">
<textarea name="indhold" cols="20" rows="20"></textarea>
<input type="submit" value="Opret Nyhed">

</form>
Avatar billede jakobdo Ekspert
15. september 2005 - 11:34 #12
Korrekt!
Avatar billede stoiss Nybegynder
15. september 2005 - 11:36 #13
kanon :) hva skal jeg så?
Avatar billede jakobdo Ekspert
15. september 2005 - 11:41 #14
Så skal vi lave en tabel i din mysql database!
Den kunne meget simpel se sådan her ud:

--
-- Struktur-dump for tabellen `nyheder`
--

CREATE TABLE `nyheder` (
  `id` smallint(6) NOT NULL auto_increment,
  `overskrift` text NOT NULL,
  `nyhed` text NOT NULL,
  `datotid` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci;
Avatar billede stoiss Nybegynder
15. september 2005 - 11:46 #15
går følg. fejl i mysql:

#1064 - 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 'ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci'
Avatar billede stoiss Nybegynder
15. september 2005 - 11:46 #16
får*
Avatar billede jakobdo Ekspert
15. september 2005 - 11:51 #17
Prøv evt at nøjes med:

CREATE TABLE `nyheder` (
  `id` smallint(6) NOT NULL auto_increment,
  `overskrift` text NOT NULL,
  `nyhed` text NOT NULL,
  `datotid` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`)
);
Avatar billede stoiss Nybegynder
15. september 2005 - 11:53 #18
så virkede det :)
Avatar billede stoiss Nybegynder
15. september 2005 - 12:00 #19
hva så?
Avatar billede jakobdo Ekspert
15. september 2005 - 12:01 #20
Så skal vi lave koden til opret_nyhed.php

Kort kunne den laves sådan her:

<?php
require("connect.php"); //Fil som indeholder php kode til at forbinde til mysql (se på www.php.net/mysql_connect

if(isset($_POST['overskrift']) && isset($_POST['nyhed']))
{
$overskrift = mysql_escape_string($_POST['overskrift']);
$nyhed = mysql_escape_string($_POST['nyhed']);
mysql_query("INSERT INTO nyheder(id,overskrift,nyhed,datotid) VALUES('','".$overskrift."','".$nyhed."',NOW())")
}
Avatar billede stoiss Nybegynder
15. september 2005 - 12:08 #21
den der "connect.php" kan den ikke laves sådan:

<?php
$connection = mysql_connect("localhost","user","pass");
mysql_select_db("db", $connection);
?>

eller er jeg igen galt på den?
Avatar billede jakobdo Ekspert
15. september 2005 - 12:14 #22
Det er perfekt! :o)
Avatar billede stoiss Nybegynder
15. september 2005 - 12:18 #23
kanon :)

hva skal jeg så
Avatar billede jakobdo Ekspert
15. september 2005 - 12:32 #24
Så burde du faktisk kunne oprette nyheder.
Avatar billede stoiss Nybegynder
15. september 2005 - 12:36 #25
får en fejl når jeg vil oprette:

Parse error: syntax error, unexpected '}' in D:\mmweb\elever\Dan\exp\opret_nyhed.php on line 11
Avatar billede stoiss Nybegynder
15. september 2005 - 12:38 #26
hmm.. skal op og ha undervisning nu, så kigger når jeg kommer hjem :) men indtil videre tak for hjælpen :)

.S
Avatar billede jakobdo Ekspert
15. september 2005 - 12:44 #27
Prøv at smid din kode fra: opret_nyhed.php herind.
Og så kigger vi bare på det!
Avatar billede stoiss Nybegynder
16. september 2005 - 08:07 #28
her er den:

<html>
<body>
<?php
require("connect.php"); //Fil som indeholder php kode til at forbinde til mysql (se på www.php.net/mysql_connect

if(isset($_POST['overskrift']) && isset($_POST['nyhed']))
{
$overskrift = mysql_escape_string($_POST['overskrift']);
$nyhed = mysql_escape_string($_POST['nyhed']);
mysql_query("INSERT INTO nyheder(id,overskrift,nyhed,datotid) VALUES('','".$overskrift."','".$nyhed."',NOW())")
}
?>
</body>
</html>
Avatar billede jakobdo Ekspert
16. september 2005 - 08:14 #29
ret: mysql_query("INSERT INTO nyheder(id,overskrift,nyhed,datotid) VALUES('','".$overskrift."','".$nyhed."',NOW())")
til:
$query = mysql_query("INSERT INTO nyheder(id,overskrift,nyhed,datotid) VALUES('','".$overskrift."','".$nyhed."',NOW())");
if(mysql_affected_rows()>0)
{
echo "Det gik godt";
}
else
{
echo "Det gik ikke godt : " . mysql_error();
}
Avatar billede stoiss Nybegynder
16. september 2005 - 08:29 #30
nu får jeg en anden fejl:

Parse error: syntax error, unexpected $end in D:\mmweb\elever\Dan\exp\opret_nyhed.php on line 21
Avatar billede stoiss Nybegynder
16. september 2005 - 08:30 #31
nem linje 21 = </html> der burde den da ikke lave fejl?
Avatar billede stoiss Nybegynder
16. september 2005 - 08:31 #32
men*
Avatar billede jakobdo Ekspert
16. september 2005 - 08:35 #33
Hele koden:

<html>
<body>
<?php
require("connect.php"); //Fil som indeholder php kode til at forbinde til mysql (se på www.php.net/mysql_connect

if(isset($_POST['overskrift']) && isset($_POST['nyhed']))
{
    $overskrift = mysql_escape_string($_POST['overskrift']);
    $nyhed = mysql_escape_string($_POST['nyhed']);
    $query = mysql_query("INSERT INTO nyheder(id,overskrift,nyhed,datotid) VALUES('','".$overskrift."','".$nyhed."',NOW())");
    if(mysql_affected_rows()>0)
    {
        echo "Det gik godt";
    }
    else
    {
        echo "Det gik ikke godt : " . mysql_error();
    }
}
?>
</body>
</html>
Avatar billede stoiss Nybegynder
16. september 2005 - 08:38 #34
nu melder den fejl i min connect.php, har haft den edr fejl før, og fandt aldrig ud af hvad det var :-/ måske du kan hjælpe mig med det så jeg ved det til en anden gang?

fejlen:
Warning: mysql_connect() [function.mysql-connect]: Unknown MySQL server host 'chopin.lgo.dk' (11004) in D:\mmweb\elever\Dan\exp\connect.php on line 2

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in D:\mmweb\elever\Dan\exp\connect.php on line 3
Avatar billede jakobdo Ekspert
16. september 2005 - 08:56 #35
Prøv at brug server: beethoven.1go.dk
og ikke chopin
Avatar billede stoiss Nybegynder
16. september 2005 - 09:13 #36
får samme fejl :-/
Avatar billede jakobdo Ekspert
16. september 2005 - 09:21 #37
Har du ikke skrevet LGO og ikke 1go
Avatar billede stoiss Nybegynder
16. september 2005 - 09:26 #38
hmm.. min fejl.. har siddet og testet det på skolensserver, så er det vel klart at den ikke kan connecte til min 1go mysql ...?

men nu har jeg så uploadet det og testet det når jeg skriver noget i overskrift og nyhed og trykkr "Post" kommer edrbare en blank side... og hvor kan jeg egentlig se nyhederne? altså en "index.php" eller sådan noget?
Avatar billede jakobdo Ekspert
16. september 2005 - 09:33 #39
Har du ikke koden:

if(mysql_affected_rows()>0)
    {
        echo "Det gik godt";
    }
    else
    {
        echo "Det gik ikke godt : " . mysql_error();
    }

Så burde der ikke bare være en blank side!

Hvis du åbner phpmyadmin, kan du så se noget data i tabellen: nyheder?
Avatar billede stoiss Nybegynder
16. september 2005 - 09:45 #40
hmm.. jo har det der i min kode, men kan ikke lige umildbart se noget i mysql .. :-/ www.tossen.1go.dk/exp/form.php <- prøv en gang der kommer bare blank side...  her er min kode opret_nyheder.php:

<html>
<body>
<?php
require("connect.php"); //Fil som indeholder php kode til at forbinde til mysql (se på www.php.net/mysql_connect

if(isset($_POST['overskrift']) && isset($_POST['nyhed']))
{
    $overskrift = mysql_escape_string($_POST['overskrift']);
    $nyhed = mysql_escape_string($_POST['nyhed']);
    $query = mysql_query("INSERT INTO nyheder(id,overskrift,nyhed,datotid) VALUES('','".$overskrift."','".$nyhed."',NOW())");
    if(mysql_affected_rows()>0)
    {
        echo "Det gik godt";
    }
    else
    {
        echo "Det gik ikke godt : " . mysql_error();
    }
}
?>
</body>
</html>
Avatar billede jakobdo Ekspert
16. september 2005 - 09:47 #41
Ret din form til -> <form action="opret_nyhed.php" method="POST">
Du bruger GET nu.
Avatar billede stoiss Nybegynder
16. september 2005 - 09:51 #42
hmm.. virker stadig ikk :-/ kommer stadig med blank side
Avatar billede jakobdo Ekspert
16. september 2005 - 09:52 #43
Ret yderligere:
<textarea name="indhold" cols="20" rows="10">
til:
<textarea name="nyhed" cols="20" rows="10">
Avatar billede stoiss Nybegynder
16. september 2005 - 09:54 #44
hmm... stadig blank side... :-/
Avatar billede stoiss Nybegynder
16. september 2005 - 09:57 #45
nu er den kommet videre :) men den siger jeg ikke har valdt nogen database...  men efter hvad jeg kan se har jeg valdt "nyheder"

<?php
$connection = mysql_connect("chopin.1go.dk","******","******");
mysql_select_db("nyheder", $connection);
?>
Avatar billede jakobdo Ekspert
16. september 2005 - 09:59 #46
Prøv at ret din connect.php til:

<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
  die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
  die ('Can\'t use foo : ' . mysql_error());
}
?>

Så får du evt. fejl hvis den fejler...
Avatar billede stoiss Nybegynder
16. september 2005 - 10:03 #47
får fejlen:

Can't use foo : Access denied for user: 'free59014@%' to database 'nyheder'
Avatar billede jakobdo Ekspert
16. september 2005 - 10:06 #48
Så er der nogle informationer du ikke indtaster korrekt.
Avatar billede stoiss Nybegynder
16. september 2005 - 10:13 #49
nu skriver den "det gik godt" hvor kan jeg så læse nyheden hvis den er tilføjet? :)
Avatar billede jakobdo Ekspert
16. september 2005 - 10:21 #50
Du kan f.eks lave en nyhedsside:

<html>
<body>
<?php
require("connect.php"); //Fil som indeholder php kode til at forbinde til mysql (se på www.php.net/mysql_connect

if(isset($_POST['overskrift']) && isset($_POST['nyhed']))
{
    $query = mysql_query("SELECT id,overskrift,nyhed,datotid ORDER BY datotid");
    if(mysql_num_rows($query)>0)
    {
        while($row = mysql_fetch_assoc($query))
{
echo $row['overskrift'] . " - " . $row['nyhed'] . "<br>";
}
    }
    else
    {
        echo "Der er ingen nyheder";
    }
}
?>
</body>
</html>
Avatar billede stoiss Nybegynder
16. september 2005 - 10:25 #51
har kaldt den "index.php" men den er bare blank selm om jeg har postet en nyhed ..
Avatar billede jakobdo Ekspert
16. september 2005 - 10:28 #52
Jeg sover stadig indeni! :o)

<html>
<body>
<?php
require("connect.php"); //Fil som indeholder php kode til at forbinde til mysql (se på www.php.net/mysql_connect

$query = mysql_query("SELECT id,overskrift,nyhed,datotid ORDER BY datotid");
if(mysql_num_rows($query)>0)
{
    while($row = mysql_fetch_assoc($query))
    {
        echo $row['overskrift'] . " - " . $row['nyhed'] . "<br>";
    }
}
else
{
    echo "Der er ingen nyheder";
}
?>
</body>
</html>
Avatar billede stoiss Nybegynder
16. september 2005 - 10:30 #53
så får jeg den her:


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /free1go/t/o/www.tossen.1go.dk/exp/index.php on line 7

og nedenunder skriver den så"der er ingen nyheder"
Avatar billede jakobdo Ekspert
16. september 2005 - 10:31 #54
Ret: SELECT id,overskrift,nyhed,datotid ORDER BY datotid
til: SELECT id,overskrift,nyhed,datotid FROM nyheder ORDER BY datotid
Avatar billede stoiss Nybegynder
16. september 2005 - 10:33 #55
det virker :D jeg takker mange gange :) skal du ha fler point end dem der er sat? :)
Avatar billede jakobdo Ekspert
16. september 2005 - 10:34 #56
Det er fint nok! :o)
Avatar billede stoiss Nybegynder
16. september 2005 - 10:35 #57
okay :)
Avatar billede stoiss Nybegynder
16. september 2005 - 10:49 #58
lige en sidste, hvordan kan jeg "dele" nyhederne op? altså med en streg mellem hver nyhed eller sådan noget? :)
Avatar billede jakobdo Ekspert
16. september 2005 - 10:52 #59
Ret: echo $row['overskrift'] . " - " . $row['nyhed'] . "<br>";
til: echo $row['overskrift'] . " - " . $row['nyhed'] . "<hr>";
Avatar billede stoiss Nybegynder
16. september 2005 - 10:53 #60
takker :)
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