0

以下は私のコードです。既に存在するユーザーを挿入しようとすると、クエリは 1 行を返し、スクリプトは正常に動作します。ただし、クエリがゼロ行を返すと、スクリプトは以下のコードで「STOPS HERE」とコメントされているポイントで停止します。私は問題を本当に理解していません。私はphpが初めてです。ifs の外側の echo ステートメントでさえ実行されません。

<?php
session_start();
$_SESSION["error"] = "";
include "dbconnection.php";

$_SESSION["validUser"] = 4; 

$validUser = $_SESSION["validUser"];


extract($_POST);

if($courseSession == ""){
    echo "You must Select a course session ";   
}
else {
    $query = "SELECT * FROM courses WHERE student = $validUser AND course='$courseSession'";
    $result = mysql_query($query, $db)  or die(mysql_error($db));

    if(!$result){
        echo " no results have been returned testing "; // used for testing
    }
    else {
        echo " Results returned but don't understand  \n Number rows = ";   // used for testing
        echo mysql_num_rows($result);

    } //STOPS HERE, here is where the script stops after query above returns 0 row.
    $check = mysql_num_rows($result)   or die(mysql_error($db));

    echo " after check course ";
    if($check){

        echo "You have already registered for this session "; 


    }

    else if(!$check){

        $query = "INSERT INTO courses
                            (course, student, groupId)

                        VALUES
                            ('$courseSession', '$validUser', '$group')";

        $res = mysql_query($query, $db) or die(mysql_error($db));
        if(!$res){
            echo "Error Registering Course ";
        }
        else{
            echo "Successfully registered for this session ";
        }
    }
}


echo " TESting testing ";


?>
4

3 に答える 3

1

コードに次の行の問題があります。

$check = mysql_num_rows($result) or die(mysql_error($db));.

これが実行mysql_num_rows($result)されると 0 が返され、この場合は false と同じに評価されます。これがdie()が実行され、その後何も実行されない理由です。

于 2013-08-03T12:39:00.400 に答える
0

代替手段として役立つ可能性のある次のことを試してください。

$query = "SELECT Count(*) as ResultVal FROM courses WHERE student = $validUser AND course='$courseSession'";
$result = mysql_query($query, $db)  or die(mysql_error($db));

if($result["ResultVal"] > 0){
       echo "You have already registered for this session "; 
   }

    else if($result["ResultVal"] = 0){ //OR just else

        $query = "INSERT INTO courses

        //rest of the code
于 2013-08-03T12:51:03.827 に答える