Невозможно получить простую форму PHP для добавления / обновления таблицы MySQL - PullRequest
0 голосов
/ 10 июня 2018

У меня есть таблица MySQL с тремя столбцами;пользователь, продукт, адрес.Я пытаюсь заставить мою форму либо добавить в таблицу НОВЫЙ РЯД ДАННЫХ ИЛИ ОБНОВИТЬ ранее существующую строку.Мои условия для обновления, если пользователь и продукт уже существуют, просто измените адрес.НО ЕСЛИ ни существует (пользователь и продукт), либо просто пользователь, то добавьте информацию о новом пользователе, продукте и адресе.

Форма использует идентификатор клиента, раскрывающийся список для продукта и текстовое поле дляновый адрес, однако моя команда SQL для обновления, кажется, не работает на этой странице, и я не могу найти ошибку ... Вот моя попытка кода MySQL:

EDITED TESTED CODE - Все еще не работает

mysqli_select_db("wp_newaddress", $con);

if(isset($_POST['submit'])) {
$id = $_POST['$userid'];
$product = $_POST['sku'];
$address = $_POST['address'];

$sql = "UPDATE wp_newaddress SET address='address' WHERE user='$userid' AND product='sku'";

echo "<p><h5>Change address:</h5>";

$loop = new WP_Query( $args );
echo '<br><select name="sku">';
    echo '<option>-- Select product--</option>';
while ( $loop->have_posts() ) : $loop->the_post();
  global $product;
    echo '<option value=' . $product->get_sku() . '>' . $product->get_sku() . ' </option>';
  endwhile;
echo '</select>';
echo '<br><input type="text" value="Insert new address here" id="address" size="40" />';
echo '<br><button type="submit" name="submit">Change address</button>';
$retval = mysqli_query( $sql, $con );
if(! $retval )
{
  die('Could not update data: ' . mysqli_error());
}
echo "Updated address successfully\n";

Ответы [ 2 ]

0 голосов
/ 10 июня 2018
$sql = mysqli_query("UPDATE wp_newaddress SET address='address' WHERE user='$userid' AND product='sku'");

Этот код выполняет запрос.

Для успешных запросов SELECT, SHOW, DESCRIBE или EXPLAIN он возвращает объект mysqli_result.Для других успешных запросов он вернет TRUE.FALSE при ошибке

$ sql содержит вышеуказанные возможные возвращаемые значения.

Таким образом, при попытке выполнить запрос второй раз в строке

$retval = mysqli_query( $sql, $con );

Itэто не выполнение оператора sql, а возвращаемое значение.

Например: если возвращение первого mysqli_query() равно FALSE, то ваш второй mysqli_query('FALSE', $con)

, чтобы исправить его, вынужно будет сделать

$sql = "UPDATE wp_newaddress SET address='$address' WHERE user='$userid' AND product='sku'";
0 голосов
/ 10 июня 2018

Использование mysqli_query: mysqli_query(connection,query,resultmode);.См. документацию

Вы должны переключить $ sql и $ con в $retval = mysqli_query( $sql, $con );
По моему мнению, вы также должны определить $ sql как строку.

$sql = "UPDATE wp_newaddress SET address='address' WHERE user='$userid' AND product='sku'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...