查看完整版本: PHP資料庫 修改一筆資料所有資料都會一起修改
頁: [1]

jack265s 發表於 2015-12-29 04:26 PM

PHP資料庫 修改一筆資料所有資料都會一起修改

本帖最後由 jack265s 於 2015-12-29 04:53 PM 編輯



如圖 只要修改其中一筆資料 所有資料都會跟著一起修改掉
請問發生這樣的情況 通常都會是哪邊出錯呢
目前也摸不著頭緒 懇請各位幫幫忙解答 謝謝大家 麻煩了

目前的程式是這樣..<?php ob_start(); ?><?php session_start(); require_once("db/config.php");

if(!isset($_SESSION["loginUser"]) || ($_SESSION["loginUser"]=="")){
header("Location: login.php");
}

if(isset($_GET["action"])&&($_GET["action"]=="delete")){
$query_delGuest = "DELETE FROM `guest` WHERE `id`=".$_GET["id"];
//$query_delGuest = "DELETE FROM `guest` WHERE `id`=".$_GET["id"];
mysql_query($query_delGuest); header("Location: guest_s.php");
}

$query_Admin = "SELECT * FROM `admin` WHERE `username`='".$_SESSION["loginUser"]."'";
$Admin = mysql_query($query_Admin);
$row_Admin=mysql_fetch_assoc($Admin);

$pageRow_records = 10;
$num_pages = 1;
if (isset($_GET['page'])) {
  $num_pages = $_GET['page'];
}
$startRow_records = ($num_pages -1) * $pageRow_records;
$query_RecGuest = "SELECT * FROM `guest` ORDER BY `id` DESC";
$query_limit_RecGuest = $query_RecGuest." LIMIT ".$startRow_records.", ".$pageRow_records;
$RecGuest = mysql_query($query_limit_RecGuest);
$all_RecGuest = mysql_query($query_RecGuest);
$total_records = mysql_num_rows($all_RecGuest);
$total_pages = ceil($total_records/$pageRow_records);
$query_RecTotal = "SELECT count(`id`)as totalNum FROM `guest`";
$RecTotal = mysql_query($query_RecTotal);
$row_RecTotal=mysql_fetch_assoc($RecTotal);
function keepURL(){
$keepURL = "";
if(isset($_GET["keyword"])) $keepURL.="&keyword=".urlencode($_GET["keyword"]);
if(isset($_GET["price1"])) $keepURL.="&price1=".$_GET["price1"];
if(isset($_GET["price2"])) $keepURL.="&price2=".$_GET["price2"];
if(isset($_GET["cid"])) $keepURL.="&cid=".$_GET["cid"];
return $keepURL;
}
?>
<?
session_start(); require_once("../db/config.php");

if(!isset($_SESSION["loginUser"]) || ($_SESSION["loginUser"]=="")){
header("Location: login.php");
}

$query_News = "SELECT * FROM `guest` WHERE `id`='".$_GET["id"]."'";
$RecNews = mysql_query($query_News);
$row_Guest=mysql_fetch_assoc($RecNews);


include("fckeditor/fckeditor.php");
$oFCKeditor = new FCKeditor('content');
$oFCKeditor->BasePath = './fckeditor/';
$oFCKeditor->Value = $row_Guest["content"];
$oFCKeditor->Width  = '100%';
$oFCKeditor->Height = '500';
$oFCKeditor->Config['SkinPath'] = 'skins/office2003/';
$oFCKeditor->ToolbarSet = 'Default';
?>

<?php ob_start(); ?>
<?php require_once("../db/config.php");
session_start();
if(!isset($_SESSION["loginUser"]) || ($_SESSION["loginUser"]=="")){
header("Location: login.php");
}
$query_insert = "INSERT INTO guest (id, gname, gcity, gex, gyear, gmonth, gday, gtime, gfrom, gper) VALUES (";
$query_insert .= "'".$id."',";
$query_insert .= "'".$gname."',";
$query_insert .= "'".$gcity."',";
$query_insert .= "'".$gex."',";
$query_insert .= "'".$gyear."',";
$query_insert .= "'".$gmonth."',";
$query_insert .= "'".$gday."',";
$query_insert .= "'".$gtime."',";
$query_insert .= "'".$gfrom."',";
$query_insert .= "'".$gper."')";
mysql_query($query_insert);

header("Location: ../guest_s.php");

ob_end_flush();
?>
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

www10240mb 發表於 2015-12-30 08:54 PM

你只有
"DELETE" - 刪除
"INSERT" - 插入
而已,我找不到"UPDATE"又怎能修改呢?

hsw1976 發表於 2016-1-1 01:13 AM

修改資料、刪除資料,只有一個很簡單的原則:正確的where條件式

where 條件式通常都是針對 Primary Key

你的 SQL 敘述若指定了正確的刪除或修改條件,就不可能發生一家烤肉萬家香的情況。

evil_one 發表於 2016-1-3 02:57 AM

有可能是因為primary key在UPDATE指令是空白的,或者WHERE根本不存在
例如:UPDATE guest SET gname = "something"

建議把將會執行mysql_query的指令用phpmyadmin或MySQL command試一次,就知道是不是指令有誤。
保險起見,建議UPDATE和DELETE指令最後加上LIMIT 1,防止指令有誤牽連更多資料

pttwabcd 發表於 2016-2-8 09:51 AM

你可以存入陣列在一併送出喔~<br><br><br><br><br><div></div>
頁: [1]