getSettingValue(PGresult *res, char settingname) { int setting_value_row; int setting_value; char field_name; char tmp_setting_name; int nFields; int i; int j; nFields = PQnfields(res); for (i = 0; i < nFields; i++) { field_name = PQfname(res, i); if(field_name == "setting_name") { for (j = 0; j < nFields; j++) { tmp_setting_name = PQgetvalue(res, i, j); if(tmp_setting_name == settingname) { // We found which row our setting value is, end the loop. fprintf("Setting name found: '%s'\n", tmp_setting_name); setting_value_row = j; j=nFields; i=nFields; } } } } for(i = 0; i < nFields; i++) { field_name = PQfname(res, i); if(field_name == "setting_value") { // We have found our setting value end the loop setting_value = PQgetvalue(res, i,setting_value_row); i = nFields; } } return setting_value; }