2015-06-14 3 views
0

Мне удалось сделать то, что я хотел, но если пользователь не соответствует первому номеру, тогда он говорит, что они не соответствуют ни одному, когда они могли бы соответствовать 5 и т.д ... Подумайте об этом как лотерея :)PHP & Mysql, Проверка того, соответствуют ли столбцы в таблице другому столбцу в другой таблице (Сложно)

<? 
include "includes/db_connect.php"; 

$email=$_SESSION["real_name"]; 
$sql="SELECT * from users WHERE email='$email'"; 
$result=mysql_query($sql); 

while($rows=mysql_fetch_array($result)){ // Start looping table row 

$one2=$rows['1']; 
$two2=$rows['2']; 
$three2=$rows['3']; 
$four2=$rows['4']; 
$five2=$rows['5']; 
$six2=$rows['6']; 
{ 
     $q = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$one2' OR `2` = '$one2' OR `3` = '$one2' OR `4` = '$one2' OR `5` = '$one2' OR `6` = '$one2' LIMIT 1"); 
     $get = mysql_num_rows($q); 
if($get == 0) { 
    echo 'Sorry you didnt match anything'; 
} else { 
    $q1 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$two2' OR `2` = '$two2' OR `3` = '$two2' OR `4` = '$two2' OR `5` = '$two2' OR `6` = '$two2' LIMIT 1"); 
     $get1 = mysql_num_rows($q1); 
if($get1 == 0) { 
    echo 'You matched one number'; 
} else { 
    $q2 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$three2' OR `2` = '$three2' OR `3` = '$three2' OR `4` = '$three2' OR `5` = '$three2' OR `6` = '$three2' LIMIT 1"); 
     $get2 = mysql_num_rows($q2); 
if($get2 == 0) { 
    echo 'You matched two numbers'; 
} else { 
    $q3 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$four2' OR `2` = '$four2' OR `3` = '$four2' OR `4` = '$four2' OR `5` = '$four2' OR `6` = '$four2' LIMIT 1"); 
     $get3 = mysql_num_rows($q3); 
if($get3 == 0) { 
    echo 'You matched three numbers'; 
} else { 
    $q4 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$five2' OR `2` = '$five2' OR `3` = '$five2' OR `4` = '$five2' OR `5` = '$five2' OR `6` = '$five2' LIMIT 1"); 
     $get4 = mysql_num_rows($q4); 
if($get4 == 0) { 
    echo 'You matched four numbers'; 
} else { 
    $q5 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$six2' OR `2` = '$six2' OR `3` = '$six2' OR `4` = '$six2' OR `5` = '$six2' OR `6` = '$six2' LIMIT 1"); 
     $get5 = mysql_num_rows($q5); 
if($get5 == 0) { 
    echo 'You matched five numbers'; 
} else { 
    echo 'You matched all the numbers'; 
} 
?> 


<? }}}}}}} ?> 

Теперь вы увидели код, я думаю, что нужно объяснить ABIT больше. one2-six2 - 6 номеров, которые выбрал пользователь. Их нужно сопоставить с цифрами в таблице «числа» Это работает, но если пользователь не соответствует их первому числу (one2), но соответствует (two2), например, то он говорит, что они не соответствуют ни одному.

Любые советы?

+0

1. Прекратите использование MySQL_ * его ветхий и используйте mysqli_ * 2. Завершите все после другого, если. Затем для каждого извините, замените извините, что вы не получили свой первый/второй/и т. Д. Номер, после чего он перейдет к следующему, чтобы сказать, что вы получили номер/два/три/и т. Д., Если получили правильный номер –

+0

1. Прекратите использование MySQL_ * его ветхий и использовать mysqli_ * 2. Конец после каждого другого перед другим, если. Тогда для каждого извините, замените извините, что вы не получили свой первый/второй/и т. Д. Номер, после чего он перейдет к следующему, чтобы сказать, что вы получили номер/два/три/и т.д., если получили правильный номер. Должен идти, если ($ one2 === $ one2_query) {$ correct = $ number + 1; } else {$ wrong = $ number_wrong +1;} // конец statenents Echo 'you got'. $ number. ' Номера справа и '. $ Number_wrong.' Номер неправильный. '; –

