PHP:数组搜索组

时间:2014-02-24 20:35:33

标签: php mysql sql arrays

我有这个脚本来搜索MySQL数据库,这个脚本显示了从loto提取中提取一个数字的次数。我不知道如何让它搜索像22,69,80这样的数字组。有什么建议吗?

此脚本显示的内容:

http://i.stack.imgur.com/i8wof.png

脚本:

<?php
mysql_connect("mysql.hostinger.ro", "******", "*****") or die(mysql_error());
mysql_select_db("*******") or die(mysql_error());

$numere_cautate = false;
if (isset($_POST['numere'])) {
    $search_text = str_replace(" ", "", trim($_POST['numere']));
    if (!empty($search_text)) {
        $numere_cautate = explode(",", $search_text);
    }
}

$search_text = isset($search_text) ? $search_text : "";

$limit = isset($_POST['extrageri']) ? $_POST['extrageri'] : 10;
$limit = is_numeric($limit) ? $limit : 10;

$ultimele_zile = isset($_POST['ultimele_zile']) ? $_POST['ultimele_zile'] : 3;
$ultimele_zile = is_numeric($ultimele_zile) ? $ultimele_zile : 3;
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="style.css" type="text/css" media="all" />
    <script src="js/sorttable.js"></script>
    <title>Loto Polonia</title>
</head>
<body>

<div id="search">
    <form method="post" action="index.php">
        <input type="text" placeholder="Numere" name="numere" size="30" value="<?php echo $search_text; ?>">
        <input type="text" placeholder="Extrageri" name="extrageri" size="5" value="<?php echo $limit; ?>">
        <select name="ultimele_zile">
            <option value="1">Ultima zi</option>
            <option value="2">Ultimele 2 zile</option>
            <option value="3" selected="selected">Ultimele 3 zile</option>
            <option value="4">Ultimele 4 zile</option>
            <option value="5">Ultimele 5 zile</option>
            <option value="0">Toată baza de date</option>
        </select>
        <input type="submit" value="Caută">
    </form>    
</div>


<table id="box-table-a" class="sortable" style="float: left; margin: 0 15px 15px 0; text-align: center;">
    <thead>
        <tr>
            <th scope="col">Nr.</th>
            <th scope="col">Aparitii</th>
            <th scope="col">Pauza</th>
            <th scope="col">Pauza max.</th>
            <th scope="col">Media</th>
        </tr>
    </thead>
    <tbody>
        <?php
        if (is_array($numere_cautate)) {
            $cu_limita = ($ultimele_zile == 0) ? "" : "AND data >= (CURDATE() - INTERVAL $ultimele_zile DAY )";

            foreach ($numere_cautate as $numar_cautat) {
                echo '<tr>';
                echo '<td>'.$numar_cautat.'</td>';
                echo '<td>';            
                $aparitii = mysql_num_rows(mysql_query("SELECT * FROM extrageri WHERE FIND_IN_SET('".$numar_cautat."', numere) > 0 ".$cu_limita." ORDER BY id DESC "));
                echo $aparitii;
                echo '</td>';

                $prima_pauza = false;
                $pauza = $pauza_curenta = $pauza_maxima = 0;            
                $ultimele_extrageri = mysql_query("SELECT * FROM extrageri WHERE id ".$cu_limita." ORDER BY id DESC");
                $numar_ultimele_extrageri = mysql_num_rows($ultimele_extrageri);
                while ($rand = mysql_fetch_assoc($ultimele_extrageri)) {
                    $numere = str_replace(" ", "", $rand['numere']);
                    $numere_array = explode(",", $numere);

                    if (!in_array($numar_cautat, $numere_array)) {
                        $pauza++;    
                        if ($pauza > $pauza_maxima) $pauza_maxima = $pauza;    
                    } else {
                        if ($prima_pauza == false) {
                            $pauza_curenta = $pauza;
                            $prima_pauza = true;
                            $pauza = 0;
                        }
                    }            

                    if ($aparitii == 0) $pauza_curenta = $pauza_maxima = $numar_ultimele_extrageri;
                }
                $medie = number_format(($aparitii * 100)/$numar_ultimele_extrageri, 2);
                echo '<td>'.$pauza_curenta.'</td>';
                echo '<td>'.$pauza_maxima.'</td>';
                echo '<td>'.$medie.'%</td>';
                echo '</tr>';    
            }
        }
           ?>
    </tbody>
</body>
</html>

http://i.stack.imgur.com/i8wof.png 这是mysql dump

  

SET SQL_MODE =“NO_AUTO_VALUE_ON_ZERO”; SET time_zone =“+00:00”;

     

/ *!40101 SET @OLD_CHARACTER_SET_CLIENT = @@ CHARACTER_SET_CLIENT /;   / !40101 SET @OLD_CHARACTER_SET_RESULTS = @@ CHARACTER_SET_RESULTS /;   / !40101 SET @OLD_COLLATION_CONNECTION = @@ COLLATION_CONNECTION /;   / !40101 SET NAMES utf8 * /;

     

-

     

- Bazădedate:loto_polonia

     
     

-

     

- Structura de tabel pentru tabelul extrageri

     

