2011-08-12 4 views
-1

가능한 중복 : 난 내와 같은 주제에 조금 검색
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select오류는> 경고 : 경고 : mysql_fetch_array()은 반환 매개 변수 1에서 주어진 자원, 부울있을 것으로 기대

하지만 난 내 대답을 찾지 못해.

내가 왜 실수를하는지 알고 싶습니다. 내 변수일지도 모르지만 ... 나는 내가 아는 모든 것을 시도해 본다. 쿼리 (변수없이) 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

이 작업을 수행 : 다른 답변 억으로 당

$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()); 

에 그것은

관련 문제