heyho,
ich habe hier einen Tag misatch, weiß aber nicht warum, wollt mich mal wieder in mysql einarbeiten.
if(mysql_num_rows())
{
mysql_fetch_field("Geld",data);//missacht
SpielerInfo[playerid][Geld]=strval(data);
GivePlayerMoney(playerid,strval(data));
}

Tag Missatch bei mysql_fetch_field R5
- Slash™
- Geschlossen
- Erledigt
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
-
-
mysql_fetch_field("Geld",data);
zu:
mysql_fetch_field_row(data, "Geld"); -
mysql_fetch_field("Geld",data);
zu:
mysql_fetch_field_row(data, "Geld");mysql_fetch_field("Geld",data);
zu:
mysql_fetch_field_row(data, "Geld");
hey, danke für die hilfe, nur funktioniert es immernoch nicht, wenn ich es printen lasse kommt <NULL>
habe es nun so, wo liegt der fehler`?
stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
new query[128],data[512];
format(query,sizeof(query),"SELECT * FROM accounts WHERE `Name`='%s", SpielerName(playerid));
mysql_query(query);
mysql_store_result();
if(mysql_num_rows())
{
mysql_fetch_field_row(data, "Geld");
SpielerInfo[playerid][Geld]=strval(data);
GivePlayerMoney(playerid,strval(data));
print(data);
}
}
return 1;
} -
Mach mal den debug modus an und poste was er dir ausgibt. Hast du alles richtig geschrieben?
(Möglicherweise benutzt du ein anderes Plugin, versuch mal: mysql_fetch_field_row("Geld", data); wobei ich das nicht glaube, aber ein Versuch ist es dennoch wert.)
-
Jeffry:
hat nichts gebracht das kam rausCode
Alles anzeigen[19:52:08] [19:52:08] --------------------------- [19:52:08] MySQL Debugging activated (10/01/13) [19:52:08] --------------------------- [19:52:08] [19:52:26] >> mysql_real_escape_string( Connection handle: 1 ) [19:52:26] CMySQLHandler::EscapeString(Music4You); - Escaped 9 characters to Music4You. [19:52:26] >> mysql_query( Connection handle: 1 ) [19:52:26] CMySQLHandler::Query(SELECT * FROM `accounts` WHERE `Name` = 'Music4You') - Successfully executed. [19:52:26] >> mysql_store_result( Connection handle: 1 ) [19:52:26] CMySQLHandler::StoreResult() - Result was stored. [19:52:26] >> mysql_num_rows( Connection handle: 1 ) [19:52:26] CMySQLHandler::NumRows() - Returned 1 row(s) [19:52:26] >> mysql_free_result( Connection handle: 1 ) [19:52:26] CMySQLHandler::FreeResult() - Result was successfully free'd. [19:52:26] >> mysql_real_escape_string( Connection handle: 1 ) [19:52:26] CMySQLHandler::EscapeString(Music4You); - Escaped 9 characters to Music4You. [19:52:26] >> mysql_query( Connection handle: 1 ) [19:52:26] CMySQLHandler::Query(SELECT * FROM `accounts` WHERE `Name` = 'Music4You') - Successfully executed. [19:52:26] >> mysql_store_result( Connection handle: 1 ) [19:52:26] CMySQLHandler::StoreResult() - Result was stored. [19:52:26] >> mysql_num_rows( Connection handle: 1 ) [19:52:26] CMySQLHandler::NumRows() - Returned 1 row(s) [19:52:26] >> mysql_free_result( Connection handle: 1 ) [19:52:26] CMySQLHandler::FreeResult() - Result was successfully free'd. [19:52:38] >> mysql_real_escape_string( Connection handle: 1 ) [19:52:38] CMySQLHandler::EscapeString(Music4You); - Escaped 9 characters to Music4You. [19:52:38] >> mysql_query( Connection handle: 1 ) [19:52:38] CMySQLHandler::Query(SELECT `passwort` FROM `accounts` WHERE `Name` = 'Music4You') - Successfully executed. [19:52:38] >> mysql_store_result( Connection handle: 1 ) [19:52:38] CMySQLHandler::StoreResult() - Result was stored. [19:52:38] >> mysql_fetch_row_format( Connection handle: 1 ) [19:52:38] CMySQLHandler::FetchRow() - Return: 098F6BCD4621D373CADE4E832627B4F6 [19:52:38] >> mysql_free_result( Connection handle: 1 ) [19:52:38] CMySQLHandler::FreeResult() - Result was successfully free'd. [19:52:38] >> mysql_query( Connection handle: 1 ) [19:52:38] CMySQLHandler::Query(SELECT * FROM accounts WHERE `Name`='Music4You') - Successfully executed. [19:52:38] >> mysql_store_result( Connection handle: 1 ) [19:52:38] CMySQLHandler::StoreResult() - Result was stored. [19:52:38] >> mysql_num_rows( Connection handle: 1 ) [19:52:38] CMySQLHandler::NumRows() - Returned 1 row(s) [19:52:38] >> mysql_fetch_field_row( Connection handle: 1 ) [19:52:38] CMySQLHandler::FetchField(Geld) - You cannot call this function now. (Reason: Fields/Rows are empty.) [19:52:38] >> mysql_free_result( Connection handle: 1 ) [19:52:38] CMySQLHandler::FreeResult() - Result was successfully free'd. [19:52:42] >> mysql_query( Connection handle: 1 ) [19:52:42] CMySQLHandler::Query(UPDATE `accounts` SET `IP`='255.255.255.255' WHERE `Name`='Music4You') - Successfully executed.
vllt ist auch was an der abfrage falsch?
-
Zitat
[19:52:38] CMySQLHandler::FetchField(Geld) - You cannot call this function now. (Reason: Fields/Rows are empty.)
Der Fehler ist hier:
format(query,sizeof(query),"SELECT * FROM accounts WHERE `Name`='%s", SpielerName(playerid));
Da fehlt ein ' nach %s.format(query,sizeof(query),"SELECT * FROM accounts WHERE `Name`='%s'", SpielerName(playerid));
-
Der Fehler ist hier:
format(query,sizeof(query),"SELECT * FROM accounts WHERE `Name`='%s", SpielerName(playerid));
Da fehlt ein ' nach %s.format(query,sizeof(query),"SELECT * FROM accounts WHERE `Name`='%s'", SpielerName(playerid));
Den fehler hatte ich dann auch gefunden^^, aber hilft nichts, es kommt auch wieder die selbe meldung das es leer ist, aber es steht ein wert drin -
Teste mal das hier
stock LoadPlayer(playerid)
{
new query[128],data[64];
format(query,sizeof(query),"SELECT * FROM accounts WHERE `Name`='%s' LIMIT 1;", SpielerName(playerid));
mysql_query(query);
mysql_store_result();
if(mysql_num_rows())
{
if(mysql_retrieve_row())
{
mysql_fetch_field_row(data, "Geld");
SpielerInfo[playerid][Geld]=strval(data);
GivePlayerMoney(playerid,strval(data));
printf("%d",strval(data));
}
}
mysql_free_result();//WICHTIG nicht vergessen!!
return 1;
} -
-
LIMIT 1;
Das bedeutet so viel wie
Ich suche nach Peter Pan und will nur ein Ergebnis haben
Will ich aber 2 haben so gebe ich Limit 2 anif(mysql_retrieve_row())
Der Speichert die SELECT werte zwischen
-
breadfish.de
Hat das Thema geschlossen.