2014-01-28 3 views
-3

Я новичок в PHP, и я хотел бы знать, как запрашивать таблицу из базы данных на основе идентификатора.Запросить таблицу на основе ID

Я создаю панель поиска, где пользователи могут искать в базе данных данные о сотрудниках на основе их идентификатора (идентификатора, являющегося поисковым запросом). Затем скрипт извлекает результаты из таблицы на основе идентификатора.

Код:

<form action="results.php" method="get"> 
     Employee ID: <input type="text" name="name"><input type="submit"> 
    </form> 
    <?php 


// connect to the mysql database server 
    $db = new PDO('mysql:host=localhost:3306;dbname=db_test14;charset=utf8', 'root', 'password'); 

// Prepare the statement (the basic outline of your query) 
    $st = $db->prepare('SELECT * from techsols_employee WHERE id = ?'); 

// Actually execute the query, putting in your id 
    $st->execute(array($employee_id)); 

// Get the actual employee details out of the result 
    $employee = $st->fetch(); 
    ?> 
+0

Для ваших нужд вам понадобятся основные функции PHP. См .: http://www.php.net/manual/de/book.mysql.php –

+1

Рамка представляет собой кучу предварительно написанного кода, который вы можете использовать как есть. Это не волшебство, и это не то, что вы не можете сделать сами. – deceze

+0

Изменил тему моего вопроса. – Jeiman

ответ

0

Это, наконец, сводится к тому, насколько сложным и каковы ваши потребности. Рамки также являются php, но построены таким образом, что улучшат скорость разработки с помощью многих повседневных функций, встроенных в них. Поскольку вы упомянули, что являетесь новичком в PHP, я бы порекомендовал вам сначала получить некоторый регулярный опыт работы с PHP, прежде чем переходить на рамки, поскольку они, как правило, усложняются для новичков. Лично я нашел codeignign более легким для изучения с точки зрения новичков.

Однако ваша работа может быть выполнена из базового php (базовым я имею в виду обычный php без использования фреймворка). В конечном итоге это зависит от того, насколько вы знаете в php, в рамках, сложности того, что вы делаете и т.д.

К сожалению, правильного ответа нет. Моя рекомендация идет с базовым php, так как вы начинаете. Если вы каким-то образом справитесь с работой с фреймворком, вы можете не узнать фактические функциональные возможности php, используемые в рамках.

1

ли мне нужно использовать рамки какой-то

No. Ответ на этот вопрос всегда «нет».

Рамки могут сделать некоторые вещи проще, потому что у них есть куча кода, написанная для вас, так что вам не нужно писать ее самостоятельно.

Рамки могут сделать некоторые вещи сложнее, потому что у них есть куча кода, написанного для вас уже, и это может быть не совсем так, как вам нужно.

всегда написать собственный код с нуля.

(Независимо от того, является ли это хорошей идеей, зависит от контекста и обычно это вопрос мнения).

1

Это, безусловно, может быть достигнуто с помощью встроенных функций PHP. Несмотря на то, что какие-либо учебники, которые вы найдете в Интернете, не используют никаких функций mysql_* - они небезопасны и устарели. Вместо этого используйте mysqli или PDO.

Я приведу вам пример. Предположим, у вас есть таблица со следующими столбцами:

id employee_name employee_address 

у вас есть переменная PHP с идентификатором сотрудника, хранящегося в нем: $employee_id. Использование PDO вы можете получить подробную информацию работника следующим образом:

// connect to the mysql database server 
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password'); 

// Prepare the statement (the basic outline of your query) 
$st = $db->prepare('SELECT * from employees WHERE id = ?'); 

// Actually execute the query, putting in your id 
$st->execute(array($employee_id)); 

// Get the actual employee details out of the result 
$employee = $st->fetch(); 

Подготовленные заявления полезны с наступающими любые данные из unsanitised источников, т.е. от пользователей, так как они делают фильтрацию, и т.д., чтобы убедиться, что вы не рискуете SQL-инъекций.

UPDATE:

Что-то вроде этого должны работы, но это не тестировалась. В основном есть форма и обработчик в том же файле (не самая лучшая практика, но в этом маленьком примере это прекрасно). Если форма была отправлена, выполните поиск и покажите некоторые детали. В противном случае отобразите форму.

<?php 

    //if the form's been sent, the "name" index will be in $_POST 
    if(isset($_POST['name'])) { 
     // connect to the mysql database server 
      $db = new PDO('mysql:host=localhost:3306;dbname=db_test14;charset=utf8', 'root', 'password'); 

     // Prepare the statement (the basic outline of your query) 
      $st = $db->prepare('SELECT * from techsols_employee WHERE id = ?'); 

     // Actually execute the query, putting in your id 
      $st->execute(array($employee_id)); 

     // Get the actual employee details out of the result (as associative array) 
      $employee = $st->fetch(PDO::FETCH_ASSOC); 

      echo "Employee Details: " . $employee['name'] . ", " . $employee['address']; 
    } else { 
    // otherwise, show the form 
    // I've changed the action to the set it to the php file that shows the form. 
    ?> 
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> 
     Employee ID: <input type="text" name="name"><input type="submit"> 
    </form> 
<?php } ?> 

Вы можете разбить это на два файла: form.html и results.php, то есть PHP файл редирект form.html, если ничего не было отправлено по почте, используя следующие вместо кода отображения формы там :

header('Location: form.html'); 
+0

Я вижу ОК. Я напишу код и покажу его вам, поскольку я не уверен, как связать панель поиска с PHP-скриптом. – Jeiman

+0

Я обновил свой вопрос с помощью своего кода. но я просто застрял в момент связывания php-скрипта с формой. – Jeiman

+0

См. Мое обновление выше – n00dle

0

Основные функции будут достаточными, однако это зависит от вашего определения «базовый».

Это зависит от того, какой механизм базы данных вы используете. Если это Mongo, то MongoClient, если это MySql, то MySQLi или PDO.

Не забывайте нормализовать свою базу данных!

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