2013-04-05 3 views
0

여러 필드가있는 여러 행의 데이터베이스가 있습니다.양식 및 PHP를 사용하여 데이터베이스에서 여러 필드 가져 오기

드롭 다운 목록이 포함 된 양식이 있습니다. 드롭 다운 목록에는 데이터베이스의 각 행에 대한 데이터베이스 필드 (field_name) 중 하나가 표시됩니다.

사용자가 원하는 항목이 SUBMIT에 도달하면 해당 값이 results.php 페이지에 전달되고 $ _POST를 통해 사용할 수 있습니다.

이 모든 기능이 현재 작동합니다.

드롭 다운 메뉴에서 선택한 항목과 함께 선택한 필드 ("field_name"뿐만 아니라)의 행에 해당하는 나머지 행의 필드를 데이터베이스에서 보내고 싶습니다.

예를 들어 "name", "date"및 "age"라는 필드가있는 행이있는 데이터베이스가있는 경우 "name"이 드롭 다운 목록에 나타납니다. 일단 제출되면 특정 이름의 "날짜"와 "나이"를 results.php에 전달하여 해당 페이지에서 사용하십시오.

<html> 
<head> 
<title>Drop Down Test</title> 
</head> 

<body style="font-family: verdana; font-size: 11px;"> 

<?php 

//Variables for connecting to database. 
$hostname = "abcd"; 
$username = "abcd"; 
$dbname = "abcd"; 
$password = "abcd"; 
$usertable = "abcd"; 

//Connecting to database 
$connection = mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database!"); 
$db = mysql_select_db($dbname); 

$query = "SELECT * FROM abcd"; 
$result = mysql_query($query) or die(mysql_error()); 

?> 

<h2>Drop Down Test Form</h2> 

<p>Please fill out the form below and click submit.</p> 

<form action="results.php" method="POST"> 

    <p>Drop Down Test: 
     <select name='event'> 
     <!-- Drop down --> 
     <?php 
     while($row = mysql_fetch_array($result)) 
    { 
     echo '<option>' . $row['field_name']. '</option>'; 
      } 
     ?> 
    </select> 

    <p><input type="submit" value="Submit"><p> 

</form> 

+0

경고! http://www.php.net/manual/en/function.mysql-connect.php. [PHP 올바른 방법]을 배우십시오 (http://www.phptherightway.com/). – elclanrs

+0

이 결과는 result.php에서 얻은 것입니다 : $ query = "abcd의 SELECT * from field_name = '$ _ POST [이벤트]';" $ result = mysql_query ($ query) 또는 die (mysql_error ());' '$ row = mysql_fetch_row ($ result); ' 'echo "id :". $ 행 [0]. "
"; ' 'echo "field_name :". $ 행 [1]. "
"; ' '등 ... ' – user2247238

+0

고마워! 이제는 "잘못된"방식으로 작업 했으므로 올바른 방식으로 작동하도록 노력할 것입니다. – user2247238

답변

0

이 (results.php에서) 트릭 않았다 :

<?php 

$hostname = "****"; 
$username = "****"; 
$dbname = "****"; 
$password = "****"; 
$usertable = "abcd"; 

$connection = mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database!"); 
$db = mysql_select_db($dbname); 

//it was this SQL query that was the key, namely the WHERE statement 
$query = "SELECT * from abcd where field_name='$_POST[event]'"; 

$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_row($result); 

echo "id: " . $row[0] . "<br/>"; 
echo "field_name: " . $row[1] . "<br/>"; 
//etc... 

//try to throw the individual results into variables 
$variable = $row[1]; 

echo "Check to see that the variable was passed a value: " . $variable . "<br />"; 
echo "Check to see that form selection carried over: " . $_POST['event'] . "<br />"; 

?> 

을 나는이 일을의 "최신 상태"방법이 아니다 깨닫고 지금은 모든 것을 얻을 것을 시도 할 것이다 "근대화 된".

모든 도움에 감사드립니다!

0

이처럼 옵션에 value을 넣어해야합니다

echo '<option value = "'.$row['field_name'].'" name = "">' . $row['field_name']. '</option>'; 

은 다음 $_POST['event'];

UPDATE에 의해 액세스 할 수 있습니다

선택에서 모든 값을 가져 오는 경우 $_SESSION 변수를 사용하여 다른 php.file에 전달할 수 있습니다.

+0

'$ _POST [ 'event'];'는 results.php 페이지에서 작동합니다 - 드롭 다운 선택 값을받습니다. 선택한 값이있는 행과 관련된 나머지 값을 전달하고 싶습니다. – user2247238

0
// First of all, I advice you to connect via PDO, or at least msqli, because mysql_query is depreciated. 
    // To connect with database you need: 
    DEFINE("USER", "root"); 
    DEFINE("DBNAME", "test"); 
    DEFINE("DBPASSWORD", ""); 
    DEFINE("DBHOST", "localhost"); 
    $dbh = new PDO('mysql:host='.DBHOST.';dbname='.DBNAME,USER,DBPASSWORD,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 


    //The query: 
    $sth = $dbh->prepare("SELECT name,age,date FROM test"); 
    $sth->execute(); 

    //the drop down form 
    echo '<form action="results.php" method="POST"> 
    <select name="event"><option value=0></option>'; 
    while ($result = $sth->fetch(PDO::FETCH_ASSOC)) { extract($result); 
    echo '<option value="date:'.$date.'-age:'.$age.'"/>'.$name.'</option>'; 
    echo '</select> 
     <p><input type="submit" value="Submit"><p> 
    </form>'; 
    } 

//the event in the records.php by clicking submit 
if(isset($_POST['event'])){ 
echo 'name:',$name'-date:',$date,'-$age',$age; 
} 
+0

고마워요! 이제는 "잘못된"방식으로 작업 했으므로 올바른 방식으로 작동하도록 노력할 것입니다. – user2247238

관련 문제