INSERT

Résolu
t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   -
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. Garth
     
    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
  2. AssassinTourist Messages postés 409 Date d'inscription   Statut Contributeur Dernière intervention   1 313
     
    Bonjour,
    Problème résolu ? =)
    0
    1. t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   11
       
      Je verrais ce soir ou demain =)
      0
  3. t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   11
     
    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. Mihawk Messages postés 4753 Statut Contributeur 846
       
      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
  4. le père
     
    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. AssassinTourist Messages postés 409 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   11
     
    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. AssassinTourist Messages postés 409 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Comment ça, "à suivre" ? Tu as un autre problème ?
      0
  7. t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   11
     
    NON ! Tout est ok maintenant !

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

    ;o))
    0