Как сделать так, чтобы строка таблицы отображалась, если установлен только флаг? - PullRequest
0 голосов
/ 17 февраля 2019

данные не будут отображаться, и я не уверен, что мой оператор if elase является правильным, а не.

<?php 
require_once ('database.php'); 




$result = mysql_query("SELECT * FROM courselist WHERE flag");


if ((mysql_num_rows($result) == 'yes'){

echo "<table border='1' align='center' >
<tr>
<td align=center> <b>Name</b></td>
 <td align=center><b>price</b></td>
<td align=center><b>day</b></td>
 <td align=center><b>slot</b></td></td>";

while($data = mysql_fetch_row($result))
{   
echo "<tr>";
echo "<td align=center>$data[0]</td>";
echo "<td align=center>$data[1]</td>";
echo "<td align=center>$data[2]</td>";
echo "<td align=center>$data[3]</td>";


    echo "</tr>";
   }
  echo "</table>";

 ?>

, если флаг равен yes, отображать строку данных, если флаг no, не отображатьстрока данных

Ответы [ 3 ]

0 голосов
/ 17 февраля 2019

Почему вы не пытаетесь выбрать только те записи, где флаг да.И после этого вам просто нужно перебрать все записи.Проверьте ниже код:

$result = mysql_query("SELECT * FROM courselist WHERE flag = 'yes' ");


if (mysql_num_rows($result) > 0) {
    echo "<table border='1' align='center' >
        <tr>
            <td align=center> <b>Name</b></td>
            <td align=center><b>price</b></td>
            <td align=center><b>day</b></td>
            <td align=center><b>slot</b></td>
        </tr>";

    while ($data = mysql_fetch_row($result)) {
        echo "<tr>";
        echo "<td align=center>$data[0]</td>";
        echo "<td align=center>$data[1]</td>";
        echo "<td align=center>$data[2]</td>";
        echo "<td align=center>$data[3]</td>";
        echo "</tr>";
    }
    echo "</table>";
}

Надеюсь, это поможет вам.И, пожалуйста, обратите внимание, что mysql устарела.Поэтому вам следует изменить функцию подключения к базе данных на mysqli или pdo.

0 голосов
/ 17 февраля 2019

Я бы определенно использовал набор функций mysqli_ над набором функций mysql_, чтобы ваш код работал независимо от того, какую версию php можно использовать до конца php 7 +

    <?php

    $link = mysqli_connect ( 'localhost', 'username", 'password', 'database' );

    /* now... check the connection */

    if ( mysqli_connect_errno () )
    {

    echo 'The MySQL(i) Connection call failed: ' . mysqli_connect_error ();

    exit ();

    }

    if ( $result = mysqli_query ( $link, 'SELECT * FROM courselist WHERE flag;' ) )
    {
        /* (?), do we have any resulting row set(s) */

        if ( mysqli_num_rows ( $result ) > 0 )
        {
            /* we have (1) or more resulting set(s), so do this */

    echo "<table border='1' align='center' >
        <tr>
            <td align='center'>
                <b>
                    Name
                </b>
            </td>
            <td align='center'>
                <b>
                    price
                </b>
            </td>
            <td align='center'>
                <b>
                    day
                </b>
            </td>
            <td align='center'>
                <b>
                    slot
                </b>
            </td>
        </tr>";

            /* now... process each resulting row set */

            while ( $data = mysqli_fetch_assoc ( $result ) )
            {   

    echo "  <tr>
            <td align='center'>
                $data[0]
            </td>
            <td align='center'>
                $data[1]
            </td>
            <td align='center'>
                $data[2]
            </td>
            <td align='center'>
                $data[3]
            </td>
        </tr>";

            } // end while ( _fetch_assoc () )

    echo "</table>";

    /* now... free the result set */

    mysqli_free_result ( $result );

        } // end if ( _num_rows () )
} // end if ( _query () )

    /* now... close the connection */

    mysqli_close ( $link );

    ?>
0 голосов
/ 17 февраля 2019
SELECT * FROM courselist WHERE flag

Я считаю, что это возвращает больше, чем один столбец, поэтому я бы пошел на изменения, как показано ниже.Также я проверил ваше заявление WHERE в моей базе данных.Он ничего не возвращает, даже если у меня есть данные в заданном столбце.Вы должны сравнить столбец с некоторым значением.

SELECT * FROM courselist WHERE <columnName>="yes"

Кроме того

mysql_num_rows

mysql_num_rows - получить количество строк в результате

Так чтоне будет работать

mysql_query

Для операторов SELECT, SHOW, DESCRIBE, EXPLAIN и других, возвращающих набор результатов, mysql_query () возвращает ресурс в случае успеха или FALSE в случае ошибки.Ресурс - это специальная переменная, содержащая ссылку на внешний ресурс.

Это также не будет работать, поскольку вы держите ресурс там, а не на самом деле извлеченные данные.

Вам необходимо изменить остаток кода на что-то вроде, например:

require_once ('database.php'); 
$result = mysql_query("SELECT * FROM courselist WHERE flag");

while($data = mysql_fetch_row($result))
{   
echo "<table border='1' align='center' >
<tr>
<td align=center> <b>Name</b></td>
<td align=center><b>price</b></td>
<td align=center><b>day</b></td>
<td align=center><b>slot</b></td></td>";

echo "<tr>";
echo "<td align=center>$data[0]</td>";
echo "<td align=center>$data[1]</td>";
echo "<td align=center>$data[2]</td>";
echo "<td align=center>$data[3]</td>";
echo "</tr>";
}
  echo "</table>";

Вам может не понадобиться, если в этом случае, так как если нет записей с «да», они не будут выбраны, и поэтому $ data in while не будет иметь их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...