2016-09-28 68 views
0

我是新來的PHP,但試圖學習新的東西。我有三個字段的數據庫中的表。 ID,城市和名稱。我想要的是通過從文本框中獲取值來檢查所有這三個字段是否相等,然後顯示錯誤,否則它會顯示我重定向到新頁面的鏈接。但我不能夠正常運行此查詢試圖像幾件事情算等驗證檢查3個字段來檢查重複

<form> 
<input id="text1" type="text" name="id" size="20" > 
<input id="text1" type="text" name="name" size="20" > 
<input id="text1" type="text" name="city" size="20" > 
<input id="text1" type="submit" name="submit" size="20" > 
</form> 

<?php 
$con=mysqli_connect("localhost","root","","test"); 
$check="SELECT * FROM eval WHERE id = '$_POST[id]' AND name = '$_POST[name]' AND city = '$_POST[city]' "; 

if(if all this data is same then) { 
echo "Record already exist...<br/>"; 
} 
else 
{ 
echo "<a href='NewUser.php'> New Sign Up </a> 
} 
?> 
+0

任何想法,將不勝感激,以獲得所需的結果,查詢可以是任何東西,但需要路由到用戶之前,檢查所有這三場下一頁... – A1Nasir

回答

1
<form> 
    <input id="text1" type="text" name="id" size="20" > 
    <input id="text1" type="text" name="name" size="20" > 
    <input id="text1" type="text" name="city" size="20" > 
    <input id="text1" type="submit" name="submit" size="20" > 
</form> 

<?php 
    $con=mysqli_connect("localhost","root","","test"); 
    $check="SELECT COUNT(*) FROM eval WHERE id = '$_POST[id]' AND name = '$_POST[name]' AND city = '$_POST[city]' "; 
    $result = mysqli_query($con,$check); 
    $count = mysqli_fetch_array($result); 
    if(current($count) > 0) { 
     echo "Record already exist...<br/>"; 
    } 
    else 
    { 
     echo "<a href='NewUser.php'> New Sign Up </a> 
    } 
?> 

你不得不解僱使用mysqli_query()SQL查詢到數據庫。之後檢查行數是否大於0,這意味着您找到了一個或多個精確重複的行。

SELECT COUNT(*)自動計算檢索到的行。

+0

不工作...在頁面加載此查詢顯示我其他語句...你可以請檢查...我想運行此提交按鈕來檢查驗證 – A1Nasir

+0

@ A1Nasir當然它。把它包裝成一個'if(isset($ _ POST ['submit'])){}'或者類似的東西...... – Xatenev

1

好的,你有一個HTML表單和一些PHP代碼來處理表單提交時發生的情況。

因此,當表單被提交時,爲了PHP註冊此提交需要知道該表單已提交。

如果您正在通過JavaScript處理表單輸入,但您在PHP中有一些不同,您可以在客戶端上使用表單,但在PHP中它有點不同。

所以你的形式將需要兩個額外的東西:

1)指定的表單數據將如何被髮送的方法屬性。

2.)定義表單數據將被髮送到何處的動作。

最常用的方法是GET和POST。而當你有PHP代碼處理與表單相同頁面上的表單時,這個動作就是這個頁面本身。所以,你現在有:

<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <input type="text" name="id"> 
    <input type="text" name="name"> 
    <input type="text" name="city"> 
    <input type="submit" name="clicked" value="formSubmit"> 
</form> 

在PHP爲了您註冊此輸入,您可以使用提交按鈕被點擊時發生的事件。所以,你將有:

<?php 
    # If the submit button was clicked 
    if (isset($_POST['clicked']) && $_POST['clicked'] == 'formSubmit') { 
    # Access the form inputs in php 
    $id = $_POST['id']; 
    $name = $_POST['name']; 
    $city = $_POST['city']; 

    # Helper to output mysql errors 
    function processError($link) { 
     echo "Error: Unable to connect to MySQL.<br>"; 
     echo "Debugging errno: " . $link->errno . "<br>"; 
     echo "Debugging error: " . $link->error . "<br>"; 
     exit; 
    } 

    # Connect to the database 
    // Create a database connection for PHP to use 
    $link = mysqli_connect($DBHost, $DBUser, $DBPass, $DBName); 
    // Ensure the connection is active 
    if (!$link) { 
     echo "Error: Unable to connect to MySQL.<br>"; 
     echo "Debugging errno: " . mysqli_connect_errno() . "<br>"; 
     echo "Debugging error: " . mysqli_connect_error() . "<br>"; 
     exit; 
    } 
    // Sets encoding type to uft8 
    if (!mysqli_set_charset($link, 'utf8')) { processError($link); } 

    # Do query 
    // Build query 
    $query = 'SELECT `id` '; 
    $query .= 'FROM `eval` '; 
    $query .= 'WHERE `id` = ? '; 
    $query .= 'AND `name` = ? '; 
    $query .= 'AND `city` = ? '; 
    $query .= 'LIMIT 1 '; 
    // Prepare the statement 
    if (!$stmt = $link->prepare($query)) { processError($link); } 
    // Bind in form values to prevent sql injection 
    if (!$stmt->bind_param('iss', $id, $name, $city)) { processError($link); } 
    // Execute the query 
    if (!$stmt->execute()) { processError($link); } 
    // Store the result 
    $stmt->store_result(); 
    // Store the number of rows returned 
    $num_rows = $stmt->num_rows; 
    // Close the statement 
    $stmt->close(); 

    # Check if the record exists 
    if ($num_rows == 1) { 
     echo 'Record already exist...<br/>'; 
    } 
    // No record exists 
    else { 
     echo '<a href="NewUser.php"> New Sign Up </a>'; 
    } 
    } 
?> 

希望幫助你:-)