2017-05-08 25 views
-1

我一直在這個問題上停留了幾個小時,而且我研究的內容對我也沒有幫助。我正在嘗試僅在輸入與數據庫中已存在的名稱匹配時更新我的​​數據庫。我如何解決這個問題,並感謝你的幫助。如何正確地更新MySQL數據在If語句中使用php?

  //Input 
     <form> 
     <input type="text" class="form-control" aria-describedby="emailHelp" name="name_input" placeholder="Enter Name"> 
       </div> 

     <a href="" name="name_btn" class="btn btn-primary">Enter</a> 
     </div> 
     </form> 


    //The PHP code 

    $name = ""; 
    $name_input = ""; 
    $points = ""; 

    if(isset($_POST['name_btn'])){ 

     $name_input = strip_tags($_POST['name_input']); 
     $name = $user['name']; 
     $points = $user['points']; 

    if($name_input == $name) { 

     $points = points + 3; 

    $upate_data = mysqli_query($con, "UPDATE users SET points='$points' WHERE id='4'"); 

    } 
    } 
+0

你應該得到未定義指數告示。 –

+0

和'href'不能與POST數組一起工作,所以你的代碼在多個級別和'$ user'的原點上失敗。 –

+0

@Fred -ii-數據庫已正確連接到頁面,我可以使用$ user獲得其他值,我刪除了href,但它仍然無效。 – apaul

回答

0

,你應該在你的表單中添加一個方法,也HREF的不符合崗位工作,應該是這樣的:

//Input 
<form method="post"> 
    <input type="text" class="form-control" aria-describedby="emailHelp" name="name" placeholder="Enter Name"> 
    </div> 

    <!-- <a href="" name="name_btn" class="btn btn-primary">Enter</a> --> 

    <input type="submit" value="Submit" name="name_btn"> 
    </div> 
</form> 


//The PHP code 

<?php 

$databaseHost = 'localhost'; 
$databaseName = 'testing'; 
$databaseUsername = 'root'; 
$databasePassword = ''; 

$con = mysqli_connect($databaseHost, $databaseUsername, $databasePassword, $databaseName); 

$name = ""; 
$name_input = ""; 
$points = ""; 

if(isset($_POST['name_btn'])){ 

    echo "aaa"; 

    $name_input = strip_tags($_POST['name']); 
    $name = $user['name']; 
    $points = $user['points']; 


echo "&nbsp&nbsp Data updated successfully!"; 

    if($name_input == $name) { 

    $points = points + 3; 

    $upate_data = mysqli_query($con, "UPDATE users SET points='$points' WHERE id='4'"); 

    } 
} 

?> 
0

您可以通過使用select查詢並獲取返回的行數來測試結果是否存在。例如;

$query = "SELECT * FROM $table WHERE username = '$name_input'"; 
$result = mysqli_query($conn, $query); 
$count = mysqli_num_rows($result); 
if($count > 0){ 
    //the result exists 
    $points = points + 3; 
    $upate_data = mysqli_query($con, "UPDATE users SET points='$points' WHERE id='4'"); 
}else{ 
    //result does not exist 
} 

此外,我看到你在表單中輸入字段的name屬性是name_input這裏<input type="text" class="form-control" aria-describedby="emailHelp" name="name_input" placeholder="Enter Name">你應該檢查出獲得name可變這裏$name_input = strip_tags($_POST['name']);的POST數據呢。