CREATE TABLE IF NOT NOT EXISTS extrageriid int(11)NOT NULL   AUTO_INCREMENT,data日期非空,numere varchar(255)不   NULL,PRIMARY KEY(id))ENGINE = InnoDB DEFAULT CHARSET = utf8   AUTO_INCREMENT = 31;

     

-

     

- Salvarea datelor din tabel extrageri

     

INSERT INTO extrageriiddatanumere)VALUES(1,   “少儿模特”,   '6,9,10,12,14,25,27,30,32,33,34,41,43,50,51,56,59,68,73,74'),(2,   “少儿模特”,   '6,7,8,11,18,20,24,25,31,45,48,50,51,53,61,67,69,72,75,80'),(3,   “2014年1月9日”,   '4,5,6,7,12,19,22,28,32,36,44,48,52,53,57,58,66,74,77,阴茎'),(4,   “2014年1月9日”,   '3,5,6,8,9,13,14,19,26,31,34,41,42,50,54,59,63,67,73,77'),(5,   '2014-01-10',   '4,5,7,11,15,17,20,22,24,25,31,32,35,41,42,55,60,62,69,75'),(6,   '2014-01-10',   '1,6,11,12,13,15,19,27,28,31,34,35,40,43,49,51,52,64,66,71'),(7,   '2014-01-11',   '8,14,21,23,24,28,31,33,39,44,47,48,58,62,64,67,70,71,78,80'),(8,   '2014-01-11',   '5,8,15,24,31,35,37,39,40,42,47,51,57,58,63,68,70,75,76,78'),(9,   “2014年1月12日”,   '1,3,10,11,12,24,31,38,41,48,52,53,56,58,62,64,73,74,75,78'),(10,   “2014年1月12日”,   '2,6,9,13,17,21,29,44,50,53,54,56,58,59,65,66,70,71,72,76'),(11,   “2014年1月13日”,   '9,10,11,12,15,16,23,26,32,33,34,43,45,49,60,67,69,72,74,78'),(12,   “2014年1月13日”,   '4,9,17,18,22,23,25,27,30,31,32,37,44,51,52,55,66,70,71,72'),(13,   “2014年1月14日”,   '3,8,16,18,25,26,29,38,41,44,51,54,57,64,66,69,71,76,77,79'),(14,   “2014年1月14日”,   '6,7,16,22,24,26,28,35,37,43,46,54,55,58,69,70,71,73,77,79'),(15,   “2014年1月15日”,   '4,5,6,10,11,20,23,25,27,28,30,31,37,39,41,53,55,57,70,71'),(16,   “2014年1月15日”,   '5,7,10,14,15,19,28,30,36,37,38,45,52,57,58,66,67,72,75,76'),(17,   “2014年1月16日”,   '4,6,8,9,10,22,25,34,36,37,40,42,44,47,49,51,58,63,70,73'),(18,   “2014年1月16日”,   '7,8,9,10,14,22,23,26,27,29,30,32,48,55,57,58,62,65,67,75'),(19,   “2014年1月17日”,   '2,5,8,13,15,22,24,38,41,43,50,56,60,62,64,67,72,74,75,77'),(20,   “2014年1月17日”,   '1,6,13,14,19,21,24,25,30,33,38,44,47,49,54,56,57,63,77,80'),(21,   “2014年1月18日”,   '2,5,7,10,15,21,26,27,34,36,43,47,50,52,59,68,72,74,76,77'),(22,   “2014年1月18日”,   '12,14,17,21,23,27,33,34,35,38,53,57,58,63,64,66,69,70,74,75'),(23,   “2014年1月19日”,   '2,4,6,9,17,20,21,30,31,34,36,37,41,49,60,66,67,68,69,78'),(24,   “2014年1月19日”,   '1,17,18,25,27,30,32,35,36,37,41,48,55,58,59,64,69,71,72,77'),(25,   “慢速英语”,   '10,12,14,16,19,20,21,24,29,36,43,46,52,53,55,56,61,63,64,79'),(26,   “慢速英语”,   '2,6,7,14,20,21,22,26,35,43,44,46,47,50,59,60,63,64,72,76'),(27,   “2014年1月21日”,   '7,9,10,11,12,15,18,24,25,39,44,51,54,55,56,57,60,66,74,77'),(28,   “2014年1月21日”,   '3,9,14,15,22,30,39,40,50,52,55,56,59,60,68,69,71,75,79,80'),(29,   “2014年1月22日”,   '1,15,17,18,19,22,23,25,27,36,39,51,53,54,56,60,61,62,69,74'),(30,   “2014年1月22日”,   '2,4,8,16,21,25,27,31,40,45,47,52,54,56,59,62,69,71,73,77');

     

/ *!40101 SET CHARACTER_SET_CLIENT = @ OLD_CHARACTER_SET_CLIENT /;   / !40101 SET CHARACTER_SET_RESULTS = @ OLD_CHARACTER_SET_RESULTS /;   / !40101 SET COLLATION_CONNECTION = @ OLD_COLLATION_CONNECTION * /;

1 个答案:

答案 0 :(得分:0)

可能有更多选项,但您可以使用的选项如下:

select ID from extrageri where ( NUMERE LIKE '%80%' ) and ( NUMERE LIKE '%22%' )

当然,您可以添加更多选项并组合和/或。检查并使用您的数据here进行示例。该查询只是一个示例,您可以添加排序,分组或您需要的任何其他元素。