Php 在Drupal7中以自定义形式显示数据库内容的自定义url

Php 在Drupal7中以自定义形式显示数据库内容的自定义url,php,forms,drupal,Php,Forms,Drupal,我在drupal 7中创建了自定义表单,当我试图检索自定义url中的数据时,数据保存在数据库中一个名为“person”的表中。数据显示在自定义url中,但加载表单页面时,“page not found”消息显示未获取该表单,如果在自定义url中检索数据的代码被注释,则我获取表单页面。 这是我使用的代码: <?php /** * @file * Provides a custom form, data are saved in database and can retrieve data

我在drupal 7中创建了自定义表单,当我试图检索自定义url中的数据时,数据保存在数据库中一个名为“person”的表中。数据显示在自定义url中,但加载表单页面时,“page not found”消息显示未获取该表单,如果在自定义url中检索数据的代码被注释,则我获取表单页面。 这是我使用的代码:

<?php
/**
 * @file
 * Provides a custom form, data are saved in database and can retrieve data in table format in custom url.
 */


//Implementation of hook_menu()
function form_test_menu() {
  $items['formtest'] = array(
    'title' => 'Form Test',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('form_test_form'),
    'access callback' => TRUE,
    );

    $items = array();
    $items['results'] = array( // change to the url you want
    'title' => 'results',
    'type' => MENU_CALLBACK,
    'page callback' => 'results',
    'access arguments' => array('access content'),
    );
return $items;
}

//function to describe field in the form
function form_test_form($form,&$form_submit) {
    $form['name'] = array(
    '#title' => t('name'),
    '#type' => 'textfield',
    '#size' => 20,
    '#maxlength' => 20,
    '#required' => TRUE,
    '#default_value' => 'Enter Your Name',//make this field required 
    );
    $form['address']['email'] = array(
    '#type' => 'textfield',
    '#title' => t('E-mail'),
    '#required' => TRUE,
    '#maxlength' => 255,
    ); 
    $form['price'] = array(
    '#type' => 'textfield', //you can find a list of available types in the form api
    '#title' => 'What is Your Price?',
    '#size' => 10,
    '#maxlength' => 10,
    '#required' => TRUE, //make this field required 
    );
    $form['attending'] = array(
    '#type' => 'radios',
    '#title' => t('Will you be attending?'),
    '#options' => array(
    '1'   => t('Yes'),
    '0' => t('No'),
    ),
    '#required' => TRUE,
    '#default_value' => isset($attending) ? $attending : NULL,
    );  

$form['submit'] = array(
    '#value' => 'Submit',
    '#type' => 'submit',
    );
    return $form;
}

//validation code for integer 
function form_test_form_validate($form, &$form_state) {
  if (!($form_state['values']['price'] > 0)){
    form_set_error('price', t('Price must be a positive number.'));
  }
}
//inserting data into database
drupal_write_record('person', $data);
function form_test_form_submit($form, &$form_state) {
  $id = db_insert('person')
    ->fields(array(
      'name' => $form_state['values']['name'],
      'email' => $form_state['values']['email'],
      'price' => $form_state['values']['price'],
      'attending' => $form_state['values']['attending'],
     // 'ios' => $form_state['values']['ios'],
  ))
  ->execute();
  drupal_set_message(t('data saved successfully.'));
}
//Retrieving data from database
function results() {
    print "CUSTOM TABLE CONTENT";
    print "<br /> ";
    print "<br /> ";
    $query = db_select('person', 'u');
    $query->fields('u', array('name'));  //mention the field that you want to display
    $query->fields('u', array('email')); 
    $query->fields('u', array('price')); 
    $query->fields('u', array('attending')); 
    $result = $query->execute();
        while($record = $result->fetchAssoc()) {  //while loop mention how the data want to display
            echo "<li>";
            print_r($record['name']);
            print " ";
            print_r($record['email']);
            print " ";
            print_r($record['price']);
            print " ";
            print_r($record['attending']);
            echo "</li>";
    }
}
$items=array();
此代码应位于主功能下
功能表测试菜单(){
代码应该是这样的

function form_test_menu() {
 $items = array();
没有其他修改它将起作用。

$items=array(); 此代码应位于主功能下 功能表测试菜单(){ 代码应该是这样的

function form_test_menu() {
 $items = array();
没有其他修改它将工作