Josh
Josh

Reputation: 3

Checking if data is in a table row

This is my first post so please bear with me with inputting the code into here. Im trying to output some images to a PDF and need to create a if statement that looks for data with in a row.

$connection = mysql_connect("localhost", "testdb", "********")
    or die ("Unable to connect!");    

// select database  
mysql_select_db("testdb") or die ("Unable to select database!");      

// Select all the rows in the test table
$query = "SELECT * FROM test2 WHERE testid=89";
$result = mysql_query($query);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

while ($row= mysql_fetch_array($result)) {
    $image = $row[1]; 
    $text = $row[2];
}

That's what I have so far and basically I need something along the line of this:

If (data in row 1) {
    print $image;
} else {
    print $text;
}

Upvotes: 0

Views: 78

Answers (5)

Fluffeh
Fluffeh

Reputation: 33502

Although you are using old mysql_* functions which are depreciated, you are almost there

$connection = mysql_connect("localhost", "testdb", "********") or die ("Unable to connect!");    
// select database  
 mysql_select_db("testdb") or die ("Unable to select database!");      
  // Select all the rows in the test table
    $query = "SELECT * FROM test2 WHERE testid=89";
    $result = mysql_query($query);
    if (!$result) {
     die('Invalid query: ' . mysql_error());
    }

while ($row= mysql_fetch_array($result))
// This will only be called if there is a matching result.
{
 echo $row[1]; 
 echo $row[2];
}

Edit: Here is a cut and paste of a section of a query that happen to be open in eclipse:

$arrKPIData = Array();
try{
    $dbh = new PDO($this->mySQLAccessData->hostname, $this->mySQLAccessData->username, $this->mySQLAccessData->password);
    $stmt = $dbh->query($sql);
    $obj = $stmt->setFetchMode(PDO::FETCH_INTO, new kpiData);
    $dataCount=0;
    foreach($stmt as $kpiData)
    {
        $arrKPIData[$dataCount]['year']=$kpiData->year;
        $arrKPIData[$dataCount]['month']=$kpiData->month;
        $arrKPIData[$dataCount]['measure']=$kpiData->kpiMeasure;
        $arrKPIData[$dataCount]['var1']=$kpiData->var1;
        $arrKPIData[$dataCount]['var2']=$kpiData->var2;
        $dataCount++;
        unset($stmt);
    }
    unset($dbh);
}
catch(PDOException $e){
    echo 'Error : '.$e->getMessage();
    exit();
}
unset($arrKPIData);

I am populating a simple array with data before I cleanse it and convert it into a class further in the code.

Upvotes: 0

Pramod Kumar Sharma
Pramod Kumar Sharma

Reputation: 8012

Use isset to check variable.

Like

if(isset($images) !='')
{
echo $images;
}

Upvotes: 0

Sean
Sean

Reputation: 1678

if( !empty($row[1]) ) { 
   ...

Upvotes: 0

John Conde
John Conde

Reputation: 219804

It's hard to say exactly what you're looking for since it isn't very clear, but I think what you're wanting to do is check to see if $image has a value, and if so, display it. If not, display $text instead.

If this is the case use empty(). It will tell you if a variable is empty or not.

if (!empty($image))
 {
   print $image;
 }
else
 {
  print $text;
 }

The following things are considered to be empty:

  • "" (an empty string)
  • 0 (0 as an integer)
  • 0.0 (0 as a float)
  • "0" (0 as a string)
  • NULL
  • FALSE
  • array() (an empty array)
  • $var; (a variable declared, but without a value)

Upvotes: 2

Waygood
Waygood

Reputation: 2693

looks like you just need to test for data in $image

if(!empty($image))
{
    echo $image;
}
else
{
    echo $text;
}

Upvotes: 1

Related Questions