Avatar billede hent-det Nybegynder
25. maj 2006 - 14:23 Der er 11 kommentarer og
1 løsning

Sende info til mysql database

Hey,

Jeg prøver på at lave et nyheds system. Derfor vil jeg lave en side med nogle formler på. Når jeg har udfyldt de formler skal jeg så sende dem videre til min Mysql database. Men jeg er i tvivl om hvordan jeg skal gøre dette. Ind til videre har jeg lavet en "formel side" som ser således ud.

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

<form action="gem.php" method="post">
<table border="0" cellpadding="5" cellspacing="0">
<tr>
  <td align="right"><strong>Forfatter:</strong></td>
  <td><input type="text" name="forfatter" size="30" maxsize="100"></td></tr>
<tr>
  <td align="right"><strong>Overskrift:</strong></td>
  <td><input type="text" name="overskrift" size="30" maxsize="100"></td></tr>
<tr>
  <td align="right" valign="top"><strong>Indledning:</strong></td>
  <td><textarea cols="50" rows="10" name="indledning"></textarea></td>
</tr>
<tr>
  <td align="right" valign="top"><strong>Nyheden:</strong></td>
  <td><textarea cols="50" rows="10" name="nyhed"></textarea></td>
</tr>
<tr><td></td><td><input type="submit" value="skriv"></td></tr>
</table>
</form>

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

Som i kan se øverst i koden står der jeg vil sende tingene til "gem.php", her kommer mit problem. Jeg ved ikke hvordan jeg skal lave den sidde så min database får de ting jeg har skrevet. Det eneste jeg har på min "gem.php" side ligenu er dette :

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

<html>
<head>
<title>nyheds system</title>
</head>

<body>
<?php
$conn = mysql_connect("xx", "xx", "xx");
mysql_select_db("xx");

?>
</body>
</html>

---------------------------------------------------------------
Avatar billede dimsushi Nybegynder
25. maj 2006 - 15:10 #1
if(isset($_POST['submit'])){
  $insert = mysql_query("INSERT INTO nyheder (forfatter, overskrift, indledning, nyhed) VALUES ($_POST['$forfatter'], $_POST['$overskrift'], $_POST['$indledning'], $_POST['$nyhed'])")  or die(mysql_error());
  $message = '<b>Din nyhed er blevet tilføjet til databasen!</b>';
}

Du bør også lave nogle tjeks for input og noget sikkerhed. Generelt bør du nok læse om både sikkerhed og mySQL statements. :)
Avatar billede hent-det Nybegynder
25. maj 2006 - 15:47 #2
Hej dimsushi

Nu har jeg lavet gem.php således:

<html>
<head>
<title>Untitled Document</title>
</head>

<body>
<?php
$conn = mysql_connect("x", "x", "x");
mysql_select_db("x");


if(isset($_POST['submit'])){
  $insert = mysql_query("INSERT INTO news (author, overskrift, synopsis, nyhed) VALUES ($_POST['$forfatter'], $_POST['$overskrift'], $_POST['$indledning'], $_POST['$nyhed'])")  or die(mysql_error());
  $message = '<b>Din nyhed er blevet tilføjet til databasen!</b>';
}

?>
</body>
</html>


Men den indsætter det ikke i min database.
Avatar billede dimsushi Nybegynder
25. maj 2006 - 15:51 #3
<input type="submit" name="submit" value="skriv">

Prøv at brug den der som din submit knap. :)
Avatar billede hent-det Nybegynder
25. maj 2006 - 15:57 #4
Det hjalp ikke. Når jeg trykker på "skriv" knappen kommer jeg ind på "gem.php" men der står intet.

og når jeg tjekker min database har den heller ikke fået noget.
Avatar billede hent-det Nybegynder
25. maj 2006 - 15:58 #5
Men den skriver heller ikke nogen fejl til mig. En smule underligt.
Avatar billede dimsushi Nybegynder
25. maj 2006 - 16:07 #6
if(isset($_POST['submit'])){
  $insert = mysql_query("INSERT INTO news (author, overskrift, synopsis, nyhed) VALUES ($_POST['forfatter'], $_POST['overskrift'], $_POST['indledning'], $_POST['nyhed'])")  or die(mysql_error());
  echo '<b>Din nyhed er blevet tilføjet til databasen!</b>';
}

Prøv det her. Burde virke, men jeg skriver ikke så god kode når jeg ikke selv tester det. Håber det virker ellers skriver du bare igen. :)
Avatar billede hent-det Nybegynder
25. maj 2006 - 16:12 #7
Der sker det samme igen - altså intet. :(
Avatar billede dimsushi Nybegynder
25. maj 2006 - 16:21 #8
Hvis den ikke skriver noget på gem.php er det ensbetydende med at den springer if(isset...) over. Prøv lige for en tests skyld at fjern det og se om den skriver til databasen eller laver en fejl? :)
Avatar billede hent-det Nybegynder
25. maj 2006 - 16:26 #9
Nu fjernede jeg det, men jeg får slet ikke nogen fejl. Så fejlen ligger nok ikke i koden
Avatar billede dimsushi Nybegynder
25. maj 2006 - 16:35 #10
Har du b-one som host? Hvis ja så skal du aktiverer fejlmeldinger i deres advancerede indstillinger. Her er noget kode jeg selv har brugt som måske kan hjælpe dig. :)

if(isset($_POST['submit']) && $_REQUEST["act"] == 'add'){
            $titel = addslashes($_POST['titel']);
            $short_text = addslashes($_POST['short_text']);
            $long_text = addslashes($_POST['long_text']);
            $category = addslashes($_POST['category']);
           
            if (empty($titel)) {
                $message = '<b>Husk at skrive en titel!</b>';
            } elseif (empty($short_text)) {
                $message = '<b>Husk at skrive en kort historie!</b>';
            } elseif (empty($long_text)) {
                $message = '<b>Husk at skrive en lang historie!</b>';
            } elseif ($category == "none") {
                $message = '<b>Husk at vælge en kategori!</b>';
            } else {
                $InfoArray = $SDK->get_info(); //$InfoArray['name']
                $name = $InfoArray['name'];
                $time = time();
                $insert = mysql_query("INSERT INTO eg_news (category, poster, posting_time, titel, short_text, long_text) VALUES ('$category', '$name', '$time', '$titel', '$short_text', '$long_text')")  or die(mysql_error());
                $message = '<b>Din nyhed er blevet tilføjet til databasen!</b>';
            }
        }
       
       
        echo $message;
        ?>
        <hr />
        <form action="news.php?act=add" method="post">
            <table>
                <tr>
                    <td><b>Titel:</b></td>
                    <td><input type="text" name="titel" size="53"></td>
                </tr>
                <tr>
                    <td valign="top"><b>Kort Historie:</b></td>
                    <td><textarea name="short_text" rows="3" cols="40"></textarea></td>
                </tr>
                <tr>
                    <td valign="top"><b>Lang Historie:</b></td>
                    <td><textarea name="long_text" rows="13" cols="40"></textarea></td>
                </tr>
                <tr>
                    <td><b>Kategori:</b></td>
                    <td>
                        <select name="category">
                            <option value="none">Vælg Kategori
                            <option value="Siden">Siden
                            <option value="eMule">eMule
                            <option value="Misc">Misc
                        </select>
                        <input type="submit" name="submit" value="Tilføj Nyhed" />
                    </td>
                </tr>
            </table>       
        </form>
Avatar billede hent-det Nybegynder
25. maj 2006 - 17:08 #11
Hej dimsushi

Nu virker det, jeg brugte din kode og lavede om på det så det passede til mit.

Mange tak, smid et svar! :)
Avatar billede dimsushi Nybegynder
25. maj 2006 - 22:21 #12
Det var godt. Glad for det kom til at virke. :)
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

IT-JOB

Capgemini Danmark A/S

Client Partner

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger en IT-supporterelev til lokal IT på Haderslev Kaserne