2015-06-14 103 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'; 
} 
?> 


<? }}}}}}} ?> 

现在你所看到的代码,我想我需要更多的升技解释。 one2-six2是用户选择的6个数字。 他们需要与表中的数字匹配“数字” 它可以工作,但如果用户不匹配他们的第一个数字(one2)但匹配(two2)例如,那么它表示他们没有匹配任何。

有什么建议吗?

+0

1.停止使用MySQL_ *其破旧和使用mysqli_ *然后对于每一个抱歉替换抱歉,你没有得到你的第一个/第二个/ etc的号码,那么它会移动到下一个说你有号码/二/三/等如果得到一个正确的号码 –

+0

1.停止使用MySQL_ *它的破旧和使用mysqli_ * 2.结束之后,每一个在另一个之前。然后对于每一个抱歉替换抱歉,你没有得到你的第一个/第二个/等号码,然后它会移动到下一个说如果得到了一个正确的号码,你有号码/二/三/等。应该像if($ one2 === $ one2_query){$ correct = $ number + 1; } else {$ wrong = $ number_wrong +1;} //状态结束Echo'you got'。$ number。' Numbers Right and'。$ number_wrong。'数字错了。'; –

+0

你可以发布一个例子: $ q = mysql_query(“SELECT * FROM'numbers' WHERE'1' ='$ one2'或'2' ='$ one2'或'3' ='$ one2'或者' 4'='$ one2'或'5'='$ one2'或'6'='$ one2'LIMIT 1“); $ get = mysql_num_rows($ q); if($ get == 0){ echo'对不起,你没有匹配任何东西'; } else { ///首字母匹配,检查第二等.. 我的代码的工作原理是如何我希望它的工作,但如果他们的第一个数字不匹配,但第二个它说没有作品,所以它说的第一个没有匹配,它需要检查他们的第二个等... 我是相当新的PHP因此,我很困惑 – 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

如果Jamie回答了问题,请检查答案旁边的绿色复选标记。 – dmikester1

相关问题