Mysql_fetch_assoc(): not working please help

Code:

<?php
$sitename = ""; // MY DOMAIN
$link = mysql_connect("", "", ""); // MYSQL , LOCALHOOST , USERNAME , PASSWORD 
$db_selected = mysql_select_db('', $link); // MYSQL DATABASE
mysql_query("SET NAMES utf8");

function fetchinfo($rowname,$tablename,$finder,$findervalue) {
	if($finder == "1") $result = mysql_query("SELECT $rowname FROM $tablename");
	else $result = mysql_query("SELECT $rowname FROM $tablename WHERE `$finder`='$findervalue'");
	$row = mysql_fetch_assoc($result);
	return $row[$rowname];
}
?>

It says:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in ******************************* on line 10

Try this:

function debug($val, $title=NULL)
{
    echo '<pre>';
        echo $title ? $title : NULL;
        echo '<br>';
        print_r($val);
    echo '</pre>';
}

function getLink($link, $rowname,$tablename,$finder,$findervalue)
{
    $sitename = ""; // MY DOMAIN
    # $link = mysql_connect("", "", ""); // MYSQL , LOCALHOOST , USERNAME , PASSWORD
    #$db_selected = mysql_select_db('', $link); // MYSQL DATABASE
    
     $link = mysqli_connect(dbSERVER, dbUSER, dbPWORD);
    $ok   = mysqli_select_db($link, dbDBASE);

    mysqli_query($link, "SET NAMES utf8");

    return $link;
}

function fetchinfo($link, $rowname,$tablename,$finder,$findervalue)
{
    if($finder == "1") 
    {    
        $result = mysqli_query($link, "SELECT $rowname FROM $tablename");
        debug($result, __LINE__);        

    }else{
        $result = mysqli_query("SELECT $rowname FROM $tablename WHERE $finder='$findervalue'");
        debug($result, __LINE__);                    
    }    

    $row = mysqli_fetch_assoc($result);
    debug($row, __LINE__);                

  return $row[$rowname];
}//

$link      = 'mysqli_Object to be filled';
$rowname   = 'dateadded';
$tablename = 'sensedata';
$finder = '1';
$findervalue = '2016';

$link   = getLink($link, $rowname,$tablename,$finder,$findervalue);

$result = fetchinfo($link, $rowname,$tablename,$finder,$findervalue);
debug($result);

Results:


40
mysqli_result Object
(
    [current_field] => 0
    [field_count] => 1
    [lengths] => 
    [num_rows] => 19584
    [type] => 0
)
48
Array
(
    [dateadded] => 2016-05-04 19:18:05
)

2016-05-04 19:18:05
1 Like

For want of repeating what has been said many times before on these forums, you really shouldn’t be using the mysql_ PHP functions as they are no longer available in the current version of PHP. Use mysqli_ as @John_Betong has above or PDO.

3 Likes

Your query hasn’t worked, so there’s no result resource to read results from. You execute either one or the other query, but you don’t check whether it worked, or whether it got any results, before you try to use the results.

But like everyone else said, drop the old functions and look at mysqli or PDO while you’re fixing it.

2 Likes

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.