Php Перемещение данных

0

Интересно, почему второй вывод $ devNO дает мне bool (false), который пуст. я понятия не имею об этом. Я ошибаюсь в части mysql_query()?

$developer = $_POST['dev'];
$platform = $_POST['plat'];
$genre = $_POST['gen'];

var_dump($developer);
echo "<br>";

$devNO = mysql_query("SELECT No FROM developer WHERE Developer = $developer");
$platNO = mysql_query("SELECT No FROM platform WHERE Platform = $platform");
$genNO = mysql_query("SELECT No FROM genre WHERE Genre = $genre");

var_dump($devNO);

Здесь мой вывод:

Изображение 174551

Здесь я покажу полный код для игры "games.php":

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">

<html>
<head lang="en">
    <meta charset="utf-8" />
    <title>Game List</title>
    <link rel="stylesheet" href="css.css">
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css">

    <style>
        legend {font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif}
    </style>
</head>
<body>
<div id="big_wrapper">
    <header id="top_header">
        <h1><a href="index.html">Dandy Game Library</a></h1>
    </header>
    <nav id="top_menu">
        <ul>
            <li><strong></stron><a href="index.html">Home</a></strong></li>
            <li><strong><a href="games.php">Game List</a></strong></li>
        </ul>
    </nav>


    <div id="game_wrapper">
        <section id="filter">
            <form action="games.php" method="post" name="search_form">
                <fieldset>
                    <legend><h3><strong>Search</strong></h3></legend>
                    <strong>Developer</strong><br>
                    <select name="dev">
                        <option value="">--Select--</option>
                        <?php

                        include("dbConnection.php");

                        mysql_connect("localhost","root","");
                        mysql_select_db("games");

                        $sql = mysql_query("SELECT Publisher FROM publisher");


                        while($row = mysql_fetch_array($sql)){
                            echo "<option value='".$row['Publisher']."'>" .$row[Publisher]. "</option>";
                        }

                        ?>
                    </select>

                    <br/><br/><strong>Game Platform</strong><br>
                    <select name="plat">
                        <option value="">--Select--</option>
                        <?php

                        $sql = mysql_query("SELECT Platform FROM platform");


                        while($row = mysql_fetch_array($sql)){
                            echo "<option value='".$row['Platform']."'>" .$row[Platform]. "</option>";
                        }
                        ?>
                    </select>

                    <br/><br/><strong>Genre</strong><br>
                    <select name="gen">
                        <option value="">--Select--</option>
                        <?php

                        $sql = mysql_query("SELECT Genre FROM genre");


                        while($row = mysql_fetch_array($sql)){
                            echo "<option value='".$row['Genre']."'>" .$row[Genre]. "</option>";
                        }

                        $developer = $_POST['dev'];
                        $platform = $_POST['plat'];
                        $genre = $_POST['gen'];

                        ?>
                    </select>

                    <br><br><input type="submit" name="search" value="Search"></input>

                </fieldset>
            </form>
        </section>
        <aside id="items">
            <fieldset>
                <legend><h3><strong>Game List</strong></h3></legend>

                <?php

                    var_dump($developer);

                    $devNO = mysql_query("SELECT No FROM developer WHERE Developer = $developer");
                    $platNO = mysql_query("SELECT No FROM platform WHERE Platform = $platform");
                    $genNO = mysql_query("SELECT No FROM genre WHERE Genre = $genre");

                    var_dump($devNO);

                    $sql = sprintf("SELECT Title, Release_Year, Language, Price FROM games WHERE Developer_NO = $devNO");
                    $result = mysql_query($sql);

                    $game_title = 'Title';
                    $game_year = 'Release_Year';
                    $game_lan = 'Language';
                    $game_price = 'Price';
                ?>

                <div id="gamelist">

                    <?php

                        if(!$result) {
                            die(mysql_error());
                        }
                        while($row = mysql_fetch_array($result)) {
                    ?>
                        <div class="row">
                            <div class="cell"><?php echo $row[$game_title]?></div>
                            <div class="cell"><?php echo "Year : ".$row[$game_year]?></div>
                            <div class="cell"><?php echo "Language : ".$row[$game_lan]?></div>
                            <div class="cell"><?php echo "Price : RM".$row[$game_price]?></div>
                        </div>
                    <?php
                        }
                    ?>
                </div>





            </fieldset>
        </aside>
    </div>
</div>
<div id="btm_wrapper">
    <footer id="foot">
        <strong></strong>
    </footer>
</div>
</body>
</html>

Полный вывод будет таким, как после поиска из раскрывающегося списка: Изображение 174551

  • 0
    Это потому, что ваш запрос не проходит и возвращает ложь. Является ли Genre целым числом: Genre = $genre , если не помещать одинарные кавычки вокруг переменной, чтобы преобразовать ее в строку, и когда мы уже здесь, почему бы вам не обновить / не перейти на mysqli_* или PDO ?
  • 0
    php.net/manual/en/...
Показать ещё 5 комментариев
Теги:
variables
boolean

2 ответа

0

Метод mysql_query(), если он успешный, возвращает набор результатов, который должен быть сделан массивом, даже если из запроса возвращается только одно значение.

В идеале для получения каждого результата должна быть каждая итерация в этом массиве, однако, если вы уверены, что получите хотя бы одно значение, первая строка с нужным индексом ("Нет" в вашем случае).

$dataset= mysql_query("SELECT No FROM developer WHERE Developer = '$developer'");
$row = mysql_fetch_assoc($dataset);
$devNO = $row['No'];

Также обратите внимание на цитату, которую я использовал для varchar. Это было правильно указано в другом ответе. Попробуй.

  • 0
    Тоже не работает> <
0

Если $ developer - это кавычки строки. Вам нужно сначала получить результаты из набора результатов, а затем использовать его в коде:

<?php

    $devNOResult = mysql_query("SELECT No FROM developer WHERE Developer = '$developer'");
    $platNOResult = mysql_query("SELECT No FROM platform WHERE Platform = '$platform'");
    $genNOResult = mysql_query("SELECT No FROM genre WHERE Genre = '$genre'");

    $devNO = mysql_fetch_row($devNOResult);

    $sql = sprintf("SELECT Title, Release_Year, Language, Price FROM games WHERE Developer_NO = $devNO");
    $result = mysql_query($sql);

$game_title = 'Title';
$game_year = 'Release_Year';
$game_lan = 'Language';
$game_price = 'Price';
                ?>

                <div id="gamelist">

                    <?php

                        if(!$result) {
                            die(mysql_error());
                        }
                        while($row = mysql_fetch_array($result)) {
                    ?>
  • 0
    Это не работает приятель> <я пытался ...
  • 0
    Вместо var_dump ($ devNO); попробуйте повторить «SELECT No FROM developer WHERE Developer = $ developer», чтобы увидеть, как выглядит ваш SQL. Разместите здесь, пожалуйста.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню