2016-04-10 19 views
-1

2番目のクエリSELECT * FROM artist WHERE artID != ?まですべてうまく動作します。 HTML要素は正しく表示されますが、何らかの理由で$stmt = $conn->prepare("SELECT * FROM artist WHERE artID != ?");がfalseを示しているため、if文が終了してもエラーは表示されません。PHP mysqlの2番目のクエリは失敗しましたが、エラーメッセージはありません

<div class="row"> 
    <?php 
    error_reporting(E_ALL); 
    ini_set('display_errors', 1); 
    include 'connection.php'; 

    if(isset($_GET["album"])) 
    { 
     /* If album was passed in the URL then get current values 
      for that album */ 
     $stmt = $conn->prepare("SELECT cd.artID, artName, cdTitle, cdPrice, cdGenre, cdTracks FROM cd INNER JOIN artist ON (cd.artID = artist.artID AND cdID = ?);"); 
     if(!$stmt) 
     { 
      echo $conn->error; 
      exit; 
     } 

     $albumID = htmlspecialchars($_GET["album"]); 

     $stmt->bind_param('i', $albumID); 
     $stmt->execute(); 

     $stmt->bind_result($albumArtID, $albumArtName, $albumTitle, 
      $albumPrice, $albumGenre, $numTracks); 

     $stmt->fetch(); 

     /* Create input fields */ 
     // Album Title 
     echo "<div class=\"row horizontal-center\">" . 
      "<input type=\"text\" value=\"" . htmlspecialchars($albumTitle) . "\" name=\"albumTitle\"/>" . 
      "</div>"; 

     // Artist Name 
     echo "<div class=\"row horizontal-center\">" . 
      "<h6>By Artist:</h6>" . 
      "</div>"; 

     echo "<div class=\"row horizontal-center\">" . 
      "<select name=\"artID\">"; 

     /* Create option for current artist so it will be first in list */ 
     echo "<option value=\"$albumArtID\">$albumArtName</option>\n"; 

     /* Generate list of artists except artist currently associated with the album */ 
     $stmt = $conn->prepare("SELECT * FROM artist WHERE artID != ?"); 
     if(!$stmt) 
     { 
      echo $conn->error; 
      exit; 
     } 

     $stmt->bind_param('i', $albumArtID); 
     $stmt->execute(); 

     $stmt->bind_result($artID, $artName); 

     /* Create options for artists that were found */ 
     while($stmt->fetch()) 
     { 
      echo "<option value=\"$artID\">$artName</option>\n"; 
     } 

     echo "</select>" . 
      "</div>"; 

     // Album Price 
     echo "<div class=\"row horizontal-center\">" . 
      "<input type=\"number\" step=\"0.01\" value=\"" . htmlspecialchars($albumPrice) . "\" name=\"albumPrice\"/>" . 
      "</div>"; 

     // Album Genre 
     echo "<div class=\"row horizontal-center\">" . 
      "<input type=\"text\" value=\"" . htmlspecialchars($albumGenre) . "\" name=\"albumGenre\"/>" . 
      "</div>"; 

     // Number of Tracks 
     echo "<div class=\"row horizontal-center\">" . 
      "<input type=\"number\" value=\"" . htmlspecialchars($numTracks) . "\" name=\"numTracks\"\n/>" . 
      "</div>"; 

     // Delete checkbox 
     echo "<div class=\"row\">" . 
      "<div class=\"col-2\">" . 
      "<h6>Delete:</h6>" . 
      "</div>" . 
      "<div class=\"col-1\">" . 
      "<input type=\"checkbox\" name=\"delete\" value=\"Delete\"/>" . 
      "</div>" . 
      "</div>"; 

     /* Create hidden field to submit the album ID with the form */ 
     echo "<input type=\"hidden\" value=\"" . htmlspecialchars($albumID) . "\" name=\"albumID\"\n/>"; 
    } 
    else 
    { 
     /* Send browser back to artists page if they somehow accessed 
      the edit page without going through the "Edit" link next 
      to an artist in the table. This would be the artName variable 
      would not be sent via the URL.*/ 
     header("Location: artists.php"); 
    } 
    ?> 
</div> 

<div class="row"> 
    <div class="col-2"> 
     <h6>Delete:</h6> 
    </div> 
    <div class="col-1"> 
     <input type="checkbox" name="delete" value="Delete"/> 
    </div> 
</div> 

<div class="row"> 
    <input type="submit" name="submit" value="Update"/> 
</div> 
+0

をしようとしないhttp://php.net/manual/en/mysqli.close.php – Chay22

+0

は 'albumID'と' album'の両方でありますここに2つの異なる動物? 'name = \" albumTitle \ "と' $ _GET ["album"] 'が表示されます。また、フォームタグも表示されないので、これは一部の 'href'のGET配列に頼っていることを示しています。 –

+0

あなたは同じ質問を数時間前に投稿しました。私はそれを閉じるために投票した。 –

答えて

0

なぜあなたが最初のクエリを閉じ

if(!$stmt) 
    { 
    die("ERROR: " .mysqli_error($conn)); 
    exit; 
    } 
+0

男はすでにエラーチェックを使用しています。 'echo $ conn-> error;'とあなたの 'exit;'は本当に何もしません。あなたはすでにそれを "死ぬ"ようにしました。 –