看板 PHP 關於我們 聯絡資訊
※ 引述《godispower (omg)》之銘言: whquery.php <?php $conn = mysql_connect('localhost','root','680712'); mysql_select_db("purchaseinfo",$conn); //插入修改的部份如下: $result = mysql_list_fields("purchaseinfo","incoming"); $field_num = mysql_num_fields($result); for ($i = 0;$i <$field_num;$i++){ $fieldarr[] = mysql_field_name($result,$i); } foreach($fieldarr as $value){ if (strlen($_POST[$value]) != 0){ $where .= "{$value}='{$_POST[$value]}' AND "; $timer +=1; } } if ($timer >= 3){ $sql = "SELECT * FROM incoming WHERE ".substr($where,0,-5); //--------------------------------------------------------- $result = mysql_query($sql,$conn); while($row = mysql_fetch_array($result)) { $datatable .= function get_datatable($row["id"],$row["item"] ,$row["barcode"],$row["datearrivetom"]) } mysql_free_result($result); mysql_close($conn); echo $datatable; }else{ echo "輸入資料不足,無法查詢"; fucntion get_datatable($id,$item,$barcode,$datearrivetom){ $html = "<tr><td align='left' height='20'>$id</td>"; $html .= "<td align='left'>$item</td>"; $html .= "<td align='left'>$barcode</td>"; $html .= "<td align='left'>$dataarrivetom</td></tr>"; return $html; } ?> 由於這個方法會把表單中全部有給予欄位name名稱的全部判斷。 所以記得用不到的表單或功能(像是submit或button)不要給予name,否則會誤判。 雖然正確的寫法上應該要再加入資料庫欄位判斷。 不過怕寫得太複雜你可能一下子會意會不過來。 僅可能的不要把html和php混在一起寫。 一開始最基礎的就是先把html另外提取出來到一個函式。 讓php程式段顯得比較容易閱讀。 記得一件事,當你的php和html混在一起時。 你的html就不再是html,對php而且,他只是一個經過echo出來的字串,僅管看起來你 並沒有對html做echo的動作。 2010/01/28 17:14修訂: 加入了資料庫欄位判斷,資料庫有存在的欄位才會進行字串處理。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.48.82
emn178:這樣寫會把submit button抓進去吧 01/28 15:40
tkdmaf:喔!我在改寫他的HTML時就把submit的name拿掉了。 01/28 16:19
tkdmaf:在補文字時忘了說明了。 01/28 16:19
tkdmaf:正確的做法上,其實會加入和資料庫的欄位比對。 01/28 16:20
※ 編輯: tkdmaf 來自: 220.136.48.82 (01/28 16:23)
mycallsoft:emn178有考慮到. 01/28 16:27
tkdmaf:我考慮的是………萬一表單還要增加,改程式不是正確的方法 01/28 16:29
tkdmaf:最終目的是希望不管表單或資料庫怎麼改,程式都不用動。 01/28 16:30
※ 編輯: tkdmaf 來自: 220.136.48.82 (01/28 17:16)