Insert record PHP/MySQL

Fermé
tux_linux Messages postés 3 Date d'inscription dimanche 13 avril 2008 Statut Membre Dernière intervention 14 avril 2008 - 14 avril 2008 à 08:44
 tux_linux - 27 avril 2008 à 23:27
Bonjour,
Je suis en train de developper un petit site en PHP/MySQL. N'etant pas un specialiste mais un peu familiarise avec la programmation, j'utilise Dreamweaver (d'ou ce code ...)

A l'insertion d'un enregistrement dans la base de donnees, j'ai un mechant message que je copie ici et qui peut etre vu par ceux qui se donneront la peine de remplir le formulaire de l'adresse :

http://www.job.edendesign-tm.com/formular_inscriere.php

Le message :

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 1

Maintenant pour ceux qui auront la bonte de se pencher sur mon probleme, voila un morceau de code, celui incrimine :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php require_once('Connections/job_con.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}

$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}

if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "formular")) {
$insertSQL = sprintf("INSERT INTO candidati",
GetSQLValueString($HTTP_POST_VARS['nume'], "text"),
GetSQLValueString($HTTP_POST_VARS['prenume'], "text"),
GetSQLValueString($HTTP_POST_VARS['sex'], "text"),
GetSQLValueString($HTTP_POST_VARS['data_nasterii'], "date"),
GetSQLValueString($HTTP_POST_VARS['email'], "text"),
GetSQLValueString($HTTP_POST_VARS['adresa'], "text"),
GetSQLValueString($HTTP_POST_VARS['localitate'], "text"),
GetSQLValueString($HTTP_POST_VARS['judet'], "text"),
GetSQLValueString($HTTP_POST_VARS['tel_principal'], "text"),
GetSQLValueString($HTTP_POST_VARS['tel_secundar'], "text"),
GetSQLValueString($HTTP_POST_VARS['studii_candidat'], "text"),
GetSQLValueString($HTTP_POST_VARS['experienta_candidat'], "text"),
GetSQLValueString($HTTP_POST_VARS['nivel_profesional'], "text"),
GetSQLValueString($HTTP_POST_VARS['domeniu_profesional'], "text"),
GetSQLValueString($HTTP_POST_VARS['domeniu_profesional_altul'], "text"),
GetSQLValueString(isset($HTTP_POST_VARS['a']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString(isset($HTTP_POST_VARS['b']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString(isset($HTTP_POST_VARS['c']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString(isset($HTTP_POST_VARS['d']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString(isset($HTTP_POST_VARS['e']) ? "true" : "", "defined","'Y'","'N'"),
GetSQLValueString($HTTP_POST_VARS['germana'], "text"),
GetSQLValueString($HTTP_POST_VARS['engleza'], "text"),
GetSQLValueString($HTTP_POST_VARS['franceza'], "text"),
GetSQLValueString($HTTP_POST_VARS['italiana'], "text"),
GetSQLValueString($HTTP_POST_VARS['spaniola'], "text"),
GetSQLValueString($HTTP_POST_VARS['domeniu1'], "text"),
GetSQLValueString($HTTP_POST_VARS['domeniu2'], "text"),
GetSQLValueString($HTTP_POST_VARS['domeniu3'], "text"),
GetSQLValueString($HTTP_POST_VARS['domeniu1_altul'], "text"),
GetSQLValueString($HTTP_POST_VARS['domeniu2_altul'], "text"),
GetSQLValueString($HTTP_POST_VARS['domeniu3_altul'], "text"),
GetSQLValueString($HTTP_POST_VARS['salariu_minim'], "int"));

mysql_select_db($database_job_con, $job_con);
$Result1 = mysql_query($insertSQL, $job_con) or die(mysql_error());

$insertGoTo = "/interim/index.php";
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>
A voir également:

1 réponse

croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
14 avril 2008 à 09:34
Je te propose de commencer par faire marcher ton script avec qqes variables seulement et de mettre un message permettant de voir la commande en erreur. De plus, nous allons formatter le code correctement de manière à voir les blocs logiques.

Essaye le code suivant :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php
require_once('Connections/job_con.php');
function GetSQLValueString( $theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
	{
	$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
	
	switch ($theType)
		{
		case "text":
			$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
			break;
		case "long":
		case "int":
			$theValue = ($theValue != "") ? intval($theValue) : "NULL";
			break;
		case "double":
			$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
			break;
		case "date":
			$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
			break;
		case "defined":
			$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
			break;
		}
	return $theValue;
	}

$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if( isset ($HTTP_SERVER_VARS[ 'QUERY_STRING' ] ) )
	$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];

if( ( isset( $HTTP_POST_VARS["MM_insert"] ) ) && ( $HTTP_POST_VARS[ "MM_insert" ] == "formular" ) ) 
	{
	$insertSQL = "INSERT INTO candidati"
		. "nume=" . GetSQLValueString( $HTTP_POST_VARS[ 'nume' ], "text" )
		. ",prenume=" . GetSQLValueString( $HTTP_POST_VARS['prenume'], "text")
	
echo '<br>...' . $insertSQL;
	mysql_select_db($database_job_con, $job_con);
	$Result1 = mysql_query($insertSQL, $job_con) or die(mysql_error());
	
	$insertGoTo = "/interim/index.php";
	if (isset($HTTP_SERVER_VARS['QUERY_STRING']))
		{
		$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
		$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
		}
	header(sprintf("Location: %s", $insertGoTo));
	}
?>


Qu'est-ce-que ça donne ?
0
Je m'excuse pour la reponse tardive mais il y a que aujourd'hui que je me suis penche a nouveau sur mon site .... Ca a marche ta solution. Je te remercie
0