php
  • mysql
  • 2011-06-03 84 views 1 likes 
    1

    我有6個不同的字段的表單來輸入日期(day1day6)和6個不同的字段中輸入該特定日期(dtls1dtls6)的細節。這些所有數據都將轉到數據庫。還有一個頁面顯示所有這些數據。選擇是根據日期。代碼如下:檢索從同一個表相同的數據兩次

    $today = date('D, d M, Y'); 
    $sql = "SELECT * FROM tables WHERE day1 = '$today' AND org = 'green'"; 
    if($_POST!=""){ 
    $mydate = mysql_real_escape_string($_POST['datepicker']); 
        if($mydate!=""){  
         $sql = "SELECT * FROM tables WHERE day1 = '$mydate' AND org = 'green'"; 
        }  
    } 
    $string = nl2br($string); 
    $num_results_per_page = 2; 
    $num_page_links_per_page = 5; 
    $pg_param1 = ""; // Ex: &q=value 
    $result=mysql_query($sql); 
    $row = mysql_fetch_array($result); 
    pagination($sql, $num_results_per_page, $num_page_links_per_page, $pg_param); 
    if($pg_error == '') 
    { 
        if(mysql_num_rows($pg_result) > 0) 
        { 
         while($data = mysql_fetch_assoc($pg_result)) 
         { 
    
    echo "<table width=585 height=203> 
         <tr> 
          <td height=10 colspan=3 align=left valign=top></td> 
          </tr> 
          <tr> 
          <td height=17 colspan=3 align=center valign=middle class=text6>". $data['pgmtitle'] .".</td> 
          </tr> 
          <tr> 
          <td height=17 colspan=3 align=center valign=middle class=text8>". $data['org'] .".</td> 
          </tr> 
          <tr> 
          <td height=21 colspan=3 align=center valign=middle class=text19>". $data['programdtls1'] ." OR</td> 
          </tr> 
        <tr> 
          <td width=190 height=32 align=left valign=top class=text3>". $data['venue'] ."</td> 
          <td width=11 rowspan=2 align=left valign=top><div class=box2></div></td> 
          <td width=368 rowspan=2 align=left valign=top class=text7> 
            <b>Contact:</b> ". $data['contactperson'] ." 
            <br/><b>Phone:</b> ". $data['contactnumber'] ." 
            <br/><b>E-mail ID:</b> ". $data['email'] ." 
            <br/><b>Website:</b> ". $data['website'] ."</td> 
          </tr></table><br/>" 
    
    echo "</br>". $pagination_output; 
        } 
        else 
        { 
         echo '<p class="text11">No events listed for this day.</p>'; 
        } 
    } 
    else 
    { 
        echo $pg_error; //display any errors, you can remove this if you want. 
    } 
    ?> 
    

    此代碼工作正常。問題是我想顯示是否有任何內容(programdtls2到programdtls6)。事情是,與programdtls2我想顯示場地,聯繫人,聯繫電話等與programdtls1相同。像...

    echo "<table width=585 height=203> 
    <tr> 
    <td height=10 colspan=3 align=left valign=top></td> 
    </tr> 
    <tr> 
    <td height=17 colspan=3 align=center valign=middle class=text6>". $data['pgmtitle'] .".</td> 
        </tr> 
        <tr> 
        <td height=17 colspan=3 align=center valign=middle class=text8>". $data['org'] .".</td> 
        </tr> 
        <tr> 
        <td height=21 colspan=3 align=center valign=middle class=text19>". $data['programdtls2'] ."</td> 
        </tr> 
        <tr> 
        <td width=190 height=32 align=left valign=top class=text3>". $data['venue']  ."</td> 
        <td width=11 rowspan=2 align=left valign=top><div class=box2></div></td> 
        <td width=368 rowspan=2 align=left valign=top class=text7> 
            <b>Contact:</b> ". $data['contactperson'] ." 
            <br/><b>Phone:</b> ". $data['contactnumber'] ." 
            <br/><b>E-mail ID:</b> ". $data['email'] ." 
            <br/><b>Website:</b> ". $data['website'] ."</td> 
        </tr></table><br/>" 
    

    表結構

    "id_user INT NOT NULL AUTO_INCREMENT ,". 
           "org VARCHAR(100) NOT NULL ,". 
           "pgmtitle VARCHAR(100) NOT NULL ,". 
           "category VARCHAR(32) NOT NULL ,". 
           "relation VARCHAR(75) NOT NULL ,". 
           "venue VARCHAR(75) NOT NULL ,". 
           "hr VARCHAR(30) NOT NULL ,". 
           "min VARCHAR(30) NOT NULL ,". 
           "time VARCHAR(30) NOT NULL ,". 
           "day1 VARCHAR(30) NOT NULL ,". 
           "day2 VARCHAR(30) NOT NULL ,". 
           "day3 VARCHAR(30) NOT NULL ,". 
           "day4 VARCHAR(30) NOT NULL ,". 
           "day5 VARCHAR(30) NOT NULL ,". 
           "day6 VARCHAR(30) NOT NULL ,". 
           "city VARCHAR(35) NOT NULL ,". 
           "others VARCHAR(35) NOT NULL ,". 
           "contactperson VARCHAR(128) NOT NULL ,". 
           "contactnumber VARCHAR(128) NOT NULL ,". 
           "email VARCHAR(64) NOT NULL ,". 
           "programdtls1 VARCHAR(150) NOT NULL ,". 
           "programdtls2 VARCHAR(150) NOT NULL ,". 
           "programdtls3 VARCHAR(150) NOT NULL ,". 
           "programdtls4 VARCHAR(150) NOT NULL ,". 
           "programdtls5 VARCHAR(150) NOT NULL ,". 
           "programdtls6 VARCHAR(150) NOT NULL ,". 
           "nature VARCHAR(50) NOT NULL ,". 
           "resentry VARCHAR(50) NOT NULL ,". 
           "confirmcode VARCHAR(32) ,". 
           "PRIMARY KEY (id_user)". 
           ")"; 
    

    這可能

    +2

    請格式化您的文章。 – 2011-06-03 08:59:19

    +0

    你可以列出你的表結構 – ejrowley 2011-06-03 09:50:10

    +2

    其完全無法理解你在找什麼 – dynamic 2011-06-03 10:00:18

    回答

    0

    如果我讀這正確想要programdtls2到superseed programdtls1如果它被設置,其可以使用簡單的if-else語句完成。

    if($data['programdtls2'] != '') 
    { 
        // programdtls2 is NOT empty, so superseed programdtls1: 
        echo $data['programdtls2']; 
    } 
    else 
    { 
        echo $data['programdtls1']; 
    } 
    

    上面的代碼只是我認爲你想要和應該做的一個簡單的例子。你也可以做此項檢查內聯,就像這樣:

    (($data['programdtls2'] != '') ? $data['programdtls2'] : $data['programdtls1']) 
    

    這意味着如果不爲空做dtls2做別的dtls1如果你已有的代碼結合起來,你得到這個。 請注意,此代碼是從您的原件複製並因此包含相同的錯誤,如缺少分號(;)。

    echo "<table width=585 height=203> 
         <tr> 
          <td height=10 colspan=3 align=left valign=top></td> 
         </tr> 
         <tr> 
          <td height=17 colspan=3 align=center valign=middle class=text6> 
          ". $data['pgmtitle'] .". 
          </td> 
         </tr> 
         <tr> 
          <td height=17 colspan=3 align=center valign=middle class=text8> 
          ". $data['org'] .". 
          </td> 
         </tr> 
         <tr> 
          <td height=21 colspan=3 align=center valign=middle class=text19> 
          ". (($data['programdtls2'] != '') ? 
           $data['programdtls2'] : $data['programdtls1']) ." OR 
          </td> 
         </tr> 
         <tr> 
          <td width=190 height=32 align=left valign=top class=text3> 
          ". $data['venue'] ." 
          </td> 
          <td width=11 rowspan=2 align=left valign=top><div class=box2></div></td> 
          <td width=368 rowspan=2 align=left valign=top class=text7> 
          <b>Contact:</b> ". $data['contactperson'] ."<br/> 
          <b>Phone:</b> ". $data['contactnumber'] ."<br/> 
          <b>E-mail ID:</b> ". $data['email'] ."<br/> 
          <b>Website:</b> ". $data['website'] ."</td> 
         </tr> 
        </table> 
    <br/>"; 
    echo "</br>". $pagination_output; 
    

    而且,我不會進入數據庫設計太多在這裏,但在第一眼看到你的設計是次優的。簡單的例子,你預留6天6個事件數據庫中的所有行,但有的只有1個,而有些則有充分6.更好的在多個表的東西分裂,如:

    1. 數據(事件名稱,主辦單位,聯繫方式等)
    2. 日(日活動)
    3. 內容(活動內容)

    您可以組合的日期和內容,如果有,每天只有一個內容。此外,如果有多個活動的組織者,您可以考慮爲這些活動添加一張表格(表格:組織者,其中包含聯繫信息)。這樣,您可以將數據庫大小保持在最小,並減少錯誤。

    最後一個腳註,請檢查您的HTML標記。您的標記將強制所有瀏覽器進入怪異模式,這與PC的不一致。

    +0

    不...那不是那樣...如果day1在那裏它應該顯示programdtls1 ...和day2在那裏,顯示programdtls2喜歡.. – Don 2011-06-03 13:02:57

    +0

    你的意思是你想同時顯示? – KilZone 2011-06-03 13:59:31

    +0

    如果day1選擇,則顯示programdtls1。 day2選擇programdtls2。 – Don 2011-06-03 16:26:17

    相關問題