Загрузка граватара с помощью jQuery

Вы должны изменить: -

String query = " SELECT SUM(COLUMN_PRODUCTCOST) FROM " + TABLE_PRODUCTS + ";";

на

String query = " SELECT SUM(" + COLUMN_PRODUCTCOST + ") FROM " + TABLE_PRODUCTS + ";";

. В противном случае запрос не будет выполнен, так как нет столбца с именем COLUMN_PRODUCTCOST , вместо этого вы хотите значение при разрешении COLUMN_PRODUCTCOST (т. е. productcost ), которое является именем столбца.

Вы также можете рассмотреть возможность использования удобного метода запроса вместо использования метода rawQuery .

Тогда ваш код может быть: -

public int GetTotal(){
    int temp;
    SQLiteDatabase db = getWritableDatabase();
    String[] columns = new String[]{"SELECT SUM(" + COLUMN_PRODUCTCOST + ")"}
    Cursor cursor = db.query(TABLE_PRODUCTS,columns,null,null,null,null,null);
    if (cursor.moveToFirst()) {
        temp = cursor.getInt(0);
    }
    else temp = 0; //<<<<<<<<<< CHANGED not to return as the Cursor would not be closed.
    cursor.close();
    return temp;
}
  • Обратите внимание, что это закрывает курсор, даже если нет строк, что должно быть ((114) вы можете применить это к своему коду который использует rawQuery ).

24
задан Mogsdad 4 May 2016 в 16:09
поделиться

1 ответ

URL граватара похож на это:

http://www.gravatar.com/avatar/<md5hashofemail>

Вот остальная часть опций для URL.

Таким образом, все, что Вы оказываетесь перед необходимостью делать, включают функцию, вызванную md5, который возвращает md5 хеш электронной почты пользователя. Там много онлайн, которые делают это, но я полагаю, что https://github.com/blueimp/JavaScript-MD5/blob/master/README.md работает хорошо. После этого просто сделайте:

// get the email
var email = $('#email').val();
// -- maybe validate the email? 

// create a new image with the src pointing to the user's gravatar
var gravatar = $('<img>').attr({src: 'http://www.gravatar.com/avatar/' + md5(email)});
// append this new image to some div, or whatever
$('#my_whatever').append(gravatar);

// OR, simply modify the source of an image already on the page
$('#image').attr('src', 'http://www.gravatar.com/avatar/' + md5(email));

Я думал, что это было очевидно, но я добавлю его для пользы потомства:

Если пользовательские электронные письма являются частными, и Вы показываете это крыло-stackoverflow в списке, Вы - вероятно, более обеспеченное кодирование электронной почты на сервере так, чтобы пользовательские электронные письма не были публично видимы при рассмотрении источника.

52
ответ дан 28 November 2019 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: