0

MySQL テーブル プロパティ 'isVisible' == 1 の SQL ステートメントを満たすレコーダーがない場合、次のコードで 'h2' タグとテキスト (コードの下部にある else ステートメントに表示される) を表示する予定です。

クエリが「null」の結果を返したかどうかをテストすることにしました。これは、ロジックに欠陥があるに違いありません。どのレコードも SQL ステートメントの「WHERE isVisible = 1」の部分に一致しない場合でも、クエリの結果は null 以外の値を返す必要があります。

「0」にハードコードされた DB のレコードは 1 つだけです。「isVisible」プロパティが値「1」に戻されると、コードは正しく実行されます。例外は私に問題を引き起こす唯一のものです。私は通常、PHP をあまり使用しないので、おそらく最初の if ステートメントの数行下で間違った条件をテストしているだけだと思います。

お時間をいただきありがとうございます。

<?php

            // Generate SQL Statements
            $sql_position = "SELECT * FROM tbl_experience
                                WHERE isVisible = 1
                                ORDER BY 'displayPosition'";

            // Run Query
            $result = mysql_query($sql_position);

            // Iteration Variable
            $i = 0;

            if ($result != null) {

                // List all of the experiences as a timeline
                while($row = mysql_fetch_array($result)) {

                    // Build a div to contain the experience properties
                    echo "<div id='experienceContainer_" . $row['displayPosition'] . "' class='experienceContainer";

                    if (i % 2) {
                        // The row should be displayed with 'Even' class attributes
                        echo " Even";
                    } else {
                        // The row should be displayed with 'Odd' class attributes
                        echo " Odd";
                    }

                    // Finish the opening <div> tag
                    echo "'>";


                        // Display the attributes of the experience
                        // Experience Type
                        echo "<div id='type_" . $row['displayPosition'] . "' class='experienceType'>";
                        switch ($row['type']) {
                            case 0:
                                    echo "Undefined";
                                    break;
                                case 1:
                                    echo "Work";
                                    break;
                                case 2:
                                    echo "Achievement";
                                    break;
                                case 3:
                                    echo "Award";
                                    break;
                        }
                        echo "</div>";

                        // Experience Title
                        echo "<div id='title_" . $row['displayPosition'] . "' class='experienceTitle'>";
                        echo $row['title'];
                        echo "</div>";

                        // Experience Description
                        echo "<div id='description_" . $row['displayPosition'] . "' class='experienceDescription'>";
                        echo $row['description'];
                        echo "</div>";

                    // Close the 'experienceContainer' div
                    echo "</div><!-- end of experienceContainer_" . $row['displayPosition'] . " -->";

                }
            } else {

                // There are no visible records
                echo "<h2>No entries for \"Experience\" can be found</h2>";

            }
4

1 に答える 1

0

使用する必要がありますmysql_num_rows

if (mysql_num_rows($result) > 0) {

elseこの if 条件により、表示する行がない場合に条件にルーティングされることが保証されます。

于 2013-08-18T10:10:15.040 に答える