Dank dir, jetzt ein etwas kompliziertes Problem. Ich arbeite an einer Transaktionübersicht für meine Bankautomaten.
Möchte das ganze über mehrere Seiten machen. (Es werden immer 10 Transaktionen pro Seite angezeigt, was korrekt ist!)
Hier mal der Code dazu, welcher funktioniert.
case 1: //Funktion (Negative Transaktionen)
{
Page[playerid] = 0;
new query[256], Cache: Result;
mysql_format(MySQLConnection, query, sizeof(query), "SELECT `Absender`, `Empfänger`, `Zeit`, `Betrag` FROM `server_atmlog` WHERE `Absender` = '%e' ORDER BY `Absender` DESC LIMIT %d, 10", PlayerInfo[playerid][pName], Page[playerid] * 15);
Result = mysql_query(MySQLConnection, query);
new rows = cache_num_rows();
if(rows)
{
new Header[1024], Sender[64], Receiver[64], Date[64], Deposit;
format(Header, sizeof(Header), ""HTML_SERVER2"Absender\t"HTML_SERVER2"Empfänger\t"HTML_SERVER2"Zeit\t"HTML_SERVER2"Betrag\n");
for(new i; i < rows; ++i)
{
cache_get_value_name(i, "Absender", Sender);
cache_get_value_name(i, "Empfänger", Receiver);
cache_get_value_name(i, "Zeit", Date);
cache_get_value_name_int(i, "Betrag", Deposit);
format(Header, sizeof(Header), "%s%s\t%s\t%s\t"HTML_RED"$%s\n", Header, Sender, Receiver, Date, convertNumber(Deposit));
ShowPlayerDialog(playerid, DIALOG_ATMTRANSAKTIONNOD, DIALOG_STYLE_TABLIST_HEADERS, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Transaktionen (Übersicht)", Header, "Weiter", "Zurück");
}
}
if(!rows)
{
Page[playerid] = 0;
strdel(DialogString, 0, sizeof(DialogString));
format(DialogString, sizeof(DialogString),""HTML_SERVER2"Willkommen bei der "HTML_SERVER1"Bank of SA"HTML_SERVER2",\n"HTML_SERVER2"derzeit sind keine Transaktionen auf Ihrem Bankkonto vorhanden.");
ShowPlayerDialog(playerid, DIALOG_ATMTRANSAKTIONNO, DIALOG_STYLE_MSGBOX, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Transaktionen Seite 1)", DialogString, "Schließen", "");
}
cache_delete(Result);
}
So, jetzt möchte ich gerne auf eine zweite Seite gehen, jedoch bekomme ich von dort keine weiteren Einträge, obwohl mehr als 10 Einträge in der Datenbank vorhanden sind.
case DIALOG_ATMTRANSAKTIONNOD:
{
if(!response)
{
strdel(DialogString, 0, sizeof(DialogString));
format(DialogString, sizeof(DialogString), ""HTML_SERVER1"1. "HTML_SERVER2"Positive Kontotransaktionen\n"HTML_SERVER1"2. "HTML_SERVER2"Negative Kontotransaktionen");
ShowPlayerDialog(playerid, DIALOG_ATMTRANSAKTIONVIEW, DIALOG_STYLE_LIST, ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Transaktion Übersicht)", DialogString, "Bestätigen", "Zurück");
}
if(response)
{
Page[playerid] ++;
new query[256], Overview[256], Cache: Result;
mysql_format(MySQLConnection, query, sizeof(query), "SELECT `Absender`, `Empfänger`, `Zeit`, `Betrag` FROM `server_atmlog` WHERE `Absender` = '%e' ORDER BY `Absender` DESC LIMIT %d, 10", PlayerInfo[playerid][pName], Page[playerid] * 15);
Result = mysql_query(MySQLConnection, query);
format(Overview, sizeof(Overview), ""#HTML_SERVER1""#SERVER_NAME" "HTML_SERVER2"- Bankautomat (Transaktionen Seite %d)", Page[playerid] +1);
print("1");
new rows = cache_num_rows();
if(rows)
{
print("2");
new Header[1024], Sender[64], Receiver[64], Date[64], Deposit;
format(Header, sizeof(Header), ""HTML_SERVER2"Absender\t"HTML_SERVER2"Empfänger\t"HTML_SERVER2"Zeit\t"HTML_SERVER2"Betrag\n");
for(new i; i < rows; ++i)
{
cache_get_value_name(i, "Absender", Sender);
cache_get_value_name(i, "Empfänger", Receiver);
cache_get_value_name(i, "Zeit", Date);
cache_get_value_name_int(i, "Betrag", Deposit);
format(Header, sizeof(Header), "%s%s\t%s\t%s\t"HTML_RED"$%s\n", Header, Sender, Receiver, Date, convertNumber(Deposit));
ShowPlayerDialog(playerid, DIALOG_ATMTRANSAKTIONNOD, DIALOG_STYLE_TABLIST_HEADERS, Overview, Header, "Weiter", "Zurück");
}
}
if(!rows)
{
}
cache_delete(Result);
}
}