2010-11-17 5 views
-2

J'ai problème dans sqlavec requête MySQL

L'erreur SQL

Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près '58 .47 € '') » à la ligne 1

Le code sql:

mysql_query("INSERT INTO ponudba 
(ime_ponudbe,zaporedna_stevilka,id_podjetja,veljavnost,znesek) VALUES('$ime_ponudbe','$zaporedna_stevilka','$id_podjetja','$veljavnost,'$znesek'')"); 
zaporedna_stevilka -> value 1 
id_podjetja -> value 2 
veljavnost -> value 17.11.2010 
znesek-> value is 58.47 

Répondre

7

Essayez:

mysql_query("INSERT INTO ponudba (ime_ponudbe,zaporedna_stevilka,id_podjetja,veljavnost,znesek) VALUES('$ime_ponudbe','$zaporedna_stevilka','$id_podjetja','$veljavnost,'$znesek')"); 

Vous avez un extra (apostrophe) à la fin de la dernière variable.

+0

Bien repéré +1 –

0

Remplacez '$ znesek' 'par' $ znesek '. Vous avez utilisé une double citation. Devrait être un devis unique.

+0

J'ai changé mais l'erreur reste – Alen

+0

Pourriez-vous poster le code que vous utilisez maintenant? Cela correspond-il à celui d'Ergo? –

+0

ok je vais poster à vous – Alen

0
<?php 

$podjetje = $_POST['podjetje']; 
     $veljavnost = $_POST['datepicker']; 
     $naziv_artikla_storitve = $_POST['naziv_artikla_storitve']; 
     $kolicina = $_POST['kolicina_st']; 
     $storitev_em = $_POST['em_ime']; 
     $cena_st = $_POST['cena_st']; 
     $cena_popust = $_POST['cena_popust']; 
     $cena_s_popustom = $_POST['cena_s_popustom']; 
     $vrednost_st = $_POST['vrednost_st']; 
     $znesek = $_POST['znesek']; 
     $popust_na_vse = $_POST['popust_na_vse']; 
     $z_z_popustom = $_POST['z_z_popustom']; 
     $ddv = $_POST['ddv']; 
     $koncni_znesek = $_POST['koncni_znesek']; 
     $datum = date("d.m.Y"); 

     $preveri_zap_stevilko = mysql_fetch_array(mysql_query("SELECT max(zaporedna_stevilka) as zaporedna_stevilka FROM ponudba")); 
     $stevilka = $preveri_zap_stevilko['zaporedna_stevilka']; 

     $preveri_st = mysql_query("SELECT zaporedna_stevilka FROM ponudba ORDER BY zaporedna_stevilka ASC"); 

     $i=1; 
     while ($row = mysql_fetch_array($preveri_st)) 
     { 
      if($i != $row['zaporedna_stevilka']) 
      { 
       $manjkajoca_stevilka = $i; 
       break; 
      } 
      $i++; 
     } 

     $vel = sizeof($manjkajoca_stevilka); 
     if($vel == 0) 
     { 
      $zaporedna_stevilka = $stevilka+1; 
     } 
     else 
     { 
      $zaporedna_stevilka = $manjkajoca_stevilka; 
     } 

     $dobi_id_podjetja = mysql_fetch_array(mysql_query("SELECT * FROM stranka WHERE ime_podjetja='$podjetje'")); 
     $id_podjetja = $dobi_id_podjetja['id']; 

     $arr = str_split($zaporedna_stevilka); 

     $vel = sizeof($arr); 

     if($vel == 1) 
     { 
      $nova_st = "0000".$zaporedna_stevilka; 
     } 
     if($vel == 2) 
     { 
      $nova_st = "000".$zaporedna_stevilka; 
     } 
     if($vel == 3) 
     { 
      $nova_st = "00".$zaporedna_stevilka; 
     } 
     if($vel == 4) 
     { 
      $nova_st = "0".$zaporedna_stevilka; 
     } 
     if($vel == 5) 
     { 
      $nova_st = $zaporedna_stevilka; 
     } 
     $ime_ponudbe = "P-".$nova_st."-".$datum; 

     mysql_query("INSERT INTO ponudba (ime_ponudbe,zaporedna_stevilka,id_podjetja,veljavnost,znesek) VALUES('$ime_ponudbe','$zaporedna_stevilka','$id_podjetja','$veljavnost,'$znesek')"); 

?>

+3

Vous devriez éditer votre question sans ajouter de réponse ... – RedFilter

+1

Vous pouvez ré-éditer votre publication originale pour l'ajouter. Il vous manque maintenant une seule citation dans votre requête: 'mysql_query (" INSERER dans ponudba (ime_ponudbe, zaporedna_stevilka, id_podjetja, veljavnost, znesek) VALEURS ('$ ime_ponudbe', '$ zaporedna_stevilka', '$ id_podjetja', '$ veljavnost ',' $ znesek ') ");' – Sonny

0

Quel jeu de caractères est la table de MySQL? Est-ce que '€' est valide? Comme d'autres l'ont mentionné, la dernière citation est fausse. De plus, plus dangereusement, ce code sent mauvaise de vulnérabilité SQL Injection. Veuillez rechercher des espaces réservés pour gérer vos paramètres.

0

Quelques recommandations:

joignons tous les noms de champs entre `caractères

Où vous référencez les variables/valeurs, remplacer:

'$variable' avec '".mysql_real_escape_string ($variable)."'

1

Si votre champ de table znesek est double, assurez-vous que $znesek est double aussi, on dirait que c'est de la ficelle.

+1

+1 Si 'znesek' est un nombre (dans un autre type numérique), l'erreur est alors que la valeur de' $ znesek' est actuellement '58 .47 €' (chaîne de caractères). – ksogor