Avatar billede funny Nybegynder
27. juni 2007 - 15:17 Der er 27 kommentarer og
1 løsning

fejl i koden.

Jeg har nogen fejl i den her kode. er der en der kan hjælpe mig da jeg ikke er så god til det.

<?php
if (isset($_POST['addnow']) == "add"){
include 'config.php';
$date            = $_POST['date'];
$before          = $_POST['before'];
$after          = $_POST['after'];
$formally        = $_POST['formally'];
}
else
    {
    $query = "INSERT INTO `".$table."` VALUES ('', '".$date."', '".$before."', '".$after."' , '".$formally."')";
    mysql_query($query) or die("Kan ikke med sqlen - ".mysql_error());
    }
?>
Avatar billede masik7 Nybegynder
27. juni 2007 - 15:34 #1
Prøv med
<?php
if (isset($_POST['addnow']) == "add"){
include 'config.php';
$date = $_POST['date'];
$before = $_POST['before'];
$after = $_POST['after'];
$formally = $_POST['formally'];
}
else
    {
    $query = "INSERT INTO `".$table."` (date, before, after, formally) VALUES ('".$date."', '".$before."', '".$after."' , '".$formally."')";
    mysql_query($query) or die("Kan ikke med sqlen - ".mysql_error());
    }
?>
Avatar billede masik7 Nybegynder
27. juni 2007 - 15:36 #2
Er det ikke bare:
<?php
if (isset($_POST['addnow']) == "add"){
include 'config.php';
$date = $_POST['date'];
$before = $_POST['before'];
$after = $_POST['after'];
$formally = $_POST['formally'];
$query = "INSERT INTO `".$table."` (date, before, after, formally) VALUES ('".$date."', '".$before."', '".$after."' , '".$formally."')";
mysql_query($query) or die("Kan ikke med sqlen - ".mysql_error());
}
?>
Avatar billede jakobdo Ekspert
27. juni 2007 - 16:01 #3
Hvor kommer $table fra? config?

men eller prøv:

