2013-05-09 62 views
0

而我又一次,我不得不處理PHP和MySQL :)所以,我有一個MySQL表,並希望有「添加」功能。所以我可以很容易地從瀏覽器編輯我的表格。到目前爲止,我已經完成了幾乎所有的事情,但問題是從我的表(或ID)組成的「數字」變量不會_POST到其他頁面。它不會直接從textarea中輸出,或者即使我把它放在一個隱藏的字段中(好吧,剛剛瞭解這幾乎是一樣的)。唯一的int變量將不會_POST

讓我告訴你一些例子:

$a = mysql_query("SELECT number FROM peoples ORDER BY number DESC LIMIT 1"); 
    $number_a = mysql_fetch_assoc($a); 
    $number = $number_a['number']+1;` 

這就是我得到了這個變量。

echo '<input name="id" type="hidden" value="'.$number.'" />'; 

這就是我通過它的方式。

echo $number = mysql_escape_string($_POST['id']); 

這就是我試圖得到它在其他PHP文件。

從其他textareas通過就好了。

按要求提供的完整代碼。 ADD.PHP:

<?php 
$dblocation = "127.0.0.1"; 
    $dbname = "tvp"; 
    $dbuser = "root"; 
    $dbpasswd = ""; 
    $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); 
    if (!$dbcnx) 
    { 
     echo("<P>В настоящий момент сервер базы данных не доступен, поэтому 
       корректное отображение страницы невозможно.</P>"); 
     exit(); 
    } 
    if ([email protected]_select_db($dbname, $dbcnx)) 
    { 
     echo("<P>В настоящий момент база данных не доступна, поэтому 
       корректное отображение страницы невозможно.</P>"); 
     exit(); 
    } 

    echo '<form name="editform" action="adder.php" method="POST">'; 
    echo '<table>'; 
    echo '<tr>'; 
    echo '<td>Номер</td>'; 
    $a = mysql_query("SELECT number FROM peoples ORDER BY number DESC LIMIT 1"); 
    $number_a = mysql_fetch_assoc($a); 
    $number = $number_a['number']+1; 


    echo $number; 
    var_dump($number); 
    print_r($number); 
    echo '<td><textarea name="number" >'.$number.'</textarea></td>'; 
    echo '<input name="id" type="hidden" value="'.$number.'" />'; 
    echo '</tr>'; 
    echo '<tr>'; 
    echo '<td>Имя</td>'; 
    echo '<td><textarea name="givenName">'.$man['givenName'].'</textarea></td>'; 
    echo '</tr>'; 
    echo '<tr>'; 
    echo '<td>Инициалы</td>'; 
    echo '<td><textarea name="middleInitial">'.$man['middleInitial'].'</textarea></td>'; 
    echo '</tr>'; 
    echo '<tr>'; 
    echo '<td>Фамилия</td>'; 
    echo '<td><textarea name="surname">'.$man['surname'].'</textarea></td>'; 
    echo '</tr>'; 
echo '<tr>'; 
    echo '<td>Пол</td>'; 


     echo '<td> <input type="radio" name="gender" value=1 >Man<Br> 
     <input type="radio" name="browser" value=0>Woman<Br> </td>'; 
     echo '</tr>'; 



    echo '<tr>'; 
    echo '<td>Город</td>'; 
    echo '<td><textarea name="city">'.$man['city'].'</textarea></td>'; 
    echo '</tr>';  
    echo '<input name="id" type="hidden" value="'.$id.'" />'; 
    echo '<input name="statee" type="hidden" value="'.$man['state'].'" />'; 
    echo '<tr>'; 
    echo '<td>Штат</td>'; 

    ?> 
    <td><select size="3" name="state"> 
    <option disabled>Выберите штат</option> 
    <option value="AL" 
    <?php 
    if($man['state']=="AL"){ 
    echo "selected"; 
    }?> 
    >Alabama 
    </option> 
    //...and so on... 
    </select></td> 
<?php 
    echo '</tr>';  

     echo '<tr>'; 
    echo '<td>Телефон</td>'; 
    echo '<td><textarea name="telephone">'.$man['telephone'].'</textarea></td>'; 
    echo '</tr>'; 

    echo '<tr>'; 
    echo '<td>E-mail</td>'; 
    echo '<td><textarea name="emailAddress">'.$man['emailAddress'].'</textarea></td>'; 
    echo '</tr>'; 

     echo '<tr>'; 
    echo '<td>Дата</td>'; 
    echo '<td><textarea name="birthday">'.$man['birthday'].'</textarea></td>'; 
    echo '</tr>'; 

    echo '<tr>'; 
    echo '<td>Место работы</td>'; 
    echo '<td><textarea name="occupation">'.$man['occupation'].'</textarea></td>'; 
    echo '</tr>'; 
     echo '<tr>'; 
    echo '<td>Компания</td>'; 
    echo '<td><textarea name="company">'.$man['company'].'</textarea></td>'; 
    echo '</tr>'; 

    echo '<tr>'; 
    echo '<td>Вес</td>'; 
    echo '<td><textarea name="weight">'.$man['weight'].'</textarea></td>'; 
    echo '</tr>'; 

    echo '<tr>'; 
    echo '<td>Рост</td>'; 
    echo '<td><textarea name="length">'.$man['length'].'</textarea></td>'; 
    echo '</tr>'; 

     echo '<tr>'; 
    echo '<td>Адрес</td>'; 
    echo '<td><textarea name="streetAddress">'.$man['streetAddress'].'</textarea></td>'; 
    echo '</tr>'; 

    echo '<tr>'; 
    echo '<td>Почтовый индекс</td>'; 
    echo '<td><textarea name="zipCode">'.$man['zipCode'].'</textarea></td>'; 
    echo '</tr>'; 

    echo '<tr>'; 
    echo '<td>Страна</td>'; 
    echo '<td><textarea name="country">'.$man['country'].'</textarea></td>'; 
    echo '</tr>'; 

    echo '<tr>'; 
    echo '<td><input type="submit" value="Сохранить"></td>'; 
    echo '<td><button type="button" onClick="history.back();">Отменить</button></td>'; 
    echo '</tr>'; 
    echo '</table>'; 
    echo '</form>'; 

    ?> 

而且ADDER.PHP:

<?php 
$dblocation = "127.0.0.1"; 
    $dbname = "tvp"; 
    $dbuser = "root"; 
    $dbpasswd = ""; 
    $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd); 
    if (!$dbcnx) 
    { 
     echo("<P>В настоящий момент сервер базы данных не доступен, поэтому 
       корректное отображение страницы невозможно.</P>"); 
     exit(); 
    } 
    if ([email protected]_select_db($dbname, $dbcnx)) 
    { 
     echo("<P>В настоящий момент база данных не доступна, поэтому 
       корректное отображение страницы невозможно.</P>"); 
     exit(); 
    } 

$number=$_POST["id"]; echo '<br>'; 
var_dump($_POST['id']); 
print_r($POST['id']); 
echo $number; 
echo $givenName = mysql_escape_string($_POST['givenName']); echo '<br>'; 
echo $middleInitial = mysql_escape_string($_POST['middleInitial']); echo '<br>'; 
echo $surname = mysql_escape_string($_POST['surname']); echo '<br>'; 
echo $gender = $_POST['gender'] ; echo '<br>'; 
echo $city = mysql_escape_string($_POST['city']); echo '<br>'; 
echo $state = mysql_escape_string($_POST['state']);echo '<br>'; 
echo $emailAddress = mysql_escape_string($_POST['emailAddress']); echo '<br>'; 
echo $telephone = mysql_escape_string($_POST['telephone']); echo '<br>'; 
echo $birthday = mysql_escape_string($_POST['birthday']); echo '<br>'; 
echo $occupation = mysql_escape_string($_POST['occupation']);echo '<br>'; 
echo $company = mysql_escape_string($_POST['company']); echo '<br>'; 
echo $weight = mysql_escape_string($_POST['weight']); echo '<br>'; 
echo $length = mysql_escape_string($_POST['length']); echo '<br>'; 
echo $streetAddress = mysql_escape_string($_POST['streetAddress']); echo '<br>'; 
echo $zipCode = mysql_escape_string($_POST['zipCode']); echo '<br>'; 
echo $country = mysql_escape_string($_POST['country']); echo '<br>'; 



    $query = "INSERT INTO peoples (number,givenName, middleInitial, surname, gender, city, state, emailAddress, telephone, birthday, occupation, company, weight, length, streetAddress, zipCode, country) VALUES ('".$number."', '".$givenName."', '".$middleInitial."', '".$surname."', '".$gender."', '".$city."', '".$state."', '".$emailAddress."', '".$telephone."', '".$birthday."', '".$occupation."', '".$company."', '".$weight."', '".$length."', '".$streetAddress."', '".$zipCode."', '".$country."');"; 
    mysql_query ($query); 

    ?> 

提前感謝!

+0

'print_r($ _ POST)'是什麼意思? – mario 2013-05-09 03:45:11

+0

嗯,我猜沒什麼 – 2013-05-09 03:53:24

回答

0

的問題時,是在窗體的底部

這裏

echo '<td><textarea name="city">'.$man['city'].'</textarea></td>'; 
    echo '</tr>';  
    echo '<input name="id" type="hidden" value="'.$id.'" />';  <------- HERE 
    echo '<input name="statee" type="hidden" value="'.$man['state'].'" />'; 
    echo '<tr>'; 
    echo '<td>Штат</td>'; 

我假設你從未分配的重新分配的隱藏字段id $ id來編號,因此,在表單頂部,您將隱藏字段ID分配給「$ number」,但在表單底部將隱藏字段ID分配給$ id。覆蓋表格頂部的原始ID字段

0

你是echo ing!

echo $number = mysql_escape_string($_POST['id']); 

變化與:

$number = mysql_escape_string($_POST['id']); 
echo $number; 

如果你想echo它。

+0

好吧,是的,但這只是測試和問題仍然在這裏 – 2013-05-09 03:44:13

+0

好吧。現在,通過查看源代碼,您可以獲得有關''的'$ number'中的內容的信息,以及您在'var_dump($ _ POST ['id'])''中得到的是什麼? – 2013-05-09 03:45:12

+0

var_dump說字符串(0)「」 – 2013-05-09 03:48:26

1

第一件事第一。確保你將數字回顯到屏幕上。你寫的代碼看起來是正確的,但它只是一個片段。

添加var_dump($ number)後,您分配您的號碼,看看它是否顯示數字。如果它不是那麼那裏有你的SQL

+0

它顯示int(10001),當我剛分配它。但它以某種方式發佈空字符串 – 2013-05-09 03:54:41