引用 | 編輯
獨吾洋
2008-04-17 14:32 |
樓主
▼ |
||
x0
假設我做個form想要儲存日期和照片到mysql資料庫裡 index.tpl 複製程式 <html> <body> <h2>Add your details</h2> <form method="post" action="."> <table border=1> <tr> <td>Name</td> <td><input type="text" name="name"></td> </tr> </tr> <tr> <td>Location</td> <td><input type="text" name="location"></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email"></td> </tr> <tr> <td>Date of Birth</td> <td> <select name="month"> <option value="-1" selected>Month</option> <option value="01">Jan</option> <option value="02">Feb</option> <option value="03">Mar</option> <option value="04">Apr</option> <option value="05">May</option> <option value="06">Jun</option> <option value="07">Jul</option> <option value="08">Aug</option> <option value="09">Sep</option> <option value="10">Oct</option> <option value="11">Nov</option> <option value="12">Dec</option> </select> <select name="day"> <option value="-1" selected>Day</option> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> <option value="19">19</option> <option value="20">20</option> <option value="21">21</option> <option value="22">22</option> <option value="23">23</option> <option value="24">24</option> <option value="25">25</option> <option value="26">26</option> <option value="27">27</option> <option value="28">28</option> <option value="29">29</option> <option value="30">30</option> <option value="31">31</option> </select> <select name="year"> <option value="-1" selected>Year</option> <option value="1994">1994</option> <option value="1993">1993</option> <option value="1992">1992</option> <option value="1991">1991</option> <option value="1990">1990</option> <option value="1989">1989</option> <option value="1988">1988</option> <option value="1987">1987</option> <option value="1986">1986</option> <option value="1985">1985</option> <option value="1984">1984</option> <option value="1983">1983</option> <option value="1982">1982</option> <option value="1981">1981</option> <option value="1980">1980</option> <option value="1979">1979</option> <option value="1968">1978</option> <option value="1977">1977</option> <option value="1976">1976</option> <option value="1975">1975</option> <option value="1974">1974</option> <option value="1973">1973</option> <option value="1972">1972</option> <option value="1971">1971</option> <option value="1970">1970</option> </select> </td> <tr> <td>Gender</td> <td> <input type="radio" name="gender" value="m">Male <input type="radio" name="gender" value="f">Female </td> </tr> <tr> <td>Photo</td> <td><input type="file" name="upload_photo"></td> </tr> <tr> <td></td> <td align="right"><input type="submit" value="Sign up"></td> </tr> </table> </form> <hr> <h2>Member List</h2> {if count($members) == 0} <p>No members found.</p> {else} {foreach from=$members item=member} <ul> <li>{$member.name}, {$member.location}, {$member.gender}</li> </ul> {/foreach} {/if} </body> </html> index.php 複製程式 <?php require "/usr/local/Smarty/libs/Smarty.class.php"; require "includes/defs.php"; $name = $_POST['name']; $location = $_POST['location']; $email = $_POST['email']; $birthday = $_POST['year']."-".$_POST['month']."-".$_POST['day']; $gender = $_POST['gender']; $tmpName = $_FILES['upload_photo']['tmp_name']; $fp = fopen($tmpName, 'r'); $photo = fread($fp, filesize($tmpName)); $photo = addslashes($photo); fclose($fp); if (!empty($name)){ add_member($name, $location, $email, $birthday, $gender, $photo); } $smarty = new Smarty(); $smarty->assign('members', $members); $smarty->display('index.tpl'); ?> defs.php 複製程式 <?php function showerror() { die("Error ". mysql_errno() . " : " . mysql_error()); } function add_member($name, $location, $email, $birthday, $gender, $photo){ $connection = @ mysql_connect("mysql", "s2603948", "FHpRgXTG") or die("Could not connect"); mysql_select_db("s2603948db", $connection) or showerror(); $insert = "insert into temp values" . "(null, '$name', '$location', '$email', '$birthday', '$gender', '$photo')"; $result = @ mysql_query ($insert, $connection) or showerror(); mysql_close($connection) or showerror(); } function is_member() { $connection = @ mysql_connect("mysql", "s2603948", "FHpRgXTG") or die("Could not connect"); mysql_select_db("s2603948db", $connection) or showerror(); $query = "select * from temp order by id"; $result = @ mysql_query($query, $connection) or showerror(); $members = array(); while ($row = mysql_fetch_array($result)) { $members[] = $row; } mysql_close($connection) or showerror(); return $members; } ?> mysql table 複製程式 mysql> create table temp (id int(4) auto_increment, -> name varchar(40), -> email varchar(40), -> birthday date default -00-00', -> gender char(1), -> photo blob, -> primary key (id)); Query OK, 0 rows affected (0.05 sec) x0
|
引用 | 編輯
andyz
2008-04-17 19:46 |
1樓
▲ ▼ |
$birthday= $bthY."-".$bthM."-".$bthD;
檔案在SQL裡面 不是存檔案 是存路徑 存你上傳檔案在SERVER的路徑 $photo = $_FILES['upload_photo']['name']; move_uploaded_file($_FILES['upload_photo']['tmp_name'],$_FILES['upload_photo']['name']); $insert ="INSERT INTO temp(birthday ,photo ) VALUES ('$birthday','$photo') "; 還有 不要用function 你寫的一個function 但是你又沒有呼叫它 它就不會去跑 x1 |
引用 | 編輯
獨吾洋
2008-04-17 21:49 |
2樓
▲ ▼ |
下面是引用andyz於2008-04-17 19:46發表的 : 現在插入日期的問題應該是有解決了 利用$_POST['year']."-".$_POST['month']."-".$_POST['day']; 我用select * from temp;查的時候也有顯示 但是photo的部分還是空白這樣是對的嗎? 謝謝版主~這裡真是靠你撐起半邊天!! 不知道你有沒有在教人 好想跟你學喔 QQ x0 |
引用 | 編輯
andyz
2008-04-17 22:34 |
3樓
▲ ▼ |
-> photo blob,
改 photo char(128) 試試 跟我學喔~ 不好啦 我鐘點費很貴的 而且你又是學生 收太貴會不好意思 x0 |
引用 | 編輯
獨吾洋
2008-04-17 23:11 |
4樓
▲ ▼ |
下面是引用andyz於2008-04-17 22:34發表的 : 可是其實photo用blob 是照我要交的報告要求做的 可以用blob做嗎? 呵呵~ 鐘點費貴的話 真的付不起 ~"~ 不過像你這麼厲害 應該也有從事相關行業了吧 x0 |
引用 | 編輯
andyz
2008-04-18 11:23 |
5樓
▲ ▼ |
如果是造你的方式做的話
這兩行 $photo = $_FILES['upload_photo']['name']; move_uploaded_file($_FILES['upload_photo']['tmp_name'],$_FILES['upload_photo']['name']); 改成 $photo = $_FILES['upload_photo']['tmp_name']; 因為blob可以存圖片 但是有檔案大小的限制 試試看傳檔案較小的圖片 x0 |
引用 | 編輯
獨吾洋
2008-04-18 22:34 |
6樓
▲ ▼ |
下面是引用andyz於2008-04-18 11:23發表的 : 那請問我要如何確定有上傳到資料庫了? print_r也只有看到檔案名稱而已 我用command select * from temp photo field沒有任何東西顯示 這樣是正常的嗎 x0 |
引用 | 編輯
獨吾洋
2008-04-20 12:15 |
8樓
▲ ▼ |
下面是引用andyz於2008-04-19 17:02發表的 : 我用phpMyAdmin瀏覽那表格的內容 photo field還是沒有東西 (0 Byte) 哪裡出了錯? 我更新我最新的code給你看 麻煩一下了... 謝謝!!!! x0 |
引用 | 編輯
andyz
2008-04-20 13:10 |
9樓
▲ ▼ |
try this
$tmpName = $_FILES['upload_photo']['tmp_name']; $fp = fopen($tmpName, 'r'); $photo = fread($fp, filesize($tmpName)); $photo = addslashes($photo); fclose($fp); and then write that to your sql remember!! upload file must < 64 kilobytes x0 |
引用 | 編輯
獨吾洋
2008-04-21 07:18 |
10樓
▲ ▼ |
下面是引用andyz於2008-04-20 13:10發表的 : still no working... 我把你這段code放在index.php $gender的下面 我上面index.php有更新 還有不好意思我可以額外問另一個問題嗎 就是依我的網頁首頁你可以知道我有做個member list 但只有一行summary 有name, location, gender 然後我現在想要做個連結 去完整敘述那個會員的基本資料 所以我想是再做個php網頁 然後一樣連結到database $connection....; mysql_select_db....; $query = "select * from temp where id = id"; 問題就出在我如何知道user點哪一個會員在首頁的時候 之後知道如何擷取該會員資料 就在同一個php裡的下面 寫個table去display就可以了吧? 我原本是想是不是可以像網址常看到的php?id=... 所以我就寫這樣 in index.tpl 複製程式 {foreach from=$members item=member} <ul> <li>{$member.name}, {$member.location}, {$member.gender}</li> <a href="./details.php?id={$member.id}">more</a> </ul> {/foreach} 我在details.php想說print_r或echo看有沒有id傳過來也沒有 所以我到底要怎麼利用這id? x0 |
引用 | 編輯
andyz
2008-04-21 11:36 |
11樓
▲ ▼ |
那麼參考這個
$PSize = filesize($Picture); $mysqlPicture = addslashes(fread(fopen($Picture, "r"), $PSize)); mysql_connect($host,$username,$password) or die("Unable to connect to SQL server"); @mysql_select_db($db) or die("Unable to select database"); mysql_query("INSERT INTO Images (Image) VALUES '($mysqlPicture')") or die("Can't Perform Query"); 你的list作好後 連結做成這樣 xxxxxxxxx.php?id=$id 這樣就可以把id的參數傳過去 x0 |
引用 | 編輯
獨吾洋
2008-04-21 18:43 |
12樓
▲ ▼ |
下面是引用andyz於2008-04-21 11:36發表的 : 複製程式 <ul> <li>{$member.name}, {$member.location}, {$member.gender}</li> <p><a href="./details.php?id=${$member.id}">more</a></p> </ul> 連結是像這樣嗎? 那我在details.php裡面如拿取id 是像 $id = $_GET['id']; 這樣嗎? x0 |