Вставить / обновить несколько строк в MySQL с помощью PHP и Jquery - PullRequest
0 голосов
/ 26 ноября 2011

У меня есть таблица, которая заполняется запросом MS Sql из одной базы данных, которая дает мне значения от посещений пациентов и доход, полученный от этих посещений. У меня есть флажок, который заполняет соответствующее поле ввода текста, показывая, что посещение было оплачено. У меня вопрос, как я могу добавить / обновить несколько строк, используя MySQL и PHP. Есть две разные базы данных (MySQL и MS SQL).

Таблица HTML.

<table>
<thead>
<tr>
<th>First Name / Last Name</th>
<th>Alias</th>
<th>Status</th>
<th class="amountDue">$00,000.00</th>
<th colspan="2" class="appliedAmount">$00,000.00<?th>
<th class="variance">$00,000.00</th>
<th>Complete</th>
</tr>
<tr>
<td><td>
<td><td>
<td><?php echo $patRow['VisitNum']; ?></td>
<td><?php echo $patRow['VisitName']; ?></td>
<td><?php echo $patRow['AmountDue']; ?></td>
<td><input type="checkbox"></td>
<td><input type="text" name="Amount[]"></td>
<!-- Invoice Populated from Database --!>
<td><select class="invoiceNumber">
    <option>4565</option>
    </select>
</tr>

</tr>
</table>

Теперь PHP.

<?php
require('../assets/dbconnect.php');
$size_array = count($_POST['Amount']);
for ($i=0; $i<$size_array; $i++){
$query = 'INSERT INTO webportal.test (id, PSID, SysPatVisitID, AmountDue, Amount, InvoiceNum)'.
" VALUES ('', '".mysql_real_escape_string($_POST['PSID'][$i])."', 
'".mysql_real_escape_string($_POST['SysPatVisitID'][$i])."'', 
'".mysql_real_escape_string($_POST['AmountDue'][$i])."'', 
'".mysql_real_escape_string($_POST['Amount'][$i])."'', 
'".mysql_real_escape_string($_POST['InvoiceNum'][$i])."')
ON DUPLICATE KEY UPDATE content=VALUES(
'".mysql_real_escape_string($_POST['AmountDue'][$i])."'',
'".mysql_real_escape_string($_POST['Amount'][$i])."'',
'".mysql_real_escape_string($_POST['InvoiceNum'][$i])."''
";

$result = mysql_query($query) or die (mysql_error());
}

Так что это то, что у меня есть, и когда я пытаюсь вставить в свою базу данных, он вставляет только первую запись, и я получаю ошибку. В конце концов я хочу передать эти переменные с помощью Jquery, но мне просто нужно, чтобы сначала заработал PHP.

1 Ответ

0 голосов
/ 26 ноября 2011
$query = 'INSERT INTO webportal.test (PSID, SysPatVisitID, AmountDue, Amount, InvoiceNum)'.
" VALUES ('".mysql_real_escape_string($_POST['PSID'][$i])."', 
'".mysql_real_escape_string($_POST['SysPatVisitID'][$i])."', 
'".mysql_real_escape_string($_POST['AmountDue'][$i])."', 
'".mysql_real_escape_string($_POST['Amount'][$i])."', 
'".mysql_real_escape_string($_POST['InvoiceNum'][$i]).")
ON DUPLICATE KEY UPDATE content=VALUES(
'".mysql_real_escape_string($_POST['AmountDue'][$i])."',
'".mysql_real_escape_string($_POST['Amount'][$i])."',
'".mysql_real_escape_string($_POST['InvoiceNum'][$i])."'
";
  • Вы не соответствуете ' правильно. '". <stuff> ."''. Вам нужен только один заключительный тик.
  • Вы забыли закрывающую скобку для VALUES.
  • Если вы хотите, чтобы ваш id был автоматически увеличен СУБД, вообще не включайте его в ваш запрос.

Кроме того, сообщения об ошибках существуют по причине. Изучение их понимания значительно расширит ваши возможности отладки. Если вы не понимаете ошибку, просто найдите ее на MySQL.com .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...