webForumDet fria alternativet

Fel i INSERT INTO

6 svar · 369 visningar · startad av henkepenka

henkepenkaMedlem sedan sep. 2002125 inlägg
#1

Ska spara lite prylar i databasen...men de funkar inte och jag får felmeddelande...

Såhär ser koden ut:

$AddConn = mysql_connect ('localhost', 'root', '');
mysql_select_db('movies');
$AddQuery = mysql_query("INSERT INTO movies (movieTitle,movieHandling,movieRegisor,movieType,movieLength,movieRelease,movieRatingH,movieRatingL,movieSeenH,movieSeenL,moviePic,movieDate) VALUES
('" . $movieTitle . "',
'" . $movieHandling . "',
'" . $movieRegisor . "',
'" . $movieType . "',
'" . $movieLength . "',
'" . $movieRelease . "',
'" . $movieRatingH . "',
'" . $movieRatingL . "',
'" . $movieSeenH . "',
'" . $movieSeenL . "',
'" . $moviePic . "',
'" . $movieDate . "',
)") or exit(mysql_error()); 

mysql_close($AddConn);

Nån som kan se nått galet?

MvH //
Henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Börja med att skriva ut SQL-frågan, samt posta felmeddelandet.

LarsGMedlem sedan dec. 200012 464 inlägg
#3

movieSeen L ?

men de funkar inte och jag får felmeddelande

Jikes, om du får ett felmeddelande så posta det.

@ndersMedlem sedan juni 200032 969 inlägg
#4

och jag får felmeddelande...

Jaha... Sugen på att ge oss det också?
Det kan också vara lämpligt att skriva ut färdig SQL-fråga med echo också, så blir det betydligt lättare att felsöka.

henkepenkaMedlem sedan sep. 2002125 inlägg
#5

Såhär ser hela koden ut:

if ($_GET['do'] == 'addmovie'){

	$movieTitle = $_POST['movieTitle'];
	
	$movieHandling = $_POST['movieHandling'];
	
	if ($movieHandling == ''){
		$movieHandling = 'Ingen beskrivning ännu...';
	}else{
		$movieHandling = preg_replace('/vbCrLf/', '<br>', $movieHandling);
	}
	
	$movieRegisor = $_POST['movieRegisor'];
	if ($movieRegisor == ''){
		$movieRegisor = '-';
	}
	
	$movieType = $_POST['movieType'];
	if ($movieType == ''){
		$movieType = '-';
	}
	
	$movieLength = $_POST['movieLength'];
	if ($movieLength == ''){
		$movieLength = '0';
	}
	
	$movieRelease = $_POST['movieRelease'];
	if ($movieRelease == ''){
		$movieRelease = '0';
	}

	$movieRatingH = $_POST['movieRatingH'];
	$movieRatingL = $_POST['movieRatingL'];
	
	if ($_POST['movieSeenH'] == 'True'){
		$movieSeenH = 'True';
	}else{
		$movieSeenH = 'False';
	}
	
	if ($_POST['movieSeenL'] == 'True'){
		$movieSeenL = 'True';
	}else{
		$movieSeenL = 'False';
	}
	$moviePic = 'no';
	$movieDate = date( "Y-m-d", time() ); 

//---Kontrollera ifall det finns en film med vald titel
$checkConn = mysql_connect ('localhost', 'root', '');
mysql_select_db('movies');
$checkQuery = mysql_query("SELECT * FROM movies") or exit(mysql_error());

while ($check = mysql_fetch_array($checkQuery)) {
	if ($movieTitle == $check['MovieTitle']){
		header('Location: addmovie.php?error=title&movieHandling=' . $movieHandling . '&movieRegisor=' . $movieRegisor . '&movieType=' . $movieType . '&movieLength=' . $movieLength . '&movieRelease=' . $movieRelease . '&movieSeenH=' . $movieSeenH . '&movieSeenL=' . $movieSeenL);
	}
}
mysql_close($checkConn);

//---Lägg till film
$AddConn = mysql_connect ('localhost', 'root', '');
mysql_select_db('movies');
$AddQuery = mysql_query("INSERT INTO movies (movieTitle,movieHandling,movieRegisor,movieType,movieLength,movieRelease,movieRatingH,movieRatingL,movieSeenH,movieSeenL,moviePic,movieDate) VALUES
('" . $movieTitle . "',
'" . $movieHandling . "',
'" . $movieRegisor . "',
'" . $movieType . "',
'" . $movieLength . "',
'" . $movieRelease . "',
'" . $movieRatingH . "',
'" . $movieRatingL . "',
'" . $movieSeenH . "',
'" . $movieSeenL . "',
'" . $moviePic . "',
'" . $movieDate . "',
)") or exit(mysql_error()); 

mysql_close($AddConn);

//---Skickas till den film som man precis lagt till
$sendConn = mysql_connect ('localhost', 'root', '');
mysql_select_db('movies');
$sendQuery = mysql_query("SELECT * FROM movies WHERE movieTitle LIKE '%" . $movieTitle . "%'") or exit(mysql_error());

$send = mysql_fetch_array($sendQuery);

header('Location: showmovie.php?id=' . $send['id'] );
mysql_close($sendConn);
}

Och felmeddelandet som dyker upp är:

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 ')' at line 14

Rad 14 är:

if ($movieHandling == ''){

Vet att koden inte är jätteoptimal, och att det är många databasanrop, men jag är nybörjare vad det gäller PHP.
Det är säkert något simpelt, men mina ögon missar det.

Peter SMedlem sedan dec. 20025 483 inlägg
#6

Du har ett kommatecken för mycket:

'" . $movieDate . "',

Om inte det hjälper så skriv ut SQL-frågan:

echo "INSERT INTO movies (movieTitle,movieHandling,movieRegisor,movieType,movieLength  ,movieRelease,movieRatingH,movieRatingL,movieSeenH,movieSeen  L,moviePic,movieDate) VALUES('" . $movieTitle . "','" . $movieHandling . "','" . $movieRegisor . "','" . $movieType . "','" . $movieLength . "','" . $movieRelease . "','" . $movieRatingH . "','" . $movieRatingL . "','" . $movieSeenH . "','" . $movieSeenL . "','" . $moviePic . "','" . $movieDate . "',)";

(beware of whitespace)

henkepenkaMedlem sedan sep. 2002125 inlägg
#7

Tack så mycket! Det var kommatecknet som var fel!

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)