MySQL запрос возвращает пустой результат на String - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть таблица с ваучерами для системы бронирования.И когда я пытаюсь выбрать строку по строке кода, он возвращает мне пустой результат.Но я просто Ctrl + C строка, которую я хочу выбрать, что действительно странно.

Здесь я копирую строку кода, чтобы выбрать ее после

И послеЯ пытаюсь выбрать его с помощью:

SELECT * FROM `vouchers` WHERE code = "S723-452Q-3486"

И он возвращает мне пустой результат

Здесь он возвращает мне пустой результат

Но!Когда я редактирую строку с пробелом после строки кода и удаляю ее сразу после того, как она начинает ВЫБРАТЬ ее.

Добавить пробел после кода - сохранить его и удалить после

Возвращает результат SELECT

Так что я действительно не знаю, почему это так, но, вероятно, когда я покажу вам, как я добавил эти строки в БД, это может помочь вамчтобы понять.

Я поместил несколько строк в <textarea id="codes" name="codes" rows="4" cols="35" required></textarea> и после него в PHP разделяю каждую строку с

`

//var_dump($_POST);
$name = $_POST['name'];
$discount = $_POST['discount'];
$startTime = $_POST['startTime'];
$endTime = $_POST['endTime'];
$timeAvailable = $startTime."'".$endTime;

$max_times = $_POST['max_times'];
$expDate = $_POST['expDate'];
$ppl_amount = $_POST['ppl_amount'];
$days = "";

if ($_POST['Monday']) {
    $days=$days."Monday'";
    # code...
}
if ($_POST['Tuesday']) {
    $days=$days."Tuesday'";
    # code...
}
if ($_POST['Wednesday']) {
    $days=$days."Wednesday'";
    # code...
}
if ($_POST['Thursday']) {
    $days=$days."Thursday'";
    # code...
}
if ($_POST['Friday']) {
    $days=$days."Friday'";
    # code...
}
if ($_POST['Saturday']) {
    $days=$days."Saturday'";
    # code...
}
if ($_POST['Sunday']) {
    $days=$days."Sunday'";
    # code...
}
$days = rtrim($days, "'");
//echo $days;
$codes = "";

if (isset($_POST['codes'])) {
    $codes = explode("\n", $_POST["codes"]);
}


foreach ($codes as $code) {
    $voucherQuery = 'INSERT INTO vouchers (name, discount, daysAvailable, timeAvailable, code, max_times, used, expiration_date, ppl_amount)
                    VALUES ("'.$name.'", "'.$discount.'", "'.$days.'", "'.$timeAvailable.'", "'.$code.'", "'.$max_times.'", 0, "'.$expDate.'", "'.$ppl_amount.'")';
    $result = $db_handle->getResult($voucherQuery); }

`

Так что, когда я добавилв БД все выглядит нормально, но когда я пытаюсь использовать один ваучер, он показывает ошибку, потому что SELECT, который я использую в коде PHP, возвращает пустой результат, затем я попытался напрямую ввести SQL-запрос в MySQL и получил тот же результат.

Я копирую коды из таблицы Excel и Ctrl + V в текстовую область.

1 Ответ

0 голосов
/ 16 декабря 2018
" " (ASCII 32 (0x20)), an ordinary space.
"\t" (ASCII 9 (0x09)), a tab.
"\n" (ASCII 10 (0x0A)), a new line (line feed).
"\r" (ASCII 13 (0x0D)), a carriage return.
"\0" (ASCII 0 (0x00)), the NUL-byte.
"\x0B" (ASCII 11 (0x0B)), a vertical tab.

Ссылка Обрезка PHP

Возврат каретки скрыт внутри ячейки Excel, поэтому при копировании он идет вместе с ней или даже при импорте CSV.Есть множество способов справиться с этим, но я использую PHP trim .Он очистит все ненужные символы и пробелы.

if (isset($_POST['codes'])) { 
$codes = explode("\n", $_POST["codes"]);}

Вместо разнесения используйте trim ().

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