Проверка в 2 таблици с една заявка

niker

Registered
Трябва да проверя потребителското име в 2 таблици.
При регистър
1) Потребители
2) Неактивни потребители

PHP:
$pi6 = mysql_num_rows(mysql_query("SELECT username FROM users WHERE username='".$_POST['username']."'")); 
if ($pi6 < 0) {}

$pi62 = mysql_num_rows(mysql_query("SELECT username FROM unactive WHERE username='".$_POST['username']."'")); 
if ($pi62 < 0) {}

Идеята ми е да се проветят тези 2 неща с една заявка
 
http://en.wikipedia.org/wiki/Join_(SQL

Дано ти свърши работа не мога да ти дам пример с твойте защото не мога да работя с join :]


ПП:
пробвай така
PHP:
$pi = mysql_num_rows(mysql_query("SELECT username FROM users, unactive WHERE username=' . $_POST['username'] . '"));
 
goshkoy каза:
http://en.wikipedia.org/wiki/Join_(SQL

Дано ти свърши работа не мога да ти дам пример с твойте защото не мога да работя с join :]
Упътвания бол.
Идеята е, че немога да го измисля.
Иначе знам за Join. Ама немоа да го измисля как ще стане.

Трябва ми някой, който го е правил.
 
PHP:
SELECT username FROM users
INNER JOIN unactive
ON users.username = unactive.username
WHERE users.username='".$_POST['username']."'

Едитнах си го че имах грешка.
 
Radko каза:
PHP:
SELECT username FROM users
INNER JOIN unactive
ON users.username = unactive.username
WHERE users.username='".$_POST['username']."'

Едитнах си го че имах грешка.
Да само един последен въпрос.
Ако колоната username е с различни имена. Забравих това да спомена.
В
Код:
unactive
е
Код:
users
 
ем тогава така

PHP:
SELECT username FROM users
INNER JOIN unactive
ON users.username = unactive.users
WHERE users.username='".$_POST['username']."'
 
Radko каза:
ем тогава така

PHP:
SELECT username FROM users
INNER JOIN unactive
ON users.username = unactive.users
WHERE users.username='".$_POST['username']."'

Хм.... да така го направих, обаче нещо май нестава.
Защото като имам неактивни потребители Мога да си ги регистрирам.
Идеята е да избира и от 2те таблици и ако има някъде да връща грешка.
Пък то не връща ако в unactive има някой със същото име
 
PHP:
SELECT users.username, unactive.users FROM users
INNER JOIN unactive
ON users.username = unactive.users
WHERE users.username='".$_POST['username']."'

пробвй така
 
Radko каза:
PHP:
SELECT users.username, unactive.users FROM users
INNER JOIN unactive
ON users.username = unactive.users
WHERE users.username='".$_POST['username']."'

пробвй така

deam същото. Пак си ги регва :(
 
Би ли обяснил какво искаш?
По-горните кодове напълно обединяват заявките !
Сигурен ли си, че правиш правилна проверка?
 
action каза:
Би ли обяснил какво искаш?
По-горните кодове напълно обединяват заявките !
Сигурен ли си, че правиш правилна проверка?

Искам ето тези 2 заявки да станат една:

PHP:
$pi6 = mysql_num_rows(mysql_query("SELECT username FROM users WHERE username='".$_POST['username']."'")); 
if ($pi6 < 0) {}

$pi62 = mysql_num_rows(mysql_query("SELECT name_id FROM unactive_members WHERE name_id='".$_POST['username']."'")); 
if ($pi62 < 0) {}

Сигурен съм. Проверявам я вече 100-ен път.

Идеята е следната: При регистър имам 2 таблици в едната
се записват неактивните потребители праща мейл с линк и при успех
се трие инфото от едната таблица и се презаписва на другата.
При регистър искам да проверя да ли името е свободно и в 2те таблици.

П.с. Трябва да го направя с 2 таблици немога с една. :) Знам че има и такъв вариант :)
 
Как си правиш проверката с новата заявка? Имай в предвид, че тя винаги връща резултат ако има съвпадение в дори една таблица или null ако няма намерено и в двете. Направи го така:

PHP:
$data = mysql_query("SELECT users.username AS activeUser, unactive.users AS unactiveUser FROM users
FULL JOIN unactive
ON users.username = unactive.users
WHERE users.username='".$_POST['username']."' ");

if($data['activeUser'] == null && $data['unactiveUser'] == null)
{
   //двете полета са празни тоест името е свободно
}

Това го написах сега набързо. Пробвай го. До колкото помня, ако не е намерено съвпадение в заявка с join връща null, ако греша някой да ме поправи.
 
Защо ти е втора таблица за неактивните потребители? Защо просто не добавиш едно поле 'inactive' от тип TINYINT? Така ще минеш с една заявка:

PHP:
$pi6 = mysql_num_rows(mysql_query("SELECT username FROM users WHERE username='".$_POST['username']."' AND inactive = 0"));
 
eLite каза:
Защо ти е втора таблица за неактивните потребители? Защо просто не добавиш едно поле 'inactive' от тип TINYINT? Така ще минеш с една заявка:

PHP:
$pi6 = mysql_num_rows(mysql_query("SELECT username FROM users WHERE username='".$_POST['username']."' AND inactive = 0"));
прочети ми всички постове.
И ще си отговориш
 
niker каза:
eLite каза:
Защо ти е втора таблица за неактивните потребители? Защо просто не добавиш едно поле 'inactive' от тип TINYINT? Така ще минеш с една заявка:

PHP:
$pi6 = mysql_num_rows(mysql_query("SELECT username FROM users WHERE username='".$_POST['username']."' AND inactive = 0"));
прочети ми всички постове.
И ще си отговориш
И все пак не виждам проблем да го направиш с една таблица.. Явно така си си го втълпил. :idea:

Както и да е, би ли ми обяснил какво очакваш да ти върне следното условие:
PHP:
if ($pi6 < 0) {}

Очакваш броя записи да е по-малко от нула?

Не трябва ли да е:
PHP:
if ($pi6 > 0) {
//Има записи в таблицата
}
else{
//Няма записи в таблицата
}
 

Back
Горе