У меня есть база данных mysql, которая в качестве одного из полей содержит описание html. Это описание не зависит от меня, оно получается и вставляется автоматически. Пример одного из этих описаний находится здесь:
http://www.nomorepasting.com/getpaste.php?pasteid=22492
Данные изначально экспортируются из базы данных доступа и, кажется, остаются нетронутыми. Пример экспортированных данных находится здесь:
http://www.yousendit.com/transfer.php?action=batch_download&batch_id=TTZtWmdsT01kMnVGa1E9PQ
Я пытаюсь вывести переменную, содержащую описание html, во всплывающее окно, чтобы отобразить ее как есть. Код, который я пытаюсь использовать для этого, находится здесь:
http://www.nomorepasting.com/getpaste.php?pasteid=22498
Однако он создает следующий HTML-код:
http://www.nomorepasting.com/getpaste.php?pasteid=22462
Есть незакрытый тег стиля, который предотвращает отображение остальной части страницы и открытие всплывающего окна. Насколько я могу судить, я сузил это до проблемы с php, потому что данные в mysql кажутся нормальными.
редактировать:
Я просто попытался выбрать только article_Desc из базы данных с помощью этого кода:
http://www.nomorepasting.com/getpaste.php?pasteid=22494
Что произвело это в результате:
http://www.nomorepasting.com/getpaste.php?pasteid=22496
edit2:
Похоже, возникла проблема с переменной countrycode, содержащей тег стиля. Когда я удаляю это, отображается изображение и создается всплывающее окно, только с результатами html, очень похожими на последнюю вставленную мной ссылку. Данные в базе данных кажутся правильными, так что может вызвать эту проблему?






