2014-12-23 3 views
0

Как говорится в заголовке, я пытаюсь проверить через плагин проверки jquery, если значение для Patch_No существует. Я прочитал многие другие подобные темы, и именно так я понял код, но, похоже, он не работает, хотя ошибок нет. Я уверен, что DBconnection.php работает, поэтому я использую его в другом файле для ввода данных.Проверка проверки Jquery, если значение существует в базе данных

<?php 
include 'DBconnection.php'; 
$patch = $_REQUEST['patch']; 
$sql="SELECT * FROM champions WHERE Patch_No ='$patch'"; 
$conn->query($sql); 
$num = mysql_num_rows($sql); 
if($num>0){ 
    echo 'false'; 
} 
else{ 
    echo 'true'; 
} 
?> 

Здесь также проверочный код JQuery

<script> 
    $(document).ready(function(){ 
     $('#first_form').validate({ 
      rules: { 
       patch: { 
        required: true, 
        minlength: 4, 
        remote: { 
         url: "checkpatch.php", 
         type: "post" 
         } 
        } 
       }, 
      messages: { 
       patch: { 
        required: "Please enter patch version.", 
        remote: "This Patch already exists." 
        } 

       } 
     }); 
    }); 
</script> 

И последнее, но не менее фактическая форма в PHP

echo '<form id="first_form" action="index.php" method="POST" style="border: 0; margin: 0;">'; 
       echo '<input type="hidden" value="'.$formid.'" name="formid">'; 
       echo '<input type="text" name="patch" placeholder="PATCH e.g. 4.20" required autofocus><br/>'; 
       echo '<input placeholder="Number of Champions" value="1" type="number" name="champ_number" min="1" max="99" required><br/>'; 
       echo '<input type="submit" value="next">'; 
      echo '</form>'; 

EDIT DBconnection.php

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$db = "patches"; 

$conn = new mysqli($servername, $username, $password, $db); 
if($conn->connect_error){ 
    die("Connection failed: ". $conn->connect_error); 
} 
?> 
+0

Кстати, ваш код безопасности. См. API-интерфейсы PHP mysqli_/PDO и подготовленные операторы! – Strawberry

+0

Я изучаю mysql и php прямо сейчас, так что после того, как я закончил с функциональностью, я перейду к безопасности. – Higeath

+0

Настоятельно предлагаю вам изменить свои приоритеты! – Strawberry

ответ

0

попробовать так:

$sql="SELECT * FROM champions WHERE Patch_No ='".$patch."'"; 
$result = $conn->query($sql); 
$num = $result->num_rows; 
+0

по какой-то причине это сработало, вы могли бы мне это объяснить? – Higeath

+0

читайте это: http: //php.net/manual/en/mysqli-result.num-rows.php, даже если вы не получите, дайте мне знать. –

+0

и избегать использования mysql для использования PDO или mysqli, поскольку mysql устарел, и вы будете получать предупреждения, если вы включите функцию error_reporting(). –

0

Эти строки ужасно плохие. Вы хотите получать строку ... Используйте:

$sql="SELECT * FROM champions WHERE Patch_No ='$patch'"; 
$conn->query($sql); 
$num = mysql_num_rows($conn); 

Вы должны принести свой $conn, то есть ресурс, не $sql.

ПРИМЕЧАНИЯ

  • Не используйте функции MySQL, они являются устаревшими.

  • Избегайте инъекций sql, избегая переменных в вашем запросе или используя подготовленные операторы.

+0

я изменил источник до $ подключ ничего не происходит до сих пор, к сожалению – Higeath

+0

Изменить свой вопрос, и показать мне, что там в 'DBconnection.php' – vaso123

Смежные вопросы