Avatar billede noodrem Nybegynder
16. marts 2004 - 08:43 Der er 5 kommentarer og
1 løsning

Database error

Hej

Jeg får følg error:

You have an error in your SQL syntax near ''nyhed', 'x', '')' at line 1

Hvis, der ingen fejl er, og der skal indsættes noget i min database i følg script:


<?
if(!isset($_SESSION['user'])) {
    include("include/login/needlogin.php");
} else {

$udfyld = "<div class='red'>Du skal udfylde dette felt</div>";
$overskrift = $_REQUEST['overskrift'];
$nyhed = $_REQUEST['nyhed'];

if(!isset($_REQUEST['submit'])) {
    $udfyld_overskrift = "";
    $udfyld_nyhed = "";
    $red_overskrift = "";
    $red_end_overskrift = "";
    $red_nyhed = "";
    $red_end_nyhed = "";
    $fejl = ""; 
} else {
    $red = "<div class='red'>";
    $red_end = "</div>";
   
    if($overskrift == "") {
        $udfyld_overskrift = $udfyld;
        $red_overskrift = $red;
        $red_end_overskrift = $red_end;
        $fejl = "fejl";
        $skriv_overskrift = "$overskrift";
    } else {
        $udfyld_overskrift = "";
        $red_overskrift = "";
        $red_end_overskrift = "";
        $skriv_overskrift = "";
    }
    if($nyhed == "") {
        $udfyld_nyhed = $udfyld;
        $red_nyhed = $red;
        $red_end_nyhed = $red_end;
        $fejl = "";
        $skriv_nyhed = "$nyhed";
        $fejl = "fejl";
    } else {
        $udfyld_nyhed = "";
        $red_nyhed = "";
        $red_end_nyhed = "";
        $skriv_nyhed = "";
    }
    if(isset($fejl)) {
    echo "";
    } else {
        $id = microtime();
        mysql_connect("localhost", "root");
        mysql_Select_db("slumkum");
     
        $navn = $_SESSION['user'];
        $query_mail = mysql_query("select mail from users where navn = '$navn'");

        $mail = $row['mail'];
        $dato = date("d-m-Y k\l. H:i:s");
       
        $query_insert = mysql_query("INSERT INTO nyheder (id, dato, nyhed, overskrift, mail, navn) VALUES ('$id', '$dato', $'nyhed', '$overskrift', '$mail')")
        or die(mysql_error());
        header("location:192.168.1.240/index2.php");
    }

}       
     

$self = $_SERVER['REQUEST_URL'];
?>
<form action="<? echo "$self"; ?>" method="post">
  Her kan du tilføje nyheder<p />
  <div class="bold">Overskrift</div>
    <input type="text" name="overskrift" /><? echo "$udfyld_overskrift"; ?><p />
  <div class="bold">Nyhed</div><textarea name="nyhed" rows="10" cols="40"/></textarea><? echo "$udfyld_nyhed"; ?><p />
  <input type="submit" name="submit" value="Tilføj">
</form>
<? } ?>



Mine kolonner i tabellen nyheder ser således ud:


+------------+------+------+-----+---------+-------+
| Field      | Type | Null | Key | Default | Extra |
+------------+------+------+-----+---------+-------+
| id        | text | YES  |    | NULL    |      |
| dato      | text | YES  |    | NULL    |      |
| nyhed      | text | YES  |    | NULL    |      |
| overskrift | text | YES  |    | NULL    |      |
| rediger    | text | YES  |    | NULL    |      |
| mail      | text | YES  |    | NULL    |      |
| navn      | text | YES  |    | NULL    |      |
+------------+------+------+-----+---------+-------+


Hvad gør jeg forkert, og hvorfor får jeg denne fejlmedd.?
Avatar billede limemedia Nybegynder
16. marts 2004 - 08:47 #1
$'nyhed' skal være '$nyhed'

Så din linie
$query_insert = mysql_query("INSERT INTO nyheder (id, dato, nyhed, overskrift, mail, navn) VALUES ('$id', '$dato', $'nyhed', '$overskrift', '$mail')") or die(mysql_error());

Skal være
$query_insert = mysql_query("INSERT INTO nyheder (id, dato, nyhed, overskrift, mail, navn) VALUES ('$id', '$dato', '$nyhed', '$overskrift', '$mail')") or die(mysql_error());
Avatar billede noodrem Nybegynder
16. marts 2004 - 08:51 #2
Nu har jeg rettet det, men modtager nu følg fejlmedd:

Column count doesn't match value count at row 1
Avatar billede limemedia Nybegynder
16. marts 2004 - 08:53 #3
Du har glemt $navn i din value liste

$query_insert = mysql_query("INSERT INTO nyheder (id, dato, nyhed, overskrift, mail, navn) VALUES ('$id', '$dato', '$nyhed', '$overskrift', '$mail', '$navn')") or die(mysql_error());
Avatar billede noodrem Nybegynder
16. marts 2004 - 09:00 #4
nu tilføjer den nyheden til databasen, men nu modtager jeg denne fejlmedd:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/jakob/sider/include/nyheder/forside.php on line 19

forside.php ser således ud:


<?

mysql_connect("localhost", "root");
mysql_select_db("slumkum");

$result_query = mysql_query('select * from nyheder') or die(mysql_error());
$number = mysql_num_rows($result_query);

if($number < 1) {
    echo "Der er ikke tilføjet nogle nyheder.";
} else {
    $id = $row['id'];
    $navn = $row['navn'];
    $mail = $row['mail'];
    $overskrift = nl2br($row['overskrift']);
    $nyhed = nl2br($row['nyhed']);
    $rediger = $row['rediger'];
    $result_rediger = mysql_query("select rediger from users where id='$id'");
    $number_rediger = mysql_num_rows($result_rediger); // Linje 19
   
    while($row = mysql_fetch_array($result_query)) {
        echo "<div class='nyheder'>"; // Nyheder (gennemgående)
        echo "<div class='nyheder_info'>"; // Nyhedsinfo
        echo "<div class='info_forfatter'><skrevet af <a mailto:$mail>$navn</a></div>"; // Forfatter   
        echo "<div class='dato'>$dato <p /></div></div>"; // dato
        echo "<div class='nyhed_overskrift'>$overskrift <p /></div>"; // Overskrift
        echo "$nyhed"; // Nyhed
        if($number_rediger > 0) {
            echo "<div class='nyheder_info'>Redigeret af: <div class='nyhed_overskrift'>$rediger</div></div>";
        } else {
            echo "";
        }
        if(isset($_SESSION['user'])) {
            echo "<p /><a href='.../index2.php?side=rediger&id=$id>Rediger</a>  <a href='.../index2.php?side=slet&id=$id'>Slet</a></div";
        } else {
            echo "";
        }
        echo "</div>"; // Slutter nyheder (gennemgående)
  }
}

?>
Avatar billede limemedia Nybegynder
16. marts 2004 - 09:04 #5
Hmm, var det ikke noget med ét spørgsmål pr. side ? :)

Prøv at udskifte
$result_rediger = mysql_query("select rediger from users where id='$id'");

med
$result_rediger = mysql_query("select rediger from users where id='$id'") or die(mysql_error());

så du får en fejlmeddelelse ud - du kan sikkert udfra fejlmeddelelsen finde ud af hvad problemet er
Avatar billede sukos Juniormester
16. marts 2004 - 17:08 #6
$result_query = mysql_query("SELECT * FROM `nyheder`") or die(mysql_error());
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