2013-05-09 63 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