Этот вопрос ясен, но в вашем примере кода есть много проблем с форматированием, и я не могу дать вам прямой ответ, основываясь на вашем примере кода.
Причина, по которой ваш пример неясен, в том, что ... с чем вы собираетесь присоединиться к столам? Из одной таблицы вы выбираете name='$rs[firearm]'
, а из другой player='$id'
. Вы должны предоставить скрытые данные, такие как $rs
, а также $id
.
Вы должны обязательно прочитать эти сведения о mysql join и mysql left join . Но я постараюсь дать вам пример, основанный на вашем коде, с фиксированным синтаксисом. (Имейте в виду, что я не являюсь экспертом по соединению mysql, я не тестировал этот код, а также не знаю условий присоединения.) Кроме того, структура системы неясна.
Как я понял, это то, что ваши таблицы делают, правильно?
- бандиты - Пользователи Таблица
- items_firearms - Ссылки от пользователей таблицы на элементов таблицы
- db_firearms - Items table
В общем, мой пример делает это: он будет иметь предварительно загруженное значение $rs
из таблицы users . Он проверит, есть ли запись в таблице links и перехватит результат с их таблицей items . Однако, если таблица links или даже таблица items могут возвращать несколько записей, то это не сработает, и вам нужно зациклить результаты более умным способом.
// I can only assume, that $id is the ID of the player
$id = 2;
// Since I dont know the $rs value, then Im going to make some up
$rs = array(
'id' => 33,
'firearm' => 'famas'
);
if ($rs['firearm']) {
$result = mysql_fetch_array(mysql_query("SELECT ifa.*, dbfa.* FROM `items_firearms` AS `ifa` LEFT JOIN `db_firearms` AS `dbfa` ON `ifa.shortname` = `dbfa.shortname` WHERE `ifa.player` = '$id'"));
if ($result['id']) {
mysql_query("UPDATE `mobsters` SET `firearm` = '' WHERE `id` = '$id'", $db);
}
}
Довольно ясно, что вы новичок в PHP и mysql .. Поэтому я думаю, что вам, вероятно, следует отредактировать свой вопрос и поговорить о своей более высокой цели. Кратко упомяните, какое приложение вы создаете? Что вы пытаетесь сделать с запросами MySQL? Может быть, предоставить структуру таблицы ваших таблиц MySQL ..? Я уверен, что вы вернете свои вопросы в нормальное русло, а также мы поможем вам намного лучше.
ПРИМЕЧАНИЯ
- Вы должны заключать в кавычки следующие типы переменных:
$rs[firearm]
-> $rs['firearm']
- Если вы хотите проверить, что ваш $ rs ['firearm'] равен чему-то, то есть лучший способ, чем
$rs[firearm] != ""
. Самым простым является if ($rs['firearm']) {echo 'foo';}
, но он выдаст уведомление при появлении всех сообщений об ошибках в режиме. Вы можете использовать isset()
и empty()
, но имейте в виду, что isset()
проверяет, установлена ли переменная. Значение, четное если его ложь, то он был установлен. empty()
реагирует на неопределенную и пустую переменную одинаково, без каких-либо сообщений.
- Кроме того,
""
означает NULL
, поэтому, если вам даже нужно использовать ""
, тогда используйте NULL
вместо ... намного более аккуратного способа ..
- Я настоятельно рекомендую использовать класс mysql. Вы можете понять основы этой идеи из этого ответа . Это сделает все намного проще для вас. Кроме того, класс mysql является обязательным при работе с динамическими приложениями.
if ($rs3[$rs2[shortname]] < 1) { ..
не имеет смысла .. Хотите проверить, является ли значение пустым? Тогда (просто): if (!$rs3[$rs2[shortname]]) { ..
и очень строгий стандарт: if (empty($rs3[$rs2[shortname]])) { ..
- Также вы должны процитировать ваши sql запросы, см. Мои примеры выше.
- В последнем запросе mysql отсутствует $ db?