Dear IT前輩們...
有一段php的SQL語法,不知道是我語法用錯還是哪裡有問題...SQL陣列ROW無法正常寫入條件
因為資料表initial有人名test1 test2 test3的資料,ECHO也印的出來資料也正常顯示這三筆資料,不過php條件卻無法顯示,有test1的資料!!!反而ECHO出沒有!!!應該要ECHO有才對...
麻煩大大幫我解惑ˊˋ
<?
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10, MYSQL_ASSOC))
echo $row10['englishname']."<br>";
if ($row10['englishname']== 'test1')
{echo '有';}
else {echo '沒有';}
?>
<?
$hasTest1 = false;
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10, MYSQL_ASSOC)) {
echo $row10['englishname']."<br>";
if ($row10['englishname']== 'test1') {
hasTest1 = true;
}
}
if ($hasTest1) {
echo '有';
} else {
echo '沒有';
}
?>
感謝海綿大,目前是OK!!!
如果是200個User就要定義200次@@
是否有個方法不用定義兩百次的方向:)
先給你最佳解答^^
如果是200個User就要定義200次@@
太好了
你終於自己發現程式這樣寫的問題了
一般是不會把200個User寫死在程式裡
一般會把200個User記錄在資料庫中
在SELECT initial 時一起做「比對」的動作
是阿,這是一個嚴重的問題…
海綿大,是否有程式範例來研究一下呢:)
努力把程式學好中ˊˋ
海綿大大約知道你的意思,資料庫在建立一個資料表是這兩佰的User名字,之後用PHP取得這個新資料表的陣列,之後在去Select initial這張表的陣列去做比對!!!上面程式這個改成這樣對不對if ($row10['englishname']== '新的Table陣列')
請海綿大指教ˊˋ
不對
既然用了資料庫
就要用資料庫的功能,不要自己寫
包括:排序、搜尋、比對
你這裡想做的
可以用Left Outer Join做到
如果懶得看
這裡有範例
用 flag 來判斷要不要反白
OK,感謝海綿大,不過我最後還是要利用條件去判斷下拉式是否反灰@@
<?
if ($id == 'D0373' or $id == 'D0483')
{
echo "部門/姓名: <SELECT NAME='ptprovince' SIZE='1' >
<OPTION value='0'>---請選擇---</OPTION>
<optgroup selected='true' label='資訊課'>";
if ($id == 'D0483' ){echo "<option value='pulleylee'>pulleylee</option>";}
if ($id == 'D0483' ){echo "<option value='alpha_hong'>alpha_hong</option>";}
if ($id == 'D0483' ){echo "<option value='harry_chien'>harry_chien</option></SELECT>";}
if ($id == 'D0373'){echo "<option value='alpha_hong'>alpha_hong</option>";}
if ($id == 'D0373'){echo "<option value='harry_chien'>harry_chien</option></SELECT>";}
?>
}
問題解決了就好
我是看了有點
$result = mysql_query("SELECT * FROM initial WHERE season = '2017Q1' AND englishname = 'test1'");
if (mysql_num_rows($result) > 0) {
echo '有';
}else{
echo '沒有';
}
明明就是個能直接用資料庫就做掉的………
不過你知道現在應該要學PDO才對嗎?
您的程式分成三個區段,第一段是SQL查詢
$result10=mysql_query("SELECT * from initial where season = '2017Q1'");
while($row10 = mysql_fetch_array($result10, MYSQL_ASSOC))
第二段是 while 子句
while($row10 = mysql_fetch_array($result10, MYSQL_ASSOC))
echo $row10['englishname']."<br>";
第三段是檢查是否有 test1
if ($row10['englishname']== 'test1')
{echo '有';}
else {echo '沒有';}
換句話說,在跑完第二段之後,三筆資料都已經顯示出來了,這時的 $row10['englishname']
的值是最後一筆資料,也就是 test3,當然程式在執行第三段時,就只好顯示沒有。
所以如果要一邊顯示資料,一邊檢查是否有 test1,就要把第三段包進到第二段裡面,像這樣即可。
while ($row10 = mysql_fetch_array($result10, MYSQL_ASSOC)) {
echo $row10['englishname']."<br>";
if ($row10['englishname']== 'test1') {
echo '有';
} else {
echo '沒有';
}
}