Bonsoir à vous communauté de Alsacreation Smiley smile

J'ai un petit problème qui m'arrive sur quelques pages, selon les variables le code fonctionne et dans d'autres cas il ne fonctionne pas et je n'arrive toujours pas à comprendre pourquoi Smiley ohwell

Le code est simple, je récupère les données du formulaire et je vérifie si les champs sont remplis hormis un. Si tout est ok la requête s’exécute suivi d'un petit message d'information sinon on informe que un des champs est vide.

L'erreur mysql est la suivante :

Erreur SQL !INSERT INTO recrutement(id,login,age,annee,loisir,skype,style,motiv,screen1,screen2,etat,oui,non) VALUES ('',''Benjiman91'','18','2012','',''Benji91149'','',''Je suis motivé'',''http://www.jupload.fr/'',''http://www.jupload.fr/'','0','0','0')
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 'Benjiman91'','18','2012','',''Benji91149'','',''Je suis motivé'',''http://www.j' at line 1


La structure de ma base de donnée :

http://sdz-upload.s3.amazonaws.com/prod/upload/uegkshekjrle.png

Et mon code :

<?php
     
    $login = "'".mysql_real_escape_string($_SESSION['login'])."'";
    $loisirs = "'".mysql_real_escape_string($_POST['loisirs'])."'";
    $skype = "'".mysql_real_escape_string($_POST['skype'])."'";
    $archi = "'".mysql_real_escape_string($_POST['archi'])."'";
    $motiv = "'".mysql_real_escape_string($_POST['motiv'])."'";
    $screen1 = "'".mysql_real_escape_string($_POST['screen1'])."'";
    $screen2 = "'".mysql_real_escape_string($_POST['screen2'])."'";
    $age = intval($_POST['age']);
    $annee = intval($_POST['annee']);
                           
if(isset($loisirs) && isset($skype) && isset($archi) && isset($motiv) && isset($screen1) && isset($screen2) && isset($age) && isset($annee) && !empty($loisirs) && !empty($archi) && !empty($motiv) && !empty($screen1) && !empty($screen2) && !empty($age) && !empty($annee))
{
echo '<div class="alert alert-success" role="alert">Votre demande de recrutement a été envoyé et sera traité dans les plus bref délais</div>';
$sql = "INSERT INTO recrutement(id,login,age,annee,loisir,skype,style,motiv,screen1,screen2,etat,oui,non) VALUES ('','$login','$age','$annee','$loisir','$skype','$style','$motiv','$screen1','$screen2','0','0','0')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
}
elseif(isset($_POST['submit'])) { echo '<div class="alert alert-danger" role="alert">Un des champs est vide !</div>'; }
                           
?>
                         
<img src="assets/img/weneedyou.jpg" alt="recrutement" class="img-thumbnail" style="height: 200px; float: left; vertical-align: middle;">
                        <span class="twitter">
                             
                            <div class="alert alert-danger" role="alert"><strong>Oh mince!</strong> Les recrutements sont fermés pour le moment, repasse plus tard [smile]</div>
                             
                            <p>C'est ici que vous allez pouvoir prétendre à faire parti de notre communauté. Pour y entrer rien de plus simple, il suffit de remplir le formulaire ci-dessous.<br />
                            Il sera envoyé sur le site et les citoyens de la ville voteront pour vous accepter ou non dans la faction. Bonne chance.</p>
                             
<form method="post" action="recrutement.php">
     
        <p><select class="form-control" name="annee">
           <option disabled></o>Année d'inscription sur HM</option>
           <option value="2011">2011</option>
           <option value="2012">2012</option>
           <option value="2013">2013</option>
           <option value="2014">2014</option>
           <option value="2015">2015</option>
           </select>
        </p>
        <p><input type="text" class="form-control" name="age" placeholder="Votre âge" /></p>
        <p><input type="text" class="form-control" name="loisirs" placeholder="Vos loisirs" /></p>
        <p><input type="text" class="form-control" name="skype" placeholder="Pseudo Skype (optionnel)" /></p>
        <p><input type="text" class="form-control" name="archi" placeholder="Style architecturale" /></p>
        <p><textarea id="message" class="form-control" name="motiv" cols="30" rows="8" placeholder="Vos motivations"></textarea></p>
        <p><input type="text" class="form-control" name="screen1" placeholder="Url d'une image de vos construction (Jupload.fr conseillé)" /></p>
        <p><input type="text" class="form-control" name="screen2" placeholder="Url d'une image de vos construction (Jupload.fr conseillé)" /></p>
 
        <span style="text-align:center;"><input type="submit" class="btn btn-primary" name="submit" value="Valider" /></span>
 
</form>


Merci d'avance de votre aide, Ben
Je pense que c'est parce que tu essaies d'insérer la chaine de caractère '' (vide) en tant qu'ID alors que ta base attends un entier auto-incrémenté. Remplace simplement ta valeur par NULL, ou ne met rien du tout comme ci dessous :
INSERT INTO recrutement 
(login, age, annee, loisir, skype, style, motiv, screen1, screen2, etat, oui, non) 
VALUES 
('Benjiman91', '18', '2012', '','Benji91149', '', 'Je suis motivé', 'http://www.jupload.fr/','http://www.jupload.fr/', '0', '0', '0')

ps: vérifie également tes guillemets => il faut que ce soit nécessairement soit des ' (simple quote) ou " (double quote), pas des '' (deux simples quotes d'affilé) comme on peut le voir dans ton bout de code.
Modifié par Freez (30 Apr 2015 - 08:06)
Salut,

Malheureusement cela ne change pas grand chose Smiley ohwell

L'erreur est :

Erreur SQL !INSERT INTO recrutement(id,login,age,annee,loisir,skype,style,motiv,screen1,screen2,etat,oui,non) VALUES ('Benjiman91',18,2014,,'Benji91149',,'aaaaaaaaaaaa','http://www.jupload.fr/','http://www.jupload.fr/',1,1,1)
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 ''Benji91149',,'aaaaaaaaaaaa','http://www.jupload.fr/','http://www.jupload.fr/',1' at line 1


Et le code :

<?php
    
    $login = "'".mysql_real_escape_string($_SESSION['login'])."'";
    $loisirs = "'".mysql_real_escape_string($_POST['loisirs'])."'";
    $skype = "'".mysql_real_escape_string($_POST['skype'])."'";
    $archi = "'".mysql_real_escape_string($_POST['archi'])."'";
    $motiv = "'".mysql_real_escape_string($_POST['motiv'])."'";
    $screen1 = "'".mysql_real_escape_string($_POST['screen1'])."'";
    $screen2 = "'".mysql_real_escape_string($_POST['screen2'])."'";
    $age = intval($_POST['age']);
    $annee = intval($_POST['annee']);
                          
if(isset($loisirs) && isset($skype) && isset($archi) && isset($motiv) && isset($screen1) && isset($screen2) && isset($age) && isset($annee) && !empty($loisirs) && !empty($archi) && !empty($motiv) && !empty($screen1) && !empty($screen2) && !empty($age) && !empty($annee))
{
echo '<div class="alert alert-success" role="alert">Votre demande de recrutement a été envoyé et sera traité dans les plus bref délais</div>';
$sql = "INSERT INTO recrutement(id,login,age,annee,loisir,skype,style,motiv,screen1,screen2,etat,oui,non) VALUES ($login,$age,$annee,$loisir,$skype,$style,$motiv,$screen1,$screen2,1,1,1)";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
}
elseif(isset($_POST['submit'])) { echo '<div class="alert alert-danger" role="alert">Un des champs est vide !</div>'; }
                          
?>


Merci pour votre aide Smiley smile