2013-09-24 3 views
-1

Я пробовал практически все, но я не могу заставить этот простой запрос обновления работать.Простой запрос на обновление с MySQL

Массив показывает:

Array ([pSelect] => 102 [budget] => 44 [submit] => submit) 

Так что можно сделать вывод, что это получить идентификатор и получает значение из поля ввода budget.

<form action="test.php" method="post" action="test.php"> 
    <select name = 'pSelect' id = 'pSelect'>  
    <?php 
$result = mysql_query 
("SELECT ID, Project, Projectnummer, Klant, Budget 
    FROM tblproject 
    WHERE Status = '1' 
    ORDER BY Klant ASC 
"); 
while($row1 = mysql_fetch_array($result)) 
{ 
    $pID = $row1['ID']; 
    echo "<option value=\"" . $row1['ID'] . "\""; 
    if (isset($_POST['pSelect']) && $row1['ID'] == $_POST['pSelect']) 
    { 
    echo " selected='selected'"; 
    } 
    echo ">" . $row1['Klant'] ." ". $row1['Project'] ." ". $row1['Projectnummer'] . "</option>"; 
     echo "<br />"; 
} 
?> 
    </select> 
    <input type="text" name="budget" /> 

<?php 

if (isset($_POST['submit'])) 
{ 
    $ID = $_POST['pSelect']; 
    $budget = $_POST['budget']; 
    mysql_query 
    (" UPDATE tblproject SET Budget = '$budget',WHERE ID = '$ID'"); 
} 
print_r($_POST); 
?> 
<input type="submit" name="submit" value="submit" /> 
</form> 
+1

Там не должен быть запятой после 'бюджета =«$ бюджета»,' – Steven

+0

также нет необходимости в двойное действие в виде теге – Dexa

+0

Моих гош он работает, провел так многочасовый кусок этой паршивой запятой !!! = | tnx ребята. – DragonChaser

ответ

0

Как отметил Стивен, у вас есть странствующий запятой в конце Budget = '$budget',

И пожалуйста, пожалуйста, пожалуйста, ... если вы не собираетесь использовать подготовленные заявления/параметризованные запросы, вы могли бы хотя бы использовать mysql_real_escape_stri ng() по всем параметрам в ваших запросах? например:

$query = sprintf(" 
    UPDATE tblproject SET 
    Budget = '%s' 
    WHERE ID = '%s'", 
    mysql_real_escape_string($budget), 
    mysql_real_escape_string($ID)); 
    ); 
mysql_query($query); 

Альтернатива - это кто-то, вызывающий проблемы с SQL-инъекциями в вашем приложении в какой-то момент.

+0

Tnx, выбранный как лучший ответ, я использую real_escape_string, но этот фрагмент кода является прототипом, частью более крупной системы. Я думаю, что программа рассчитана на 3000 строк php, bummer я провел целый день из-за запятой, ха-ха-ха, я чувствую себя взволнованно. – DragonChaser

1

попробовать это

mysql_query("UPDATE tblproject SET Budget = '".$budget."' WHERE ID = '".$ID."' "); 
+0

i ussualy делаю это, но у меня не было вариантов, проблема решена, не могу нажать на steven, чтобы решить эту тему, и я не могу ответить сам ... ?? это очень расстраивает. – DragonChaser

0

попробовать это

UPDATE tblproject SET Budget = '".$budget."' WHERE ID = '".$ID."' 
0

Попробуйте UPDATE запрос:

mysql_query ("UPDATE tblproject SET Budget = '".$budget."' WHERE ID = '".$ID."'"); 
Смежные вопросы