CodeAlles anzeigenocmd:help(playerid, params[]) { if(!IsLoggedIn(playerid))return 1; { new strFind[64]; if(!sscanf(params, "s[64]", strFind)) { if(!IsNumeric(strFind)) { if(strlen(strFind) > 2) { new strTemp[512]; format(strTemp, sizeof(strTemp), "SELECT * FROM `server_help`"); mysql_function_query(MySqlConnection, strTemp, true, "sqlCheckHelp", "is", playerid, strFind); } else { SendClientMessage(playerid, COLOR_WHITE, "{AA3333}Der Begriff nach dem du suchst muss mindestens 3 Zeichen haben!"); } } else { new strTemp[512]; format(strTemp, sizeof(strTemp), "SELECT * FROM `server_help`"); mysql_function_query(MySqlConnection, strTemp, true, "sqlCheckHelp", "is", playerid, strFind); } } else { SendClientMessage(playerid, COLOR_WHITE, "{247BA6}*** HILFE *** {00CC00}Du kannst mit /help [Suchbegriff] die Datenbank durchsuchen."); } } return 1; } public sqlCheckHelp(playerid, find[]) { new strHelp[1500], strTitle[128], tempCount, strList[1024], dataID, tempHelp[1024], tempTitle[128]; format(strList, 1024, "Es wurden mehrere Einträge in der Datenbank gefunden!\nVerwende: /help [ID]\n\n"); if(!IsNumeric(find)) { for(new i = 0; i < cache_get_row_count(MySqlConnection); i++) { cache_get_field_content(i, "text", strHelp, MySqlConnection, 1500); cache_get_field_content(i, "title", strTitle, MySqlConnection, 128); dataID = cache_get_field_content_int(i, "id", MySqlConnection); if(strfind(strHelp, find, true) != -1) { tempCount++; format(strList, 1024, "%sID: %i - Titel: %s\n", strList, dataID, strTitle); format(tempHelp, 1500, "%s", strHelp); format(tempTitle, 128, "%s", strTitle); continue; } } if(tempCount) { if(tempCount > 1) ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Es wurden mehrere Einträge gefunden!", strList, "Schließen", ""); else ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Hilfe", tempHelp, "Schließen", ""); } else { SendClientMessage(playerid, COLOR_WHITE, "{AA3333}Wir haben in der Datenbank keinen Begriff dazu gefunden!"); } } else { if(cache_get_row_count(MySqlConnection)) { cache_get_field_content(0, "text", strHelp, MySqlConnection, 1500); cache_get_field_content(0, "title", strTitle, MySqlConnection, 128); ShowPlayerDialog(playerid, DIALOG_HELP, DIALOG_STYLE_MSGBOX, "Hilfe", strHelp, "Schließen", ""); } else { SendClientMessage(playerid, COLOR_WHITE, "{AA3333}Es konnte kein Eintrag zu dieser ID gefunden werden!"); } } return 1; }
Hey,
Habe folgendes Problem... Egal nach welcher nummer ich suche schmeißt er mir den 1. Artikel her.. Weiß jemand warum. Mysql R34
Du solltest die Fallentscheidung (ob Zahl oder nicht) bereits im Befehl help machen. Sollte dann eine Zahl sein, würde ich per WHERE Klausel die ID angeben. Derzeit lässt du ihm einfach den ersten Eintrag den er findet anzeigen, wodurch auch dein "Fehler" die logische Konsequenz ist.