Оператор Mysqli select не очень хорошо сочетается с результатами другого оператора Mysqli select - PullRequest
2 голосов
/ 25 февраля 2010

Ниже приведен код, который я использую. По отдельности они оба делают то, что должны, но когда я пытаюсь использовать результат из первого оператора во втором, он ничего не возвращает. Я знаю, что первое утверждение всегда возвращает правильные данные. Может кто-нибудь сказать мне, что я делаю не так? Спасибо

$connection = mysqli_connect($hostname, $username, $password, $dbname);

$sql = "SELECT banner".$number_id."_id FROM newcms_projectbanners WHERE region_id = ?";

$stmt = mysqli_prepare($connection, $sql);

    mysqli_stmt_bind_param($stmt, "s", $region_id);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_bind_result($stmt, $banner_id);

    // display the results
    mysqli_stmt_fetch($stmt);

$sql1 = "SELECT `title`, `active`, `linkto` FROM newcms_banners WHERE id = ?";

$stmt1 = mysqli_prepare($connection, $sql1);

    mysqli_stmt_bind_param($stmt1, "s", $banner_id);
    mysqli_stmt_execute($stmt1);
    mysqli_stmt_bind_result($stmt1, $title, $active, $linkto);

    // display the results
    mysqli_stmt_fetch($stmt1);

EDIT

При дальнейшей проверке кажется, что я не могу выполнить два утверждения таким образом. Как правильно это сделать? Спасибо

1 Ответ

1 голос
/ 25 февраля 2010

Код ниже делает свое дело.

$post_stmt = $db_connection->prepare("SELECT banner".$number_id."_id FROM newcms_projectbanners WHERE region_id = ?");
$comment_stmt = $db_connection->prepare("SELECT title, active, linkto FROM newcms_banners WHERE id = ?");

$post_stmt->bind_param('i', $region_id);
if ($post_stmt->execute())
{
    $post_stmt->store_result();
    $post_stmt->bind_result($banner_id);

    if ($post_stmt->fetch())
    {
      $comments = array();

      $comment_stmt->bind_param('i', $banner_id);
      if ($comment_stmt->execute())
      {
        $comment_stmt->bind_result($title, $active, $linkto);
        while ($comment_stmt->fetch())
        {
          $html  = "<fieldset title='$label'>" . PHP_EOL;
            $html .= "<form action='$action' id='$id' method='post' class='$class'>" . PHP_EOL;
            $html .= "<label for'title'>Title</label>" . PHP_EOL;
            $html .= "<input type='text' name='title' value='$title' /><br />" . PHP_EOL;
            $html .= "<label for'active'>Active</label>" . PHP_EOL;
            $html .= "<input type='checkbox' name='active' checked /><br />" . PHP_EOL;
            $html .= "<label for'linkto'>Link to</label>" . PHP_EOL;
            $html .= "<input type='text' name='linkto' value='$linkto' /><br />" . PHP_EOL;
            $html .= "<input type='hidden' name='hidden' value='$banner_id'>" . PHP_EOL;
            $html .= "<input type='submit' value'Done'>" . PHP_EOL;
            $html .= "</form>" . PHP_EOL;
            $html .= "</fieldset>" . PHP_EOL;

        }
      }
      else
      {
        printf("Comment statement error: %s\n", $comment_stmt->error);
      }
    }

    $post_stmt->free_result();
}
else
{
printf("Post statement error: %s\n", $post_stmt->error);
}

$post_stmt->close();
$comment_stmt->close();

$db_connection->close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...