iT邦幫忙

0

php部分語法問題

php

這是部分完整程式碼

各位大大可以幫忙解釋下list($revenue_year) =mysql_fetch_row($return); 這段意思
$whereSQL=" AND revenue_year='{$revenue_year}' "; 還有 這邊 "AND"的意思

$sql1 =" select * from revenue_usd WHERE 1 {$whereSQL} ORDER BY rMonth ASC "; 以及這的 "1" 的意思嗎?

samit iT邦新手 5 級 ‧ 2017-11-15 16:13:35 檢舉
我不會用"1"..
我用是$sql1 =" select * from revenue_usd WHERE ".$whereSQL." ORDER BY rMonth ASC "
謝大 我研究一下

2 個回答

2
dog830228
iT邦研究生 4 級 ‧ 2017-11-15 16:31:56
  1. $sql1 是變數名稱吧 你也可以命名為 $sql2,$sql3...

  2. $whereSQL=" AND revenue_year='{$revenue_year}' ";
    $whereSQL 是串接SQL語句條件 而 AND是sql語法關鍵字

  3. list($revenue_year) =mysql_fetch_row($return);
    SELECT revenue_year from revenue_usd ORDER BY revenue_year DESC的結果集
    塞入物件$revenue_year

版大可能不熟sql和php 建議可從php基本語法和sql基本語法開始讀
https://www.w3schools.com/php/func_array_list.asp

看更多先前的回應...收起先前的回應...

$sql1 =" select * from revenue_usd WHERE 1 {$whereSQL} ORDER BY rMonth ASC "; 請問大大知道這的 "1" 的意思嗎?

dog830228 iT邦研究生 4 級 ‧ 2017-11-15 16:44:51 檢舉

WHERE 1是為了後面的AND
讓後面程式可以串SQL條件

感謝!

1 你可以看成 1=1 表示永遠成立的意思 他的用處就是讓你可以串其它條件式 and xxx and xxx用的
如果沒有 1 你sql where and xxx就會報錯

太感謝大大了!!!!!

1
浩瀚星空
iT邦研究生 3 級 ‧ 2017-11-19 16:02:07

where 1 這樣的寫法是很早以前的程式員為了懶惰而發明的一種寫法。

基本上用where 1 這樣開頭的寫法。只是為了不需要去判斷是否需要加掛where的sql語句使用。
這樣在操作where條件式時,可以不用擔心有空條件的情況而造成sql語法錯誤的問題。

但現今來說,我還是不推這樣子的懶惰寫法。
雖說這樣子在效能上並沒有很大的影響。

我要發表回答

立即登入回答