<?php
if (isset($_POST['addnow']) == "add")
{
    include 'config.php';
    $date    = mysql_real_escape_string($_POST['date']);
    $before  = mysql_real_escape_string($_POST['before']);
    $after    = mysql_real_escape_string($_POST['after']);
    $formally = mysql_real_escape_string($_POST['formally']);
   
    $query = "INSERT INTO `".$table."` VALUES ('', '".$date."', '".$before."', '".$after."' , '".$formally."')";
    mysql_query($query) or die("Kan ikke med sqlen - ".mysql_error());
}
?>
Avatar billede funny Nybegynder
27. juni 2007 - 21:32 #4
er der en lætter måde at lave det på for den her kan jeg ikke få til at virke.
Avatar billede jakobdo Ekspert
27. juni 2007 - 21:46 #5
Ja
Avatar billede funny Nybegynder
27. juni 2007 - 21:49 #6
jakobdo kan jeg få dig til at vise mig det.
Avatar billede jakobdo Ekspert
27. juni 2007 - 21:57 #7
Nej, for jeg ved ikke hvad det er du vil lave.
Men du kan jo prøve at forklare, så kan vi da gøre forsøget.
Avatar billede funny Nybegynder
27. juni 2007 - 22:00 #8
det jeg skal kunne er at jeg har 4 tekstfelter som jeg skal putte ind i sqlen.
Avatar billede jakobdo Ekspert
27. juni 2007 - 22:04 #9
Prøv at kom med et SQLDUMP af din tabel, så vi kan se hvordan din tabel er bygget op.
Avatar billede funny Nybegynder
27. juni 2007 - 22:10 #10
CREATE TABLE `test` (
  `id` int(11) NOT NULL auto_increment,
  `date` text NOT NULL,
  `before` text NOT NULL,
  `after` text NOT NULL,
  `formally` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Avatar billede cronick Nybegynder
28. juni 2007 - 00:57 #11
Prøv:
<?php
if(isset($_POST['addnow']) == "add"){

include 'config.php';
$date = $_POST['date'];
$before = $_POST['before'];
$after = $_POST['after'];
$formally = $_POST['formally'];

mysql_query("INSERT INTO `test` (date, before, after, formally) VALUES ('$date', '$before', '$after', '$formally')")or die("Kan ikke med sqlen - ".mysql_error());

}
?>
Avatar billede jakobdo Ekspert
28. juni 2007 - 07:46 #12
Brug cronick's forslag og tilføj evt. lige:

$date    = mysql_real_escape_string($_POST['date']);
$before  = mysql_real_escape_string($_POST['before']);
$after    = mysql_real_escape_string($_POST['after']);
$formally = mysql_real_escape_string($_POST['formally']);

Så burde du have en fungerende kode.
Avatar billede funny Nybegynder
28. juni 2007 - 09:19 #13
Kan ikke med sqlen - 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 'before, after, formally) VALUES ('cddc', 'dscds', 'csdcsd', 'cs ')' at line 1
Avatar billede jakobdo Ekspert
28. juni 2007 - 09:48 #14
(date, before, after, formally) skal være:
('date', 'before', 'after', 'formally')
Avatar billede funny Nybegynder
28. juni 2007 - 10:03 #15
Nu ser den sådan ud men laver den samme fejl?
<?php
if(isset($_POST['addnow']) == "add"){

include 'config.php';
$date = $_POST['date'];
$before = $_POST['before'];
$after = $_POST['after'];
$formally = $_POST['formally'];

mysql_query("INSERT INTO `test` ('date', 'before', 'after', 'formally') VALUES ('$date', '$before', '$after', '$formally')")or die("Kan ikke med sqlen - ".mysql_error());

}
?>
Avatar billede jakobdo Ekspert
28. juni 2007 - 10:08 #16
Kan det være fordi date er reserveret ord?
date er jo en datatype.
Prøv at ret til: dato
Og husk også at ret tabellen.
Avatar billede funny Nybegynder
28. juni 2007 - 10:15 #17
Kan ikke med sqlen - 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 ''dato', 'before', 'after', 'formally') VALUES ('', '2', '3', '4')' at line 1
Avatar billede funny Nybegynder
28. juni 2007 - 10:17 #18
skal den se sådan ud ''dato',

her er den nye
Kan ikke med sqlen - 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 ''dato', 'before', 'after', 'formally') VALUES ('12', '13', '14', '15')' at line 1
Avatar billede pidgeot Nybegynder
28. juni 2007 - 10:29 #19
Du skal ikke sætte '' om feltnavne - hvis de skal escapes pga. reserverede ord, skal der `` udenom.

*går igen*
Avatar billede jakobdo Ekspert
28. juni 2007 - 10:29 #20
Vis os lige din kode igen og SQLDUMP.
Avatar billede funny Nybegynder
28. juni 2007 - 10:46 #21
<?php
if(isset($_POST['addnow']) == "add"){
include 'config.php';
$dato = $_POST['dato'];
$before = $_POST['before'];
$after = $_POST['after'];
$formally = $_POST['formally'];

mysql_query("INSERT INTO `test` ('dato', 'before', 'after', 'formally') VALUES ('$dato', '$before', '$after', '$formally')")or die("Kan ikke med sqlen - ".mysql_error());

}
?>

Kan ikke med sqlen - 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 ''dato', 'before', 'after', 'formally') VALUES ('u', 'jk', 'jk', 'j')' at line 1

CREATE TABLE `test` (
  `id` int(11) NOT NULL auto_increment,
  `dato` text NOT NULL,
  `before` text NOT NULL,
  `after` text NOT NULL,
  `formally` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Avatar billede jakobdo Ekspert
28. juni 2007 - 11:23 #22
Prøv at lav en insert via phpmyadmin og kopier den kode som bruger via insert.
Så kan vi rette og bruge den i din kode.
Det er måske det nemmeste.
Avatar billede funny Nybegynder
28. juni 2007 - 13:34 #23
Før

INSERT INTO `test` ( `id` , `dato` , `before` , `after` , `formally` )
VALUES (
NULL , '28-06-2007', '1', '2', '3'
);

Og dump

--
-- Struktur-dump for tabellen `test`
--

CREATE TABLE `test` (
  `id` int(11) NOT NULL auto_increment,
  `dato` text NOT NULL,
  `before` text NOT NULL,
  `after` text NOT NULL,
  `formally` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Data dump for tabellen `test`
--

INSERT INTO `test` VALUES (1, '28-06-2007', '1', '2', '3');
Avatar billede funny Nybegynder
28. juni 2007 - 13:38 #24
og selve siden ser sådan ud.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>

  <?php
if(isset($_POST['addnow']) == "add"){

include 'config.php';
$dato = $_POST['dato'];
$before = $_POST['before'];
$after = $_POST['after'];
$formally = $_POST['formally'];

mysql_query("INSERT INTO `test` ('dato', 'before', 'after', 'formally') VALUES ('$dato', '$before', '$after', '$formally')")or die("Kan ikke med sqlen - ".mysql_error());

}
?> <form action="<? echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
  <table border="0" align="center" cellspacing="3">
  <tr>
    <td><div align="center"></div></td>
  </tr>
  <tr>
    <td>      <input name="dato" type="text" size="20" />    </td>
    </tr>
  <tr>
    <td><label>
      <input name="before" type="text" size="20" />
    </label></td>
    </tr>
  <tr>
    <td><input name="after" type="text" size="20" /></td>
    </tr>
  <tr>
    <td><input name="formally" type="text" size="20" /></td>
    </tr>
  <tr>
    <td><div align="center"><input name="addnow" type="submit" class="style1" value="Tilf&oslash;j" />
    </div></td>
    </tr>
</table>
</form>
</body>
</html>
Avatar billede cronick Nybegynder
28. juni 2007 - 16:20 #25
(date, before, after, formally) -> ('date', 'before', 'after', 'formally') ændrer ikke på noget, idet det forskellen er det samme som $variabel["celle"] og $variabel['celle'] - de virker begge, og kan bruges som man vil..

- Er fejlen stadig tilstedeværende?
Avatar billede funny Nybegynder
20. august 2007 - 12:04 #26
Lukker den her er der nogen der laver et svar så i kan få point
Avatar billede jakobdo Ekspert
20. august 2007 - 12:35 #27
Svar
Avatar billede jakobdo Ekspert
20. august 2007 - 13:03 #28
Takker for point.
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