0

我有一个名为 mystique item 的应用程序,用户必须在其中猜测水印后面的项目。水印不时出现,一切都很完美,但我猜单词有一个“小”问题。我在数组中添加了单词,用逗号分隔,并且我在我的 php 中爆炸了该数组,但由于某种原因,它只捕获第一个单词是正确的,其他一切都是不正确的。这就是我所做的。

$gt = getVal('pics','gtext','online',1);
$won = getVal('pics','winner','online',1);

if($won=='no')
{
    $counts = getGen(3);
    $counts2 = getGen(4);

    if($counts2==0) 
    {
         $counts2 = 9999999999999;
    }

    $ccount =  getCount2("$uid","$pid",date('Y-m-d H:i:s',$t1),date('Y-m-d H:i:s',$t2));
    $ccount3 =  getCount3("$uid","$pid");   

    if( $ccount>=$counts || $ccount3>=$counts2)
    {
         echo '4';
    }
    else
    {
        $sp = explode(",",$gt);

        if(in_array($val, $sp)) // guess correct
        { 
            echo '1';
        }
        else// guess wrong
        {
            echo '2';
        }
     }
}

gtext是我存储单词的行,我的单词中有空格,例如:new iphone,iphone 5s,apple ipad,etc etc).

这是检查单词的代码:

$.post('guessit.php',{from:1,val:$('#ug').val(),uid:$('#uid').val(),pid:$('#pid').val(),t1:<?php echo $time1; ?>,t2:<?php echo $time3; ?>},function(d){
  if(parseInt(d)==1){
    $.post('guessit.php',{from:2,val:$('#ug').val(),uid:$('#uid').val(),pid:$('#pid').val(),t1:<?php echo $time1; ?>,t2:<?php echo $time3; ?>},function(d1){
      advanced_example($('#uid').val(),'Congratulations!','You are the winner!!',1);
      //setInterval($(location).attr('href','redirecttohome.php'),10000);
    });
  }else if(parseInt(d)==2){
    $.post('guessit.php',{from:3,val:$('#ug').val(),uid:$('#uid').val(),pid:$('#pid').val(),t1:<?php echo $time1; ?>,t2:<?php echo $time3; ?>},function(d1){
      advanced_example($('#uid').val(),'Wrong!','Please try again!',1);              
      //setInterval($(location).attr('href','redirecttohome.php'),10000);
    });
  }else if(parseInt(d)==3){
    advanced_example($('#uid').val(),'Sorry!','Someone else was faster!',1);
    //setInterval($(location).attr('href','redirecttohome.php'),8000);
  }else if(parseInt(d)==4){
    advanced_example($('#uid').val(),'Error!','You already attempted maximum times',1);             
    //setInterval($(location).attr('href','redirecttohome.php'),8000);

}

guessit.php 包含我向您展示的第一个代码。

如果您需要其他任何东西来帮助我,请告诉我。

@AmalMurali 接下来我需要的是:我在 MySQL 中:

apple ipad,apple iphone4,apple ipod,iphone4,apple

我需要它们作为字符串:

apple ipad
apple iphone4
apple ipod
iphone4
apple
4

1 回答 1

1

您需要修剪空白以使if条件按您希望的方式工作:

$sp = explode(",",$gt);
$sp = array_map('trim', $sp); //trim all the elements in $sp

如果元素在开头或结尾包含空格,则以下条件将评估为FALSE,从而触发else块中的语句:

if(in_array($val, $sp)) {

如果删除了空格,则in_array应该可以工作并且代码应该按预期工作。

于 2013-09-22T12:13:22.797 回答