Как сохранить значение из запроса SQL в переменную? - PullRequest
2 голосов
/ 14 мая 2009
$resourcesbuilt = mysql_query("SELECT resourcesbuilt FROM user WHERE username = '$username' LIMIT 1");

if ($resourcesbuilt<=0 )
{
    mysql_query("INSERT INTO resources (username, dollars) VALUES ( '$username', '1000')") or die (mysql_error());
    mysql_query("UPDATE user SET resourcesbuilt = '1' WHERE username = '$username'");
}

В основном у меня есть столбец в пользовательской таблице, который действует как флаг, который сообщает мне, была ли создана другая таблица для этого конкретного пользователя. Его 0, если нет, и 1, если есть. Однако кажется, что я не могу просто сохранить запрос в переменной и проверить, равен ли он 0 или нет, потому что фактическое значение из запроса не сохраняется в переменной var. Когда я повторяю var, он просто говорит Resource id # 3. Мои исследования php и SQL провалились. Кто-нибудь знает способ сохранить результат из SQL-запроса в переменную в php? Или может, по крайней мере, указать мне в правильном направлении? Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 14 мая 2009

Проблема в том, что результат, возвращаемый mysql_query, не может быть использован таким образом. Вместо этого вы должны позвонить

$value = mysql_fetch_array($resourcesbuilt, MYSQL_ASSOC)
$value ["resourcesbuilt"]

Это даст вам значение этого поля в таблице. Посмотрите здесь для примера.

0 голосов
/ 14 мая 2009
$ rs = mysql_query("UPDATE user SET resourcesbuilt = '1' WHERE username = '$username'");

сохранит результат в наборе записей с именем rs затем вы можете получить значения, позвонив

$myrow = mysql_fetch_array($rs)

поместит всю строку в массив с именем myrow и получить их значения по $myrow[column_name]

ой и еще одна заметка насколько я помню, вы не можете хранить их, так как они не являются операторами выбора единственный ресурс, который у вас будет, это mysql_num_rows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...