unexpected T_VARIABLE

Petit nouveau ! | 7 Messages

26 déc. 2012, 22:25

Bonjour, alors en fait j'ai un code PHP mais quand je le teste j'ai l'erreur 'Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\site\abonnement.php on line 66'
Voilà la ligne de mon code avec son contexte :
if(isset ($_POST['revalider']) && isset($_POST['civilite']) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['age']) && isset($_POST['adresse']) && isset($_POST['codepostal']) && isset($_POST['ville']) && isset($_POST['numero']) && isset($_POST['magazine']) && isset($_POST['valider']))
	{
	$civilite=$_POST['civilite'];
		$nom=$_POST['nom'];
		$prenom=$_POST['prenom'];
		$age=$_POST['age'];
		$adresse=$_POST['adresse'];
		$codepostal=$_POST['codepostal'];
		$ville=$_POST['ville'];
		$numero=$_POST['numero'];
		$magazine=$_POST['magazine'];
	connectMaBase();
	$sql = 'INSERT INTO abonne VALUES("","'$civilite'","'$nom'","'$prenom'","'$age'","'$adresse'","'$codepostal'","'$ville'","'$numero'","'$magazine'")';
	mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
	mysql_close();
	echo 'Votre abonnement a bien été enregistré !';}
La ligne 66 c'est :
$sql = 'INSERT INTO abonne VALUES("","'$civilite'","'$nom'","'$prenom'","'$age'","'$adresse'","'$codepostal'","'$ville'","'$numero'","'$magazine'")';
Franchement je suis désespérée, j'ai tout vérifié TOUT TOUT TOUT !!! J'ai bien regardé les parenthèses, les parenthèses carrées '[' J'ai revérifié le texte, je sais pas ! AIDEZ MOUAAAAAAAAAAAAAAAA !!!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 déc. 2012, 22:54

salut,


tous vérifié ?

dommage que tu ne connaisse pas la concaténation ;) => http://www.lephpfacile.com/cours/5-conc ... ux-chaines


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

26 déc. 2012, 22:56

Merci pour ta réponse, mais comment je peux concaténer cette ligne ??

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 déc. 2012, 22:56

en lisant le cours ?
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

26 déc. 2012, 22:58

J'ai pas bien compris. Dans le lien que tu m'as donné il parle de 'echo' alors que dans mon erreur j'essaye d'insérer des valeurs dans mon mysql.
merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 déc. 2012, 23:05

c'est la même chose, il s'agit d'une chaine de caractères qu'elle soit affichées ou pas ;)



@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

26 déc. 2012, 23:08

Ah c'est bon je viens de comprendre ! Merci beaucoups !

Petit nouveau ! | 7 Messages

26 déc. 2012, 23:11

Ah en fait ça ne m'affiche plus l'erreur mais ça ne m'enregistre rien dans ma base de données, c'est normal ?!
J'ai écrit ça, c'est bon ? :
$sql = 'INSERT INTO abonne VALUES("","$civilite","$nom","$prenom","$age","$adresse","$codepostal","$ville","$numero","$magazine")';
En fait j'ai enlevé les apostrophes
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 déc. 2012, 23:32

ça ne fonctionnera pas les variables ne sont pas interprétée dans une chaîne de caractères délimitées par des simples quote.

donc utilise la concaténation.
[php
<?php
]$sql = 'INSERT INTO abonne VALUES(\'\',\''.$civilite.'\',\''.$nom.'\',\''.$prenom.'\',\'.$age.'\',\''.$adresse.'\',\''.$codepostal.'\',\''.$ville.'\',\''.$numero.'\',\''.$magazine.'\')';
?>
[/php]

les \' en plus simplement parce qu'en SQL les chaines de caractères sont délimitées par des simples quote.


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

27 déc. 2012, 15:27

Maintenant ça me fait une erreur 'T_NS_SEPARATOR' Je ne sais pas à quoi cela est due. Merci pour ta réponse. T'es gentil :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 déc. 2012, 16:08

il manque une quote je te conseil d'utiliser un IDE qui va te fournir ce type d'info : Zend Studio, Netbeans, Eclipse (et le plug in PDT) et une tonne d'autre don j'ai oublié le nom ou que je ne connais pas :)

perso je vais arreter la tablette c'est nul y'a pas d'ide intégré :mrgreen: :mrgreen: :mrgreen:
<?php
$sql = 'INSERT INTO abonne VALUES(\'\',\''.$civilite.'\',\''.$nom.'\',\''.$prenom.'\',\''.$age.'\',\''.$adresse.'\',\''.$codepostal.'\',\''.$ville.'\',\''.$numero.'\',\''.$magazine.'\')';
?>

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

27 déc. 2012, 19:13

Merci pour ton aide je n'ai plus aucune erreur.. mais en fait, rien ne s'affiche dans phpmyadmin, et je sais pas pourquoi, fa

Mammouth du PHP | 2278 Messages

27 déc. 2012, 19:46

Moi je trouve plus simple de faire:
$sql = "Insert into mabase set `champ1` = '$valeur1' ";
print "$requete"; // tant que ça déconne
$res = $mysqli->query($sql);
if ($res == false)
{
echo ($mysqli->error);
}
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD