Mysql_fetch_array()期望参数1是资源,布尔值在(重复)中给出 [英] Mysql_fetch_array() expects parameter 1 to be resource, boolean given in (duplicate)

查看:82
本文介绍了Mysql_fetch_array()期望参数1是资源,布尔值在(重复)中给出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请帮忙.. !!我很难修复我的代码。



我尝试过:



原始代码

please help..!! i am tired to fix my code.

What I have tried:

original code

function jumlah_data($kondisi){

        //sql

        if($kondisi==''){

            $sql = mysql_query("SELECT COUNT(*) FROM data_training $kondisi"); 

        }else{

            $sql = mysql_query("SELECT COUNT(*) FROM data_training WHERE $kondisi");                       

        }      

        $row = mysql_fetch_array($sql); // line 42 error

        $jml = $row['0'];

        return $jml;

    }



重建


rebuild

//fungsi menghitung jumlah data
  function jumlah_data($kondisi){
    //sql
    if($kondisi==''){
      $query = "SELECT COUNT(*) FROM data_training $kondisi";
      $sql = mysql_query($query) || 
     die("Error SQL: $query". PHP_EOL .mysql_error().");
      //$sql = mysql_query("SELECT COUNT(*) FROM data_training $kondisi");  
    }else{
      $query = "SELECT COUNT(*) FROM data_training WHERE $kondisi";
      $sql = mysql_query($query) || 
      die("Error SQL: $query". PHP_EOL .mysql_error().");
      //$sql = mysql_query("SELECT COUNT(*) FROM data_training WHERE $kondisi");
    }    
    $row = mysql_fetch_array($sql);  
    $jml = $row['0'];
    return $jml;
  } 



但是错误


But error

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\XAMPP\htdocs\MMM\New folder\fungsi.php on line 48

LEAF
Error SQL: SELECT COUNT(*) FROM data_training WHERE AND target='laku'
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right sy





完整代码



Full code

?php
	//fungsi cek nilai atribut
	function cek_nilaiAtribut($field , $kondisi){
		//sql disticnt		
		$hasil = array();
		if($kondisi==''){
			$sql = mysql_query("SELECT DISTINCT($field) FROM data_training");					
		}else{
			$sql = mysql_query("SELECT DISTINCT($field) FROM data_training WHERE $kondisi");					
		}
		$a=0;
		while($row = mysql_fetch_array($sql)){
			$hasil[$a] = $row['0'];
			$a++;
		}	
		return $hasil;
	}	
	//fungsi cek heterogen data
	function cek_heterohomogen($field , $kondisi){
		//sql disticnt
		if($kondisi==''){
			$sql = mysql_query("SELECT DISTINCT($field) FROM data_training");					
		}else{
			$sql = mysql_query("SELECT DISTINCT($field) FROM data_training WHERE $kondisi");					
		}
		//jika jumlah data 1 maka homogen
		if (mysql_num_rows($sql) == 1) {                      
			$nilai = "homogen";
		}else{
			$nilai = "heterogen";
		}		
		return $nilai;
	}	
	//fungsi menghitung jumlah data
	function jumlah_data($kondisi){
		//sql
		if($kondisi==''){
			$sql = mysql_query("SELECT COUNT(*) FROM data_training $kondisi");	
		}else{
			$sql = mysql_query("SELECT COUNT(*) FROM data_training WHERE $kondisi");						
		}		
		$row = mysql_fetch_array($sql);	
		$jml = $row['0'];
		return $jml;
	}
	//fungsi menghitung gain
	function hitung_gain($kasus , $atribut , $ent_all , $kondisi1 , $kondisi2 , $kondisi3 , $kondisi4){
		$data_kasus = '';
		if($kasus!=''){
			$data_kasus = $kasus." AND ";
		}
		//untuk atribut 2 nilai atribut	
		if($kondisi3==''){
			$j_laku1 = jumlah_data("$data_kasus target='laku' AND $kondisi1");
			$j_tidak1 = jumlah_data("$data_kasus target='tidak' AND $kondisi1");
			$jml1 = $j_laku1 + $j_tidak1;
			$j_laku2 = jumlah_data("$data_kasus target='laku' AND $kondisi2");
			$j_tidak2 = jumlah_data("$data_kasus target='tidak' AND $kondisi2");
			$jml2 = $j_laku2 + $j_tidak2;
			//hitung entropy masing-masing kondisi
			$jml_total = $jml1 + $jml2;
			$ent1 = hitung_entropy($j_laku1 , $j_tidak1);
			$ent2 = hitung_entropy($j_laku2 , $j_tidak2);
			$gain = $ent_all - ((($jml1/$jml_total)*$ent1) + (($jml2/$jml_total)*$ent2));
		}
		//untuk atribut 3 nilai atribut
		else if($kondisi4==''){
			$j_laku1 = jumlah_data("$data_kasus target='laku' AND $kondisi1");
			$j_tidak1 = jumlah_data("$data_kasus target='tidak' AND $kondisi1");
			$jml1 = $j_laku1 + $j_tidak1;
			$j_laku2 = jumlah_data("$data_kasus target='laku' AND $kondisi2");
			$j_tidak2 = jumlah_data("$data_kasus target='tidak' AND $kondisi2");
			$jml2 = $j_laku2 + $j_tidak2;
			$j_laku3 = jumlah_data("$data_kasus target='laku' AND $kondisi3");
			$j_tidak3 = jumlah_data("$data_kasus target='tidak' AND $kondisi3");
			$jml3 = $j_laku3 + $j_tidak3;
			//hitung entropy masing-masing kondisi
			$jml_total = $jml1 + $jml2 + $jml3;
			$ent1 = hitung_entropy($j_laku1 , $j_tidak1);
			$ent2 = hitung_entropy($j_laku2 , $j_tidak2);
			$ent3 = hitung_entropy($j_laku3 , $j_tidak3);			
			$gain = $ent_all - ((($jml1/$jml_total)*$ent1) + (($jml2/$jml_total)*$ent2) 
						+ (($jml3/$jml_total)*$ent3));				
		}
		//desimal 3 angka dibelakang koma
		$gain = round($gain,3);	
		if($gain>0){
			echo "Gain ".$atribut." = ".$gain."<br>";
		}		
		mysql_query("INSERT INTO gain VALUES ('','$atribut','$gain')");
	}
	//fungsi menghitung entropy
	function hitung_entropy($nilai1 , $nilai2){
		$total = $nilai1 + $nilai2;
		//jika salah satu nilai 0, maka entropy 0
		if($nilai1==0 or $nilai2==0){
			$entropy = 0;
		}else{
			$entropy = (-($nilai1/$total)*(log(($nilai1/$total),2))) + (-($nilai2/$total)*(log(($nilai2/$total),2)));
		}		
		//desimal 3 angka dibelakang koma
		$entropy = round($entropy, 3);	
		return $entropy;
	}
	//fungsi hitung rasio
	function hitung_rasio($kasus , $atribut , $gain , $nilai1 , $nilai2 , $nilai3){				
		$data_kasus = '';
		if($kasus!=''){
			$data_kasus = $kasus." AND ";
		}
		//menentukan jumlah nilai
			$jmlNilai=3;
			//jika nilai 3 kosong maka nilai atribut-nya 2
			if($nilai3==''){
				$jmlNilai=2;
			}					
		mysql_query("TRUNCATE rasio_gain");		
		if($jmlNilai==3){
			$opsi11 = jumlah_data("$data_kasus ($atribut='$nilai2' OR $atribut='$nilai3')");
			$opsi12 = jumlah_data("$data_kasus $atribut='$nilai1'");
			$tot_opsi1=$opsi11+$opsi12;
			$opsi21 = jumlah_data("$data_kasus ($atribut='$nilai3' OR $atribut='$nilai1')");
			$opsi22 = jumlah_data("$data_kasus $atribut='$nilai2'");
			$tot_opsi2=$opsi21+$opsi22;
			$opsi31 = jumlah_data("$data_kasus ($atribut='$nilai1' OR $atribut='$nilai2')");
			$opsi32 = jumlah_data("$data_kasus $atribut='$nilai3'");
			$tot_opsi3=$opsi31+$opsi32;			
			//hitung split info
			$opsi1 = (-($opsi11/$tot_opsi1)*(log(($opsi11/$tot_opsi1),2))) + (-($opsi12/$tot_opsi1)*(log(($opsi12/$tot_opsi1),2)));
			$opsi2 = (-($opsi21/$tot_opsi2)*(log(($opsi21/$tot_opsi2),2))) + (-($opsi22/$tot_opsi2)*(log(($opsi22/$tot_opsi2),2)));
			$opsi3 = (-($opsi31/$tot_opsi3)*(log(($opsi31/$tot_opsi3),2))) + (-($opsi32/$tot_opsi3)*(log(($opsi32/$tot_opsi3),2)));
			//desimal 3 angka dibelakang koma
			$opsi1 = round($opsi1,3);
			$opsi2 = round($opsi2,3);
			$opsi3 = round($opsi3,3);										
			//hitung rasio
			$rasio1 = $gain/$opsi1;
			$rasio2 = $gain/$opsi2;
			$rasio3 = $gain/$opsi3;
			//desimal 3 angka dibelakang koma
			$rasio1 = round($rasio1,3);
			$rasio2 = round($rasio2,3);
			$rasio3 = round($rasio3,3);
			//cetak
			echo "Opsi 1 : <br>jumlah ".$nilai2."/".$nilai3." = ".$opsi11.
				"<br>jumlah ".$nilai1." = ".$opsi12.
				"<br>Split = ".$opsi1.
				"<br>Rasio = ".$rasio1."<br>";
			echo "Opsi 2 : <br>jumlah ".$nilai3."/".$nilai1." = ".$opsi21.
				"<br>jumlah ".$nilai2." = ".$opsi22.
				"<br>Split = ".$opsi2.
				"<br>Rasio = ".$rasio2."<br>";
			echo "Opsi 3 : <br>jumlah ".$nilai1."/".$nilai2." = ".$opsi31.
				"<br>jumlah ".$nilai3." = ".$opsi32.
				"<br>Split = ".$opsi3.
				"<br>Rasio = ".$rasio3."<br>";
				
			//insert 
			mysql_query("INSERT INTO rasio_gain VALUES 
						('' , 'opsi1' , '$nilai1' , '$nilai2 , $nilai3' , '$rasio1'),
						('' , 'opsi2' , '$nilai2' , '$nilai3 , $nilai1' , '$rasio2'),
						('' , 'opsi3' , '$nilai3' , '$nilai1 , $nilai2' , '$rasio3')");
		}
		$sql_max = mysql_query("SELECT MAX(rasio_gain) FROM rasio_gain");
		$row_max = mysql_fetch_array($sql_max);	
		$max_rasio = $row_max['0'];
		$sql = mysql_query("SELECT * FROM rasio_gain WHERE rasio_gain=$max_rasio");
		$row = mysql_fetch_array($sql);	
		$opsiMax = array();
		$opsiMax[0] = $row[2];
		$opsiMax[1] = $row[3];		
		echo "<br>=========================<br>";
		return $opsiMax;		
	}
?>

推荐答案

kondisi){

// sql

if(
kondisi){ //sql if(


kondisi == ' '){

kondisi==''){


sql = mysql_query( SELECT COUNT(*)FROM data_training
sql = mysql_query("SELECT COUNT(*) FROM data_training


这篇关于Mysql_fetch_array()期望参数1是资源,布尔值在(重复)中给出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