0

这是php

<?php
if (
isset($_POST['tour_name'])&&
isset($_POST['pot'])&&
isset($_POST['max_players'])&&
isset($_POST['min_players'])){

    $tour_name = $_POST['tour_name'];
    $pot = $_POST['pot'];
    $max_players = $_POST['max_players'];
    $min_players = $_POST['min_players'];

    if (!empty($tour_name)&&!empty($pot)&&!empty($max_players)&&!empty($min_players)) {
        if (($min_players >= 2) && ($min_players <= 6)) {
            if (($max_players >= 2) && ($min_players <= 12)) {
                if (($pot >= 1) && ($pot <= 100)) {

                    $query = "SELECT `tour_name` FROM `tournies` WHERE `tour_name`='$tour_name'";
                    $query_run = mysql_query($query);

                    if (mysql_num_rows($query_run)==1) {
                    echo 'There is already a tournament with the name '.$tour_name.'.';
                    } else {
                        $query = "INSERT INTO `tournies` VALUES ('', '".mysql_real_escape_string($tour_name)."', '".mysql_real_escape_string($pot)."', '".mysql_real_escape_string($max_players)."', '".mysql_real_escape_string($min_players)."')";
                        if ($query_run = mysql_query($query)) {
                            header('Location: table.php');
                        } else {
                            echo 'Registration was not a win.';
                        }
                    }

                } else {
                    echo 'The pot must be 1-100';
                }
            } else {
                echo 'Maximum players must be atleast 2 and no more then 12';
            }
        } else {
            echo 'Minimum players must be atleast 2, and no more then 6';
        }
    } else {
        echo 'All fields are required';
    }
}

?>

错误是警告:mysql_num_rows() 期望参数 1 是资源,布尔值在第 69 行的 C:\Users\Jared\Desktop\xampp\htdocs\tournaments\NewTournament.inc.php 中给出

4

2 回答 2

1

您的查询可能失败。用于mysql_error()确定错误。

我将在任何查询中添加错误检查作为个人实践,以防发生类似情况。它可以像这样简单:

if(!$query_run){
    echo "Error in query:" . $query . "   MYSQL Error:" . mysql_error();
}

附带说明一下,php 中的 mysql 函数已被贬值。您可能要考虑改用 Mysqli 或 PDO。

于 2013-09-02T18:27:08.167 回答
1

你可以试试:

if ($query_run !== FALSE && mysql_num_rows($query_run)==1) {

看起来您在运行查询时可能遇到问题,当您通过 phpMyAdmin 或通过控制台手动运行查询时会得到什么?

于 2013-09-02T18:33:42.267 回答