Nog en dålig titel. //$query = "INSERT INTO kommentarer SET nid='$nid', titel ='$titel', namn='$namn', datum='$datum', innehall='$innehall'"; har testat båda varianterna, men som sagt löste det ändå.Postar inte variabler till db
Försöker att få min kod att fungera så att den postar $nid till databasen så att jag kan koppla detta till mina inlägg och använda när jag skriver en kommentar om denna.
Skriver jag i INSERT som det är i koden utan nid, så kommer allt till db, men använder jag nid så kommer inget till db.
Vet inte hur jag löser detta eller skriver för att det ska funka.
Tabellen i databasen:
CREATE TABLE IF NOT EXISTS `kommentarer` (
`id` int(11) NOT NULL auto_increment,
`nid` int(11) NOT NULL default '0',
`titel` varchar(255) NOT NULL,
`namn` varchar(255) NOT NULL,
`datum` varchar(255) NOT NULL,
`innehall` text NOT NULL,
PRIMARY KEY (`id`),
KEY `nid` (`nid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
<?php
// ===========================================================================================
require_once('CHTMLPage.php');
$title = "PTemplate1Columns";
$style = "1-kolumns.css";
$page = new CHTMLPage($style);
$page->printHTMLHeader('Fooglers blogg idag den ' . date(DATE_RFC822));
if (isset($_POST['submit'])) {
}
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if (mysqli_connect_error()) {
echo "Connect failed: ".mysqli_connect_error()."<br>";
//exit();
}
$titel= $_POST['titel'];
$namn = $_POST['namn'];
$innehall = $_POST['innehall'];
$datum = date('Y-m-d H-i-s');
$nid = $_GET['nid'];
$query = "INSERT INTO kommentarer SET titel='$titel', namn='$namn', datum='$datum', innehall='$innehall'" or die(mysqli_error());
// $query = "INSERT INTO kommentarer SET nid='$nid', titel ='$titel', namn='$namn', datum='$datum', innehall='$innehall'";
// echo $query ;
//$nid = $_GET['id'];
//$query = ("INSERT INTO kommentarer SET (nid, titel, namn, datum, innehall)
// VALUES('$nid', '".$_POST['titel']."', '$datum', '".$_POST['innehall']."', '".$_POST['namn']."')");
$result = $mysqli->query($query, MYSQLI_USE_RESULT);
$result = array($result);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$mysqli->close();
?>
<?php
// ------------------------------------------------------------------------------------
$html = <<<EOD
<h2>Skriv en kommentar</h2>
<p>
<form method="post" action='?p=style1cols' name="matain" onSubmit="return skicka_OnClick();">
<p>
Titel:<br>
<input type="text" name="titel" id="titel" size="25" />
</p>
Text:<br>
<textarea name="innehall" rows="5" cols="30"></textarea>
</p>
<p>
Namn:<br>
<input type="text" name="namn" id="namn" size="25" />
</p>
<p>
<input type="submit" name="submit" value="Kommentera!" />
</p>
</form>
<p>Läs nya meddelande</p>
</p>
<script language="JavaScript">
function skicka_OnClick() {
var titel = document.matain.titel.value;
var namn = document.matain.namn.value;
var innehall = document.matain.innehall.value;
if((titel.length != 0) && (innehall.length != 0) && (namn.length != 0)) {
return true;
} else {
alert("Du glömde att fylla i Titel, Inlägg eller Namn");
return false;
}
}
</script>
EOD;
$page->addPageBodyLeft($html);
// Print out the resulting page
$page->printPage($title);
?>
Detta skall i slutändan kopplas ihop med denna tabell.
CREATE TABLE IF NOT EXISTS `blogg` (
`id` int(11) NOT NULL auto_increment,
`rubrik` varchar(300) NOT NULL default '',
`text` varchar(10000) NOT NULL default '',
`forfattare` varchar(50) NOT NULL default '',
`datum` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
Det som är bortkommenterat i koden är det som inte funkar med insert. Sv: Postar inte variabler till db
Har du testat om det funkar med denna INSERT då ? (Jag föredrar den senare INSERT syntaxen, tycker den är trevligare)
$query = "INSERT INTO kommentarer (nid, titel, namn, datum, innehall) VALUES ($nid, $titel, $namn, $datum, $innehall)";
[/peterh]Sv:Postar inte variabler till db
Det var inte här det var fel, utan i formen som numera ser ut så här.
<form method="post" action="?p=style1cols&nid=12" name="matain" onSubmit="return skicka_OnClick();">
Men tack ändå.