У меня неоднозначная проблема, когда я обращаюсь к данным, которые ничего не могут показать, это трудно объяснить, может быть, с помощью этой картинки можно описать их все у меня есть данные в базе данных
//PLU = 1001151100006 its show the data
//PLU = 1002206200009 its not show the data
$plu = cekget('plu');
$sql = "select Long_Description from item_master where plu = '$plu'";
$datas = array();
$result = sqlsrv_query( $conn, $sql );
if ($result){
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC) ) {
extract($row);
$datas[] = array("Long_Description" => $Long_Description);
}
}
$json = array("status" => 1, "respone" => $datas);
echo json_encode($json);
данные PLU = 1002206200009 должны отображаться Маленькая черная сумка-ведро SSA Abigail но это не может появиться, и неоднозначные моменты - когда слово Чернить удаляется, данные появляются
вот как я пытаюсь получить доступ к данным PLU = 1001151100006, и они появляются

и таким же образом я пытаюсь получить доступ к данным PLU = 1002206200009, его исчезают

пожалуйста, кто-нибудь, кто поможет мне решить эту проблему?






Убедитесь, что в столбце с PLU = 1002206200009 нет места.
UPDATE {your_table} SET PLU=TRIM(plu);
Сообщите мне, если вы по-прежнему не можете решить эту проблему
С Уважением
Не могли бы вы попробовать var_dump вашего запроса $sql = "select Long_Description from item_master where plu = '$plu';, а затем вставить его в свой sql_client?
Я думаю, что эта проблема возникла из-за символа \ u00a0 в строке данных, знаете ли вы, как ее решить?
Попробуйте использовать параметр в своем операторе SQL:
<?php
$sql = "select Long_Description from item_master where plu = ?";
$plu = cekget('plu');
$params = array($plu);
$result = sqlsrv_query($conn, $sql, $params);
if ($result){
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
$datas[] = array("Long_Description" => $row['Long_Description']);
# Just for test:
print_r($row, true);
}
}
$json = array("status" => 1, "respone" => $datas);
echo json_encode($json);
?>
Если вы хотите удалить неразрывные пробелы, используйте следующую инструкцию:
$sql = "SELECT Long_Description FROM item_master WHERE REPLACE(plu, NCHAR(0x00A0), '') = ?";
Обновленный ответ с параметрами в операторе SQL.
спасибо @zhorov ты почти прав, мне нужно заменить Long_description
спасибо за ответ мне действительно нужна ваша идея, но я сделал ваше предложение и все еще не работает