INSERT

Résolu
Bonjour,

J'ai un souci avec un INSERT.

$result2=mysql_query("SELECT COUNT(*) AS nbr FROM lieux WHERE lieu = '".$lieu_naissance."'); 
mysql_query($result2) or die('Erreur SQL !'.$sql.mysql_error());
if (!empty($lieu_naissance) AND ($nbr=0))
{
$requete = "INSERT INTO lieux(lieu) VALUES ($lieu_naissance)";
mysql_query($requete) or die('Erreur SQL !'.$sql.mysql_error());
}


Je recherche, en utilisant COUNT(*) AS nbr, dans ma table"lieux" si lieu_naissance existe.
Si $nbr=0, c'est que lieu_naissance n'existe pas.
Je veux donc l'insérer dans ma table, et pour la ligne "$requete = INSERT .....", j'ai le message d'erreur Parse error: syntax error, unexpected T_STRING in

Mais je ne trouve pas pourquoi ........!!!???

Merci

6 réponses

  1. L'erreur est ici(en gras)
    .$lieu_naissance."')

    Essayez comme ça
    $result2=mysql_query("SELECT COUNT(*) AS nbr FROM lieux WHERE lieu = '".$lieu_naissance."'");// bin oui si vous ouvrez des quotes il faut les refermer...

    ou même $result2=mysql_query("SELECT COUNT(*) AS nbr FROM lieux WHERE lieu = ".$lieu_naissance); // mais pas besoin ici

    $result2=mysql_query("SELECT COUNT(*) AS nbr FROM lieux WHERE lieu = ".$lieu_naissance);
    mysql_query($result2) or die('Erreur SQL !'.$sql.mysql_error());
    if (!empty($lieu_naissance) AND ($nbr=0))
    // où est initialisé $nbr?
    {

    Parse error: syntax error, unexpected T_STRING in
    Un peu court. Et le numéro de la ligne?, l'expression qui coince? ça peut aider d'aller pour voir où est l'erreur
    0
    1. Contributeur
      Bonjour,
      Problème résolu ? =)
      0
      1. Je verrais ce soir ou demain =)
        0
    2. J'ai modifié comme suit :

      $lieu_naissance = $_POST["lieu_naissance"];
      ...................................
      $result2=mysql_query("SELECT COUNT(*) AS nbr FROM lieux WHERE lieu LIKE '$lieu_naissance'"); 
      mysql_query($result2) or die('Erreur SQL !'.$sql.mysql_error());


      et maintenant, j'ai l'erreur :
      Erreur SQL !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 'Resource id #3' at line 1

      J'ai testé ma variable, et elle contient bien ce qu'elle doit contenir .......
      0
      1. Contributeur
        Enlève les simple quotes autour de ta variable. Normalement celle-ci sera interprétée dans des double quotes.

        $lieu_naissance = $_POST["lieu_naissance"]; 
        ................................... 
        $result2=mysql_query("SELECT COUNT(*) AS nbr FROM lieux WHERE lieu LIKE $lieu_naissance");  
        mysql_query($result2) or die('Erreur SQL !'.$sql.mysql_error());
        0
    3. Bonjour

      mysql_query($result2) or die('Erreur SQL !'.$sql.mysql_error());
      Mais $result2 est une ressource, pas une requête ! c'est déjà le résultat d'un mysq_query, c'est comme si tu faisais
      mysql_query(mysql_query("SELECT COUNT(*) AS nbr FROM lieux WHERE lieu LIKE '$lieu_naissance'"));


      Et garde les simples quotes autour de $lieu_naissance, ils sont indispensables quoi qu'en dise Mihawk
      0
      1. Contributeur
        Donc plutôt faire :
        $result2=mysql_query("SELECT COUNT(*) AS nbr FROM lieux WHERE lieu LIKE '$lieu_naissance'") or die('Erreur SQL !'.$sql.mysql_error());
        0
    4. OK ! Merci les gars.

      J'ai pris l'option
      $result2=mysql_query("SELECT lieu,COUNT(*) AS nbr FROM lieux WHERE lieu LIKE '$lieu_naissance'") or die('Erreur SQL !'.$sql.mysql_error());


      Si je continue mon code, je veux insérer $lieu_naissance dans ma table lieu si la variable n'existe pas.
      $nbr2 = mysql_num_rows($result2);	
          if ($nbr2=0)
          {
          $requete = mysql_query("INSERT INTO lieux(lieu) VALUES ('$lieu_naissance')") or die('Erreur SQL !'.$sql.mysql_error());
          }
      

      Si je teste $nbr2, c'est toujours = à 1, et l'insert se fait dans tous les cas (si la variable est déjà présente ou pas dans la table) !?
      0
      1. Contributeur
        Comment ça, "à suivre" ? Tu as un autre problème ?
        0
    5. NON ! Tout est ok maintenant !

      Merci beaucoup à tous ..............

      ;o))
      0