2012-08-08 97 views
0

這是我的第一篇文章,所以請將代碼輸入到這裏。我試圖輸出一些圖像到PDF,並需要創建一個if語句連續查找數據。檢查數據是否在表格行

$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]; 
} 

這就是我有這麼遠,基本上我需要沿着這行的東西:

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

貴表包含哪些數據? – Vamsi 2012-08-08 11:59:33

+0

只是從表單輸入的文本和圖像路徑 – Josh 2012-08-08 12:26:55

回答

2

很難說你正在尋找什麼,因爲它不是很清楚,但我認爲你想要做的是檢查看看$image公頃是一個價值,如果是的話,顯示它。如果不是,則改爲顯示$text

如果是這種情況,請使用empty()。它會告訴你一個變量是否爲空。

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

以下的事情被認爲是空的:

  • 「」(空字符串)
  • 0(0作爲整數)
  • 0.0(0爲float)
  • 「0」(0作爲字符串)
  • NULL
  • FALSE
  • array()(一個空數組)
  • $ var; (變量聲明,但沒有一個值)
+0

+1更好的解釋 – Waygood 2012-08-08 12:16:19

+0

這工作。非常感謝你的幫助 – Josh 2012-08-08 12:27:28

+1

@ user1573979,如果這個答案已經解決了你的問題,那麼你可以點擊它旁邊的綠色標記來標記爲[「accepted」](http://meta.stackexchange.com/questions/ 5234 /如何-不接受-的回答工作)。這向更廣泛的社區表明,您的問題已得到解決,併爲您和回答者提供了一定的聲譽。 – Ben 2012-08-08 12:37:13

1

看起來像你只需要在$圖像測試數據

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

雖然您使用的是貶值的老mysql_*功能,你幾乎沒有

$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]; 
} 

編輯:這是一個部分的剪切和粘貼這恰好是在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); 

我用數據填充一個簡單的數組之前,我清理它,它進一步轉化成一個類中的代碼。

+0

新的mysql代碼是怎麼看的? – Josh 2012-08-08 12:30:09

+0

@ user1573979請參閱編輯。 – Fluffeh 2012-08-08 12:34:45

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

使用isset來檢查變量。

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

$ image = $ row [1];意味着它總是被設置爲UNLESS字段默認爲NULL,你需要檢查內容 – Waygood 2012-08-08 12:04:12

+0

是的,我的意思是這個 – 2012-08-08 12:04:52

+0

所以如果$ image是''(空白 - 沒有數據)它不顯示文本! – Waygood 2012-08-08 12:07:40