2011-08-12 10 views
-1

可能性の重複:私は私と同じ主題に少しを検索
mysql_fetch_array() expects parameter 1 to be resource, boolean given in selectERRORは>警告:警告:は、mysql_fetch_array()は、パラメータ1で与えられたリソース、boolean型であることを期待

しかし、私は答えを見つけられません。

私はそれが私に間違いを与える理由を知りたい。たぶんそれは私の変数です...しかし私は私が知っているすべてを試してみます。 QUERYは(変数なし)のphpMyAdminで動作し、それだけでここに私のコードです 行私にものを与えることを想定:

<?php 
      session_start(); 
      $choix = $_POST["choix"]; 
?> 
<html> 
    <head> 
     <link rel="icon" href="images/favicon.ico" type="image/ico"/> 
     <style> 
      .corps{ width:745px; } 
      .image{ 
       width: 150px; 
       height: 100px; 
       float:left; 
      } 

      .descr{ 
       width: 560px; 
       height: 100px; 
       float:right; 
       margin-right: 30px; 
      } 

      .bouton{ margin-top: 15px;} 
     </style> 
    </head> 
    <body> 
    <h2>Résultat</h2> 
<?php 
    require('manip/connexionClass.php'); 
    $connexion = new Connexion(); 
    $con = $connexion->open(); 
    if($con){ 
     mysql_select_db("test",$con); 

    //RECUPERATION DES INFORMATIONS DES PRODUITS 
    $query = " 
     SELECT * 
     FROM `materiel` , `produit` 
     WHERE `produit`.`idProduit` = (
       SELECT `idProduit` 
       FROM `materiel` 
       WHERE `materiel`.`type` LIKE '%$choix%' 
     ) 
     AND `materiel`.`idProduit` = `produit`.`idProduit` 
     UNION 
     SELECT * 
     FROM `medicament` , `produit` 
     WHERE `produit`.`idProduit` = (
       SELECT `idProduit` 
       FROM `medicament` 
       WHERE `medicament`.`typeMed` LIKE '%$choix%' 
     ) 
     AND `medicament`.`idProduit` = `produit`.`idProduit` 
    "; 
    $result = mysql_query($query); 
    while($row = mysql_fetch_array($result)){ 
?> 
     <div class = "corps"> 
        <div class = 'image'> 
         <img src = 'images/imgMedic/tylenol.png' />      
        </div> 
        <div class = 'descr'> 
         <div class = "title"> <?php echo $row["nom"]; ?></div> 
         <div class = "plus"> <?php echo $row["descr"]; ?></div> 
         <div class = 'bouton'> 
          <img src = 'images/icones Web/basket_add.png' />&nbsp Ajouter au panier 
          <img style = 'margin-left: 15px;' src = 'images/icones Web/pill_go.png' />&nbsp Détails 
         </div> 
        </div>   
      </div> 
<?php 
    } 
}//$con 
?> 
    </body> 
</html> 
+1

あなたはボビー・テーブルを知っていますか、あなたの問題を解決するために必要な、あなたが答える(エラー)を与えるのだろうか? – Drewdin

+0

nop申し訳ありませんがわからない – Hulk

+0

小さなボビーテーブルの紹介です。 http://xkcd.com/327/ – vascowhite

答えて

4

これを行います。上の他の回答数十億を1として

$result = mysql_query($query) or die(mysql_error()); 

をこのサイトでは、mysql関数は何かが失敗したときにブール値FALSEを返します。これはチェックしていません。クエリ文字列が構文的に完璧であっても、文字通り何百もの理由があり、依然としてクエリが失敗する可能性があります。盲目的に成功を収めることは非常に悪いことです。

+0

それは私に与えられます:サブクエリは1行以上を返します – Hulk

+0

あなたは 'WHERE somevalue =(subquery)'をやっています。そのような比較の場合、サブクエリは単一の行/値のみを返すことができます。 'WHERE somevalue IN(subquery)'に変換する必要があります。これは複数の行を許可します。 –

+0

OOO私は間違いを見ます。このトリックをありがとう。私はいつもそれを使用します:D – Hulk

1

変更

$result = mysql_query($query); 

$result = mysql_query($query) or die(mysql_error()); 

にそれは

関連する問題