2014-11-03 57 views
-3

我有一個非常簡單的表單,它不工作。我試圖完成的是當用戶點擊更新按鈕時,他們會看到填充了信息的表單。當他們更改信息並點擊更新時,他們會被髮送回主窗體並顯示所有更改。一切正常,但更新。當你改變某些東西並點擊更新時,沒有什麼改變。這裏是更新表單代碼:用簡單的php和mysql更新數據庫

<h4>Update Record</h4> 
<?PHP 
$con=mysqli_connect("localhost", "root", "", "customers"); 

//check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysql_connect_error(); 
} 
?> 
<form action="update_process.php" method="get"> 
    Band: <input type="text" name="artist" value="<?php echo $_GET['artist'] ?>"/><br/> 
    Album: <input type="text" name="title" value="<?php echo $_GET['title'] ?>" /><br/> 
    Format: <select name="format"> 
     <option value="Compact Disc" name="compact disc">compact disc</option> 
     <option value="Album" name="album">album</option> 
     <option value="Cassette" name="cassette">cassette</option> 
     <option value="MP3" name="mp3">mp3</option> 
     </select><br/> 
    Notes: <TEXTAREA NAME="notes" ROWS="3" COLS="30"><?php echo $_GET['notes'] ?> 
     </TEXTAREA><br/> 
    <input type="submit" value="Update" /> 
    </form> 

這裏是爲update_process.php文件的代碼:WHERE子句,你說其中id = '$ ID'

<?php 
$artist = $_GET['artist']; 
$title = $_GET['title']; 
$format = $_GET['format']; 
$notes = $_GET['notes']; 

//create connection to DB 
$con=mysqli_connect("localhost", "root", "", "customers"); 

    //check connection 
    if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $sql = "UPDATE music SET title='$title', artist='$artist', format='$format', notes='$notes' 
    WHERE id='$id'"; 

    if ($con->query($sql) === TRUE) { 
    header('Location:index.php'); 
    } else { 
     echo "Error: " . $sql . "<br>" . $con->error; 
    } 
    ?> 
+0

日誌中的任何錯誤? – 2014-11-03 17:19:59

+1

'mysql_' <=混合。 – 2014-11-03 17:20:18

+1

好眼@ Fred-ii-! – 2014-11-03 17:21:18

回答

1

在,但如果是$ id值設置? 我認爲$ id沒有值。

+1

他有一點。這是問題的一部分@JayBlanchard,但沒有完整的答案。 – 2014-11-03 17:29:06

+0

問題太多,時間太少。而OP沒有迴應。 : -/ – 2014-11-03 17:30:53

+0

@JayBlanchard正是我選擇遠離這一點的更多原因。評論通常會成爲問題的核心。 – 2014-11-03 17:31:50

0

我看到一些問題與您的代碼:

1 - 這裏定義的ID $id

2 - 我猜id是一個整數字段,所以不需要的$id;

+0

這只是問題的一部分。 – 2014-11-03 17:29:35

0

您已經混合了基於對象和基於函數的編程。你從基於函數開始,所以我會以這種方式向你展示。要查詢的數據庫,你需要運行:

mysqli_query($con,$sql); 

不是:

$con->query($sql) 

有你的代碼的一些其他問題的安全明智的,但如果你不跳我的回答其餘不在乎。

您在使用它們之前沒有檢查這些GET參數是否存在。使用:

if(isset($_GET['artist'],$_GET['track'],...)) {...} 

你也沒有逃避你的查詢字符串,使你的網站容易受到SQL注入。使用方法:

$artist = mysqli_real_escape_string($con,$_GET['artist']); 

祝你好運!只要閱讀PHP文檔,確保您對整個腳本採用對象或函數方法。

+0

請回答OP的問題下的意見。我選擇不回答。 OP代碼錯誤太多,不清楚。 – 2014-11-03 17:33:52

+0

非常感謝您的幫助。是的,我是新的,所以不理解專家的騷擾,但是謝謝 – tabmanmatt 2014-11-03 17:57:48