INSERT

Résolu/Fermé
t671 Messages postés 1446 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 9 novembre 2024 - 16 févr. 2012 à 18:32
t671 Messages postés 1446 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 9 novembre 2024 - 17 févr. 2012 à 19:36
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

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
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
17 févr. 2012 à 10:44
Bonjour,
Problème résolu ? =)
0
t671 Messages postés 1446 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 9 novembre 2024 11
17 févr. 2012 à 10:47
Je verrais ce soir ou demain =)
0
t671 Messages postés 1446 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 9 novembre 2024 11
17 févr. 2012 à 17:16
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
Mihawk Messages postés 4315 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 846
Modifié par Mihawk le 17/02/2012 à 17:19
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
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
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
17 févr. 2012 à 17:40
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
t671 Messages postés 1446 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 9 novembre 2024 11
Modifié par t671 le 17/02/2012 à 19:22
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
AssassinTourist Messages postés 5710 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 311
17 févr. 2012 à 19:21
Comment ça, "à suivre" ? Tu as un autre problème ?
0
t671 Messages postés 1446 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 9 novembre 2024 11
17 févr. 2012 à 19:36
NON ! Tout est ok maintenant !

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

;o))
0