Query absenden - Warum funktioniert das nicht?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Abend liebe User,


    ich bin mal wieder auf euch angewiesen und möchte nun wissen, warum das hier denn nicht funktioniert:

    new query[2000];
    format(query, sizeof(query),"UPDATE user SET score='%i',geld='%i',adminlevel='%i',fraktion='%i',wanteds='%i',bank='%i',autoschein='%i',kampfstyle='%i',jobid='%i',arbeitslosengeld='%i',rank='%i'",pscore[playerid],pgeld[playerid],padminlvl[playerid],pfraktion[playerid],pwanteds[playerid],pbank[playerid],fuhrerschein[playerid],pkampfstyle[playerid],jobid[playerid],arbeitslosengeld[playerid],prank[playerid]);
    format(query, sizeof(query),",neu='%i',skin='%i',payday='%i',biz='%i',tban='%i',casinochips='%i',prison='%i',prisontime='%i',ausweis='%i',herkunft='%i',staatsange='%i',wohnort='%i',alter='%i',knastaufenthalt='%i'",neu[playerid],pskin[playerid],npayday[playerid],pbiz[playerid],timeban[playerid],casinochips[playerid],knastid[playerid],knastzeit[playerid],ausweis[playerid],herkunft[playerid],staatsan[playerid],wohnort[playerid],alter[playerid],kaufenthalt[playerid]);
    format(query, sizeof(query),",pdtickets='%i',autopunkte='%i',boombox='%i',sprayticket='%i',ausweisgultig='%s' WHERE id='%i'",tickets[playerid],autopunkte[playerid],boombox[playerid],sprayticket[playerid],gultigbis[playerid],idx[playerid]);
    mysql_tquery(DB,query,"","");


    ich hoffe ihr könnt mir schnell helfen.


    Mit freundlichen Grüßen,
    Scripter4.0

    Scripter im Ruhestand.

  • eventuel so ?



    new query[2000];
    format(query, sizeof(query),"UPDATE user SET score='%i',geld='%i',adminlevel='%i',fraktion='%i',wanteds='%i',bank='%i',autoschein='%i',kampfstyle='%i',jobid='%i',arbeitslosengeld='%i',rank='%i'",pscore[playerid],pgeld[playerid],padminlvl[playerid],pfraktion[playerid],pwanteds[playerid],pbank[playerid],fuhrerschein[playerid],pkampfstyle[playerid],jobid[playerid],arbeitslosengeld[playerid],prank[playerid]);
    format(query, sizeof(query),"%s,neu='%i',skin='%i',payday='%i',biz='%i',tban='%i',casinochips='%i',prison='%i',prisontime='%i',ausweis='%i',herkunft='%i',staatsange='%i',wohnort='%i',alter='%i',knastaufenthalt='%i'",query,neu[playerid],pskin[playerid],npayday[playerid],pbiz[playerid],timeban[playerid],casinochips[playerid],knastid[playerid],knastzeit[playerid],ausweis[playerid],herkunft[playerid],staatsan[playerid],wohnort[playerid],alter[playerid],kaufenthalt[playerid]);
    format(query, sizeof(query),"%s,pdtickets='%i',autopunkte='%i',boombox='%i',sprayticket='%i',ausweisgultig='%s' WHERE id='%i'",query,tickets[playerid],autopunkte[playerid],boombox[playerid],sprayticket[playerid],gultigbis[playerid],idx[playerid]);
    mysql_tquery(DB,query,"","");



    mit freundlichem Gruß
    Timo Schneider

  • Mit jedem Format wird deine Query überschrieben.


    Du kannst 3x die tQuery machen


    new query[2000];
    format(query, sizeof(query),"UPDATE user SET score='%i',geld='%i',adminlevel='%i',fraktion='%i',wanteds='%i',bank='%i',autoschein='%i',kampfstyle='%i',jobid='%i',arbeitslosengeld='%i',rank='%i'",pscore[playerid],pgeld[playerid],padminlvl[playerid],pfraktion[playerid],pwanteds[playerid],pbank[playerid],fuhrerschein[playerid],pkampfstyle[playerid],jobid[playerid],arbeitslosengeld[playerid],prank[playerid]);
    mysql_tquery(DB,query,"","");
    format(query, sizeof(query),"%s,neu='%i',skin='%i',payday='%i',biz='%i',tban='%i',casinochips='%i',prison='%i',prisontime='%i',ausweis='%i',herkunft='%i',staatsange='%i',wohnort='%i',alter='%i',knastaufenthalt='%i'",query,neu[playerid],pskin[playerid],npayday[playerid],pbiz[playerid],timeban[playerid],casinochips[playerid],knastid[playerid],knastzeit[playerid],ausweis[playerid],herkunft[playerid],staatsan[playerid],wohnort[playerid],alter[playerid],kaufenthalt[playerid]);
    mysql_tquery(DB,query,"","");
    format(query, sizeof(query),"%s,pdtickets='%i',autopunkte='%i',boombox='%i',sprayticket='%i',ausweisgultig='%s' WHERE id='%i'",query,tickets[playerid],autopunkte[playerid],boombox[playerid],sprayticket[playerid],gultigbis[playerid],idx[playerid]);
    mysql_tquery(DB,query,"","");

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • der MySQL Log sagt das:


    :huh:

    Scripter im Ruhestand.

  • Hier ein kleiner Denkansprung:


    format(query, sizeof(query), "UPDATE `user` SET score='%i',", score);
    strcat(query, "level ='%i', adminlevel = '%i',", level, adminlevel);


    Würde das hier ergeben:
    UPDATE `user` SET score='%i', level ='%i', adminlevel = '%i'


    Jeweils mit den werten für %i usw.

  • nun habe ich das so:



    new query[2000];
    format(query, sizeof(query),"UPDATE user SET score='%i',geld='%i',adminlevel='%i',fraktion='%i',wanteds='%i',bank='%i',autoschein='%i',kampfstyle='%i',jobid='%i',arbeitslosengeld='%i',rank='%i',",pscore[playerid],pgeld[playerid],padminlvl[playerid],pfraktion[playerid],pwanteds[playerid],pbank[playerid],fuhrerschein[playerid],pkampfstyle[playerid],jobid[playerid],arbeitslosengeld[playerid],prank[playerid]);
    strcat(query, "neu='%i',skin='%i',payday='%i',biz='%i',tban='%i',casinochips='%i',prison='%i',prisontime='%i',ausweis='%i',herkunft='%i',staatsange='%i',wohnort='%i',alter='%i',knastaufenthalt='%i',", neu[playerid],pskin[playerid],npayday[playerid],pbiz[playerid],timeban[playerid],casinochips[playerid],knastid[playerid],knastzeit[playerid],ausweis[playerid],herkunft[playerid],staatsan[playerid],wohnort[playerid],alter[playerid],kaufenthalt[playerid]);
    strcat(query, "pdtickets='%i',autopunkte='%i',boombox='%i',sprayticket='%i',ausweisgultig='%s' WHERE id='%i'", tickets[playerid],autopunkte[playerid],boombox[playerid],sprayticket[playerid],gultigbis[playerid],idx[playerid]);
    mysql_tquery(DB,query,"","");


    und bekomme folgende Warnings:

    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    18 Warnings.


    Scripter im Ruhestand.

  • Pass auf mach das ganze doch in einen format:



    new query[2048];


    format(query, sizeof(query),"UPDATE user SET score='%i',geld='%i',adminlevel='%i',fraktion='%i',wanteds='%i',bank='%i',autoschein='%i',kampfstyle='%i',jobid='%i',arbeitslosengeld='%i',rank='%i' \
    neu='%i',skin='%i',payday='%i',biz='%i',tban='%i',casinochips='%i',prison='%i',prisontime='%i',ausweis='%i',herkunft='%i',staatsange='%i',wohnort='%i',alter='%i',knastaufenthalt='%i',\
    pdtickets='%i',autopunkte='%i',boombox='%i',sprayticket='%i',ausweisgultig='%s' WHERE id='%i'",
    pscore[playerid],
    pgeld[playerid],
    padminlvl[playerid],
    pfraktion[playerid],
    pwanteds[playerid],
    pbank[playerid],
    fuhrerschein[playerid],
    pkampfstyle[playerid],
    jobid[playerid],
    arbeitslosengeld[playerid],
    prank[playerid],neu[playerid],
    pskin[playerid],npayday[playerid],
    pbiz[playerid],timeban[playerid],
    casinochips[playerid],
    knastid[playerid],
    knastzeit[playerid],
    ausweis[playerid],
    herkunft[playerid],
    staatsan[playerid],
    wohnort[playerid],
    alter[playerid],
    kaufenthalt[playerid],
    tickets[playerid],
    autopunkte[playerid],
    boombox[playerid],
    sprayticket[playerid],
    gultigbis[playerid],
    idx[playerid]);
    mysql_tquery(DB,query,"","");


  • Was habt ihr hier eigendlich für ein Halbwissen?!
    strcat != format
    strcat hat KEINE Parameter um was in einen Text zu schreiben wie es format macht


    @TE mach das von huggy, erhöh die stringgröße und dann sollte es gehen

    All in all it's just another brick in the wall



  • Das funktioniert aber irgendwie nicht ;(
    Ich komm echt net mehr weiter :/

    Scripter im Ruhestand.

  • Ok habs jetzt erst gesehen.


    Hier einmal die MySQL Log:

    Code
    [13:33:03] [ERROR] CMySQLQuery::Execute[()] - (error #1064) 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 'neu='1',skin='119',payday='29',biz='0',tban='1',casinochips='0',prison='0',priso' at line 1


    Und hier die Server Log:

    Code
    [13:33:03] Query: UPDATE user SET score='297',geld='10267',adminlevel='8',fraktion='1',wanteds='0',bank='1145411',autoschein='1',kampfstyle='5',jobid='2',arbeitslosengeld='0',rank='10' neu='1',skin='119',payday='29',biz='0',tban='1',casinochips='0',prison='0',prisontime='0',ausweis='1',herkunft='3',staatsange='1',wohnort='2',alter='28',knastaufenthalt='0', pdtickets='0',autopunkte='0',boombox='1',sprayticket='3',ausweisgultig='03.02.2014' WHERE id='6'



    Hoffe du kannst mir helfen :thumbup:

    Scripter im Ruhestand.

  • Da fehlt ein Komma.(zwischen rank und neu)
    Sinnvoll wäre es auch Anführungszeichen nur bei Strings zu benutzen, so ist es von MySQL auch vorgesehen. Ein Integer benötigt soetwas nicht.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen