不太會用UPDATE...SET...WHERE懇請各位高手大大指導

edited 八月 2014 in PHP新手區
各位大大好,小弟是想做有圖旁邊可以寫日誌的網頁,大部分都做好了就只差不知道如何讓日誌的內容能有效的比對到相片的ap_id,下面的$string到$query_Update是小弟新增的程式碼請大大糾正一下是否有錯,然後下面的`SET `albumphoto`.`content`=裡面的內容小弟不知道要用什麼變數才能更新資料庫的content欄位。
如果有哪裡不夠詳細的請大大提出謝謝

mysql_select_db($database_connSQL, $connSQL);
$query_Update = "UPDATE albumphoto SET ap_hits=ap_hits+1 WHERE ap_id = ".$_GET["ap_id"];
$string=$_SERVER;
$arr=explode("=", $string);
$query_Update = ("select * from `albumphoto` where`album_id`='{$arr[2]}'");
$query_Update = ("UPDATE `albumphoto` SET `albumphoto`.`content`='不知道要用什麼變數' WHERE`ap_id`='{$arr[2]}'");
$Result = mysql_query($query_Update, $connSQL) or die(mysql_error());

評論

  • edited 八月 2014
    不好意思重新編輯一下
    mysql_select_db($database_connSQL, $connSQL);
    $query_Update = "UPDATE albumphoto SET ap_hits=ap_hits+1 WHERE ap_id = ".$_GET["ap_id"];
    $string=$_SERVER['QUERY_STRING'];	
    $arr=explode("=", $string); 
    $query_Update = ("select * from `albumphoto` where`album_id`='{$arr[2]}'");
    $query_Update = ("UPDATE `albumphoto` SET `albumphoto`.`content`='不知道要用什麼變數' WHERE`ap_id`='{$arr[2]}'");
    $Result = mysql_query($query_Update, $connSQL) or die(mysql_error());
    
  • mysql_select_db($database_connSQL, $connSQL);
    $query_Update = "UPDATE albumphoto SET ap_hits=ap_hits+1 WHERE ap_id = ".$_GET["ap_id"];
    //ap_hits=ap_hits+1 要確定db 有支援這樣的運算子
    // ap_id = ".$_GET["ap_id"];   當心sql injection
    
    $string=$_SERVER['QUERY_STRING'];	
    $arr=explode(\"=\", $string); 
    $query_Update = (\"select * from `albumphoto` where`album_id`='{$arr[2]}'\");
    //這行無意義,設定了sql string 但不去跑它
    
    $query_Update = ("UPDATE albumphoto  SET content ='不知道要用什麼變數' 
    WHERE ap_id='".$arr[2]."'");
    //字串有改寫,請仔細看
    //$arr[2] 得先確定 $arr[2] 是否存在
    //還要先確定 資料 albumphoto.ap_id = '$arr[2]' 是否存在才能 update
    
    $Result = mysql_query($query_Update, $connSQL) or die(mysql_error());
    
  • 對不起我沒有說的很詳細,我有2個問題
    問題一:關於
    $query_Update = (\\"select * from `albumphoto` where`album_id`='{$arr[2]}'\\");
    
    我的相簿網頁點進去會先看到的是使用者的相簿集分類再點進去其中一本向相簿才能看到裡面的相片類似FB的相簿,所以我應該要先抓到相簿的ID(album_id)進而再去抓取指定相片的ID(ap_id),不知道我這樣的邏輯對不對?如果要讓去跑它我該怎麼做?

    問題二:
    ======================================================
    ap_id   album_id   ap_picture   content                
     11         21       花.jpg
     12         21       天空.jpg  
     13         22       飛吧.jpg
     14         22       圖戰.jpg
     15         22       小姐.jpg
    ======================================================
    
    ↓變成
    ======================================================
    ap_id   album_id   ap_picture   content                
     11         21       花.jpg     身在花海中
     12         21       天空.jpg    甜甜圈
     14         22       飛吧.jpg    衝衝衝
     15         22       圖戰.jpg    哈哈
     19         22       小姐.jpg    漂亮喔
    ======================================================
    
    想讓資料庫content這個欄位從原本的無內容,你在前端網頁輸入內容後,變成可以在資料庫顯示出內容並且能比對到ap_id,而不是變成自己新增一筆資料。
    厚臉皮的小弟我可以請大大幫我修正程式碼嗎?


    最後大大說的要確定
    albumphoto.ap_id = '$arr[2]'
    
    是否存在,這邊小弟不知道該如何去確定,因為小弟只知道
    $string=$_SERVER['QUERY_STRING'];	
    $arr=explode(\"=\", $string);
    
    應該是抓取我的相簿網址
    http://funcloud-kardyt.com/photo/albumphoto.php?ap_id=239
    
    等號後面的值





  • q1 : 打開特定相簿
    //0 收值與收值檢查
        $album_id = $_GET[album_id];  //處理相簿id
         
    //1.取得相簿內相片資訊
        $sql = "select * from albumphoto  where album_id =$album_id  ";
        $rs = mysql_query($sql, $connSQL) or die(mysql_error()); //取得資料
        $show=mysql_fetch_row($rs);
       print_r($show); //相片資訊陣列
         ...... 用$show  來排網頁
    
    q2:update 相片的說明
    //相片說明傳值接收,改一個傳一個版
    $ap_id =   $_POST[ap_id] //要編寫的相片id
    $content = $_POST[content] //依傳的id決定 
    $sql = "update  albumphoto set content = '$content' where ap_id= $ap_id ";
    $rs = mysql_query($sql, $connSQL) or die(mysql_error()); //執行並看回傳
    if ($rs) echo 'update 完成'; else 'upadte 失敗';
    
  • 謝謝大大的解答!!
    但是執行出來不知未何網頁是空白的,小弟再找找看原因好了
Sign In or Register to comment.