Напоминает мне немного этот вопрос.
Вы видите здесь в коде PHP
child1.document.write(' . json_encode($row2["ARTICLE_DESC"]) . ');
а здесь в HTML-коде
child1.document.write("");
Это означает, что json_encode ($ row2 ["ARTICLE_DESC"]) выводит "". А поскольку json_encode ('') выводит "", это означает, что $ row2 ["ARTICLE_DESC"] пусто.
Обновлено:
$sql = "SELECT * FROM Auctions WHERE ARTICLE_NO ='$pk'";
$sql2 = "SELECT ARTICLE_DESC FROM Auctions WHERE ARTICLE_NO ='$pk'";
Второй sql2 не нужен, так как первый $ sql уже должен включать ARTICLE_DESC. Так
ИЗМЕНИТЬ при РЕДАКТИРОВАНИИ:
$query = "SELECT article_desc FROM Auctions WHERE ARTICLE_NO ='220288560247'";
Имя - article_desc, а не ARTICLE_DESC.
ИЗМЕНИТЬ КОММЕНТАРИИ:
Замените все вхождения ARTICLE_DESC на article_desc.
РЕДАКТИРОВАТЬ Теперь, когда у вас есть html-код, вам нужно заменить
json_encode($row['article_desc'])
с этим
str_replace(array("\n", "\r", "\t"), array('', '', ''), $row['article_desc']);
что можно сделать в красивой функции. Просто помните, что весь HTML-код, который вы печатаете, находится в
<!-- text -->
так что вы на самом деле ничего не увидите в новом окне ...
<!-- +++++++++++++++++++++++++ Bitte ändern Sie im eigenen Interesse nichts an diesem Code! ++++++++++++++++++++++++ -->
<!-- +++++++++++++++++++++++++ Das kann massive Fehldarstellungen ihrer Auktion zur Folge haben! +++++++++++++++++++ -->
<!-- +++++++++++++++++++++++++ ++++++++++++++++++++++++++ Ihr Supreme Team +++++++++++++++++++++++++++++++++++++++++ -->
Итак, вы дали мне -1, потому что ваш вопрос вводил в заблуждение ?!
Нет? Вы мне очень помогли, я дал вам один, мне очень жаль, что это было -1, это не было намерением и должно быть исправлено сейчас.
Я смущен вашим вторым редактированием, потому что без json-кодирования результирующий html в последней опубликованной мной ссылке - это то, что назначается document.write, указанное article_desc является правильным и не пустым?
Я не понимаю, что "указанный article_desc правильный и не пустой?", Но это случай неправильного регистра. : P Когда вы получаете результат, который вы запрашиваете в нижнем регистре, и когда вы не получаете результат, вы запрашиваете в верхнем регистре.
Хорошо, я убедился, что все это строчные буквы, но происходит то же самое, хотя теперь проблема сузилась.
Нет, просто article_desc. Аукционы по-прежнему должны иметь большой A, а ARTICLE_NO должен быть в верхнем регистре.
Файл CSV выглядит немного беспорядочно. Похоже, что поля разделены табуляцией и ничем не заключены. Это может быть нормально для простых данных, но когда вы начнете вставлять HTML, у вас будут проблемы - глядя на один из твоих других вопросовs, похоже, что парсер CSV сбивается с толку и разбивает одно поле HTML на несколько - это, кажется, происходит каждый раз, когда он сталкивается с табуляция (а может также двойная кавычка?)
Вы можете изменить формат файла CSV? Я бы посоветовал вам использовать запятые для разделения полей и определить символ вложения (например, двойные кавычки) для более сложных строк, таких как HTML - я думаю, вам нужно будет убедиться, что любые двойные кавычки внутри строки также сбежал. Также имейте в виду, что вам может потребоваться удалить или избежать разрывов строк внутри этих строк в зависимости от того, что их анализирует, но я не совсем уверен в этом.
Редактировать после вашего комментария
Вам не нужно беспокоиться о строке, содержащей разделитель, если она заключена в символ. Если вам нужна строка, содержащая три поля, и три строковых значения:
String1
String2
Stri,ng3
Следующий не является действителен и будет рассматриваться парсером как четыре поля
String1,String2,Stri,ng3
Следующий является действителен, потому что разделитель «заключен» в двойные кавычки
"String1", "String2", "Stri,ng3"
Это становится сложнее, когда вы хотите иметь двойные кавычки внутри строки - тогда это нужно будет экранировать. Если бы вы хотели представить
String1
String"2
поле CSV может быть экранировано как
"String1", "String\"2"
Если я правильно помню, вы импортировали в MySQL с помощью LOAD DATA ?, поэтому для приведенных выше примеров вы можете использовать такие параметры, как
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\'
Я не уверен, как MySQL будет обрабатывать разрывы строк в заключенных строках, я не могу найти много об этом. Если он читает файл построчно, у вас могут возникнуть проблемы.
Редактировать 2
Если оставшиеся проблемы связаны с разрывом строки, вы можете заменить строку \n на \\n и \r на \\r в коде, который экспортирует каждое поле в CSV.
Хорошо, это могло быть проблемой, я думал, что вкладки - лучшее, что можно использовать в качестве разделителя, когда имеешь дело с данными, которые могут содержать любой другой тип символа. Я не думал, что html будет содержать символы табуляции. Поскольку html может содержать что угодно, я не знаю, какой разделитель использовать
О \ t и \ n позаботится json_encode? И это тоже не проблема, как вы можете видеть в HTML-коде.
Тогда что приводит к тому, что часть HTML оказывается в COUNTRYCODE?
Он заканчивается кодом страны, потому что синтаксический анализатор csv считает, что поле HTML на самом деле состоит из нескольких полей, поэтому он не синхронизируется, и данные кода страны теряются.
@OIS - я думаю, проблема в том, что в базе данных MySQL есть плохие данные - json_encode на данный момент не актуален. Если только я не правильно понял проблему.
Похоже, ты на деньгах. Выбор article_desc после importin в исходной вкладке с разделителями возвращает следующее: nomorepasting.com/getpaste.php?pasteid=22502 Я получаю странные результаты и ошибки при попытке ввода через запятые или точки с запятой, независимо от их включения.
не могли бы вы привести пример вашего последнего файла CSV и скрипта создания таблицы для таблицы mysql?
Мне нужно идти, но я сделаю это первым делом в понедельник, спасибо за вашу помощь!
похоже, теперь он работает с заключением и точкой с запятой. по какой-то причине он не позволяет мне экспортировать с запятыми в качестве разделителя. файл находится в yousendit.com/download/TTZueEVYT2J1Yk1LSkE9PQ. Я получаю сообщение об ошибке из основного файла, но он работает, если я вызываю get_auction отдельно, я не уверен, почему?
Этот файл не содержит HTML?
Должно, это основа того, что я сейчас использую? Не во всех записях есть html, ищите <title> или что-то подобное. Вы знаете, почему это половина размера файлов с разделителями табуляцией? Хотя я могу заставить всплывающие окна работать, похоже, что он не отображает полный html, но он отображается с использованием кода из моей второй последней ссылки.
Проблема, о которой я упоминал выше, похоже, связана с Unicode, поскольку popwindow не имеет символа html, включая и после первого символа unicode, поскольку там, где мой test.php просто повторяется, а не использует json_encode, он просто отображает символы как знаки вопроса или что-то в этом роде.
Извините, я недостаточно обновил ссылку. Весь вопрос в том, что article_desc не пуст и что я не использую json_encode, я исправлю это.