+0

Не могли бы вы привести пример вроде: $ q = mysql_query ("SELECT * FROM' numbers' WHERE '1' = '$ one2' ИЛИ' 2' = '$ one2' OR '3' = '$ one2' OR' 4' = '$ one2' OR '5' = '$ one2' OR' 6' = '$ one2' LIMIT 1 "); $ get = mysql_num_rows ($ q); if ($ get == 0) { echo 'Извините, что вы ничего не соответствовали'; } else {/// Первый номер соответствует, проверяет второй и т. Д. Мой код работает так, как я хочу, чтобы он работал, но если их первый номер не совпадает, а второй, он говорит, что никто не работает так, что он говорит на первом нет совпадений, нужно проверить их второй и т. д. ... Я довольно новичок в PHP, поэтому im confused – StuckonPHP

ответ

0
<? 
include "includes/db_connect.php"; 

$email=$_SESSION["real_name"]; 
$sql="SELECT * from users WHERE email='$email'"; 
$result=mysql_query($sql); 

$number = 0; 
$number_wrong = 0; 

while($rows=mysql_fetch_array($result)){ // Start looping table row 

$one2=$rows['1']; 
$two2=$rows['2']; 
$three2=$rows['3']; 
$four2=$rows['4']; 
$five2=$rows['5']; 
$six2=$rows['6']; 
{ 
     $q = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$one2' OR `2` = '$one2' OR `3` = '$one2' OR `4` = '$one2' OR `5` = '$one2' OR `6` = '$one2' LIMIT 1"); 
     $get = mysql_num_rows($q); 
if($get == 0) { 
    $number++; 
} else { 

$number_wrong++; 
} 
    $q1 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$two2' OR `2` = '$two2' OR `3` = '$two2' OR `4` = '$two2' OR `5` = '$two2' OR `6` = '$two2' LIMIT 1"); 
     $get1 = mysql_num_rows($q1); 
if($get1 == 0) { 
    $number++; 
} else { 

$number_wrong++; 
} 

    $q2 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$three2' OR `2` = '$three2' OR `3` = '$three2' OR `4` = '$three2' OR `5` = '$three2' OR `6` = '$three2' LIMIT 1"); 
     $get2 = mysql_num_rows($q2); 
if($get2 == 0) { 
    $number++; 
} else { 

$number_wrong++; 
} 
    $q3 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$four2' OR `2` = '$four2' OR `3` = '$four2' OR `4` = '$four2' OR `5` = '$four2' OR `6` = '$four2' LIMIT 1"); 
     $get3 = mysql_num_rows($q3); 
if($get3 == 0) { 
    $number++; 
} else { 

$number_wrong++; 
} 
    $q4 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$five2' OR `2` = '$five2' OR `3` = '$five2' OR `4` = '$five2' OR `5` = '$five2' OR `6` = '$five2' LIMIT 1"); 
     $get4 = mysql_num_rows($q4); 
if($get4 == 0) { 
$number++; 
} else { 

$number_wrong++; 
} 
    $q5 = mysql_query("SELECT * FROM `numbers` WHERE `1` = '$six2' OR `2` = '$six2' OR `3` = '$six2' OR `4` = '$six2' OR `5` = '$six2' OR `6` = '$six2' LIMIT 1"); 
     $get5 = mysql_num_rows($q5); 
if($get5 == 0) { 
    $number++; 
} else { 

$number_wrong++; 
}} 

Echo 'you got '.$number.' Numbers right and '.$number_wrong.' Numbers wrong.'; 
?> 

Извините, что делал это на своем телефоне. Не самый легкий. Проверьте синтаксис.

+0

Это выглядит хорошо, В нем говорится: «У вас есть номера справа и цифры неправильно». Не сохраняет количество цифр Любые идеи – StuckonPHP

+0

После нескольких корректировок, Его 100% работает, как я этого хотел. – StuckonPHP

+0

Спасибо, его идеальный – StuckonPHP

0

Вопрос был дан ответ! Не уверен, что это правильный путь извините

+0

Если Джейми ответил на это, отметьте зеленую галочку рядом с его ответом. – dmikester1