Avatar billede turbodk Nybegynder
27. august 2009 - 21:48 Der er 12 kommentarer og
1 løsning

Vil ikke skrive til database

Hej..
Jeg er ved at kode en side som skal kunne poste og vise nogle posts i en form for blog format, jeg har imidlertid problemer med at skrive data til databasen...

<--- aoptakt.php --->

<?php
    include("../mysqldata.php");

    if($titel != "" AND $forfatter != "" AND $content1 != "" AND content2 != "" AND content3 != "") {
        echo "Optakten er tilføjet databasen!<br>Optakten skal godkendes før den vises for alle, vær venlig ikke selv at gøre dette, men mind i stedet en anden admin om det. Godkendelsesprocessen er med til at holde det skriftlige niveau her på FirstTouch.dk oppe.";
        $type = "OPTAKT";
        $check = "0";
        $db = mysql_connect($db_host, $db_user, $db_password);
        mysql_select_db($db_name, $db);
            mysql_query("INSERT INTO content (titel, forfatter, content1, content2, content3, type, check) VALUES ('$titel', '$forfatter', '$content1', '$content2', '$content3', '$type', '$check')"); }
    else {
?>

<form method="post" action="index.php?side=aoptakt">
        <table>
            <tr>
                <td align="right" valign="center">Overskrift:&nbsp;&nbsp;&nbsp;</td>
                <td align="left" valign="center"><input type="text" name="titel"></td>
            </tr><tr>
                <td align="right" valign="center">Forfatter:&nbsp;&nbsp;&nbsp;</td>
                <td align="left" valign="center"><select name="forfatter"><?php include('forfattere.php'); ?></select></td>
            </tr><tr>
                <td align="right" valign="center">Appetizer:&nbsp;&nbsp;&nbsp;</td>
                <td align="left" valign="center"><input type="text" name="content1"></td>
            </tr><tr>
                <td align="right" valign="center">Indledning:&nbsp;&nbsp;&nbsp;</td>
                <td align="left" valign="center"><input type="text" name="content2"></td>
            </tr><tr>
                <td align="right" valign="center">Main Content:&nbsp;&nbsp;&nbsp;</td>
                <td align="left" valign="center"><input type="text" name="content3"></td>
            </tr><tr>
                <td align="right" valign="center"></td>
                <td align="left" valign="center"><input type="submit" value="Send"></td>
            </tr>
        </table>
</form>

<?php } ?>

<--- aoptakt.php --->

Filen er included i en index, så der mangler ikk html og lignende :)

Problemet er at den nærmest bare sletter alt jeg skriver i de felter og gør ingenting når jeg trykker på submit-knappen...

Sætter jeg alle != til == så gør den som planmæssigt, tilføjer til databasen men det er jo bare tomme felter... Hvad gør jeg galt?
Avatar billede olebole Juniormester
27. august 2009 - 21:59 #1
<ole>

Med mindre du bruger en oldgammel og usikker PHP version/opsætning, skal du finde dine variabler i $_POST array'et:
    $_POST["titel"], $_POST["forfatter"], osv

/mvh
</bole>
Avatar billede turbodk Nybegynder
27. august 2009 - 22:33 #2
Altså jeg skal lave det her:
mysql_query("INSERT INTO content (titel, forfatter, content1, content2, content3, type, check) VALUES ('$titel', '$forfatter', '$content1', '$content2', '$content3', '$type', '$check')"); }

Til det her:
mysql_query("INSERT INTO content (titel, forfatter, content1, content2, content3, type, check) VALUES ($_POST["titel"], $_POST["forfatter"], $_POST["content1"], $_POST["content2"], $_POST["content3"], $_POST["type"], $_POST["check"])"); }

Hvad så med det her:
if($titel != "" AND $forfatter != "" AND $content1 != "" AND content2 != "" AND content3 != "")
Avatar billede olebole Juniormester
27. august 2009 - 22:38 #3
Jamen, det skal du naturligvis også lave om  =)
Avatar billede turbodk Nybegynder
27. august 2009 - 22:50 #4
Det hjælper ikke :/
Nu stopper den bare med at indlæse siden når den når til det punkt hvor jeg har includede ovenstående fil, er der andre steder det skal rette stil?

Nede i formen måske?
Avatar billede olebole Juniormester
27. august 2009 - 22:59 #5
Skriv allerførst i dokumentet:


<?php
    error_reporting(E_ALL);
    include("../mysqldata.php");
    // ... osv ... osv ...



- og tilføj også debugging i kaldet:


mysql_query("INSERT INTO content (titel, forfatter, content1, content2, content3, type, check) VALUES ($_POST["titel"], $_POST["forfatter"], $_POST["content1"], $_POST["content2"], $_POST["content3"], $_POST["type"], $_POST["check"])") or die (mysql_error()); }

Avatar billede olebole Juniormester
27. august 2009 - 23:02 #6
- og så har du ged i dine gåseøjne:


mysql_query("INSERT INTO content (titel, forfatter, content1, content2, content3, type, check) VALUES (".$_POST["titel"].", ".$_POST["forfatter"].", ".$_POST["content1"].", ".$_POST["content2"].", ".$_POST["content3"].", ".$_POST["type"].", ".$_POST["check"].")") or die (mysql_error()); }

Avatar billede olebole Juniormester
27. august 2009 - 23:39 #7
Prøv at backtick'e dine feltnavne:
    (`titel`, `forfatter`, `content1`, `content2`, `content3`, `type`, `check`)
Avatar billede turbodk Nybegynder
27. august 2009 - 23:23 #8
Så nu skete der noget :)
Nu kommer den videre, og skriver mine echo's ud..

Men den afslutter med følgende linje:
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 'check) VALUES (opkopk, Joakim, okopk, opkopkopkopk, opkop, OPTAKT, 0)' at line 1
Avatar billede turbodk Nybegynder
28. august 2009 - 20:49 #9
Igen skete der en reaktion :P

Nu kommer jeg igen videre, og får udskrevet min echo, sammen med følgende fejl:

Unknown column 'okpoko' in 'field list'

Det felt jeg skrev 'okpoko' (Jeg tastede bare noget tilfældigt xD) var titel-feltet.

Kan jeg sætte pointene lidt op? Det er vi vidst ved at være ude i? :P
Avatar billede olebole Juniormester
28. august 2009 - 23:36 #10
Sorry, det mig,der kvajer mig  :o|


mysql_query("INSERT INTO `content` (`titel`, `forfatter`, `content1`, `content2`, `content3`, `type`, `check`) VALUES ('".$_POST["titel"]."', '".$_POST["forfatter"]."', '".$_POST["content1"]."', '".$_POST["content2"]."', '".$_POST["content3"]."', '".$_POST["type"]."', '".$_POST["check"]."')") or die (mysql_error()); }



- så skulle det gerne virke  =)
Avatar billede turbodk Nybegynder
29. august 2009 - 00:11 #11
Lol ja det er dig der kvajer dig xD
Nej det virker sgu, titusinde tak for hjælpen :)

Hvis du har en metode jeg kan sætte pointene lidt op, og er intereseret i det vil jeg meget gerne tilbyde dig noget mere, men ellers så smid et svar og så får du dine 60 point :)

Igen, mange tak :)
Avatar billede olebole Juniormester
29. august 2009 - 00:27 #12
Selvtak - og 60 points er helt fint med mig  =)
Avatar billede olebole Juniormester
29. august 2009 - 11:11 #13
Tak for points  =)
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