PHP FREUNDE aufgepasst You have an error in your SQL syntax

10/20/2016 04:27 αηαℓуzє™ღ#1
Hallo ich wollte mir per php script Arbeit sparen.
Da meine Item Proto weniger dem Standart entspricht.

Nur habe ich anscheinend nun einen Minifehler in meiner Insert Into Query und erkenne keinen...

Scriptablauf:
  1. Ladet aus player.item_proto alle vnums die kein icon zugeteilt bekommen haben
  2. sucht sich durch locale_name die selbe zeile aus der "standart" metin2 DB
  3. nimmt die vnum aus der standartDB rundet sie immer ab und das ist dann die id der tga/gr2.
  4. trägt die daten (wenn das script laufen würde) in der neuen proto ein
Falls noch jemand weiß wie man das macht das er immer abrundet (ab 5 rundet er auf ;/) wäre nice :) da ja item id 10-19 zb alle 00010.tga/gr2 benutzen

Fehlerbeschreibung/Output:
PHP Code:
Einträge1199
Einträge2
1
Could not enter data
You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near '443'' at line 1 
Script:

über jede hilfe bin ich dankbar :)
10/20/2016 04:37 </nQQpls>#2
nvm.

Nimm diese Zeile:

PHP Code:
$query mysql_query("INSERT INTO player.item_proto (icon_path, gr2_path) VALUES ('icon/item/00".round($rows2['vnum'], -1).".tga', 'd:/ymir work/item/weapon/00".round($rows2['vnum'],-1).".gr2') WHERE vnum =".$row['vnum'], $con); 
Nicht getestet, sollte gehen.
10/20/2016 04:58 αηαℓуzє™ღ#3
Quote:
Originally Posted by </nQQpls> View Post
nvm.

Nimm diese Zeile:

PHP Code:
$query mysql_query("INSERT INTO player.item_proto (icon_path, gr2_path) VALUES ('icon/item/00".round($rows2['vnum'], -1).".tga', 'd:/ymir work/item/weapon/00".round($rows2['vnum'],-1).".gr2') WHERE vnum =".$row['vnum'], $con); 
Nicht getestet, sollte gehen.
PHP Code:
Could not enter dataYou have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE vnum =443' at line 1 
10/20/2016 06:45 </nQQpls>#4
Ach mir ist erst jetzt aufgefallen, dass Du einen Insert machen willst :facepalm:

Das funktioniert so natürlich nicht, es gibt Insert (Fügt neue Werte ein) und Update (Aktualisiert in Deinem Fall die 2 Spalten).

Demnach wäre das Folgende in Deinem Fall richtig:

PHP Code:
$query mysql_query("UPDATE player.item_proto SET icon_path = 'icon/item/00".round($rows2['vnum'], -1).".tga', gr2_path = 'd:/ymir work/item/weapon/00".round($rows2['vnum'],-1).".gr2' WHERE vnum = ".$row['vnum'], $con); 
10/20/2016 09:24 Remix v188#5
wieso benutzt man noch mysql_* funktionen
nimm mysqli_* oder pdo
10/20/2016 16:11 kangar00#6
Wenn du immer abrunden willst, kannst du die PHP Funktion "floor" nutzen.

PHP Code:
floor($var#rundet immer ab 
Zum MySQL-Problem:
Du UPDATEst und fuegst nichts Neues ein.
-> Die mysql_* - Funktionen sind deprecated.
10/20/2016 21:39 αηαℓуzє™ღ#7
Quote:
Originally Posted by </nQQpls> View Post
Ach mir ist erst jetzt aufgefallen, dass Du einen Insert machen willst :facepalm:

Das funktioniert so natürlich nicht, es gibt Insert (Fügt neue Werte ein) und Update (Aktualisiert in Deinem Fall die 2 Spalten).

Demnach wäre das Folgende in Deinem Fall richtig:

PHP Code:
$query mysql_query("UPDATE player.item_proto SET icon_path = 'icon/item/00".round($rows2['vnum'], -1).".tga', gr2_path = 'd:/ymir work/item/weapon/00".round($rows2['vnum'],-1).".gr2' WHERE vnum = ".$row['vnum'], $con); 
Quote:
Originally Posted by ?#`/ View Post
Wenn du immer abrunden willst, kannst du die PHP Funktion "floor" nutzen.

PHP Code:
floor($var#rundet immer ab 
Zum MySQL-Problem:
Du UPDATEst und fuegst nichts Neues ein.
-> Die mysql_* - Funktionen sind deprecated.
Danke euch beiden funktioniert 1A!