#php #mysqli
#php #mysqli
Вопрос:
У меня есть текстовый файл, который содержит, например :
The Fulton County Grand Jury said Friday an investigation.
The jury further said in term-end presentments that the City Executive Committee.
etc..
Например, у меня есть таблица словаря слов в базе данных :
==========================
= id = word = type =
==========================
= 1 = country = nn-tl =
= etc... =
==========================
Я должен искать те же слова в моем текстовом файле со словами в словаре в базе данных и принимать тип тех же слов, а затем добавлять их тип в мой текстовый файл с форматом words/type
, поэтому конечный результат должен быть :
The/at Fulton/np-tl County/nn-tl Grand/jj-tl Jury/nn-tl said/vbd Friday/nr an/at investigation/nn ./.
etc..
вот код :
connection.php
$db = new mysqli("localhost","root","root","peri");
if(mysqli_connect_errno()){
trigger_error('Connection failed: '.$db->error);
}
основная программа :
require_once 'connection.php';
$file = "C:/AppServ/www/dictionary/text.txt";
$lines = file($file);
foreach($lines as $line_num => $line) {
$parse = explode(' ', $line);
$query = $db->query("SELECT typeword FROM dictionary WHERE words = $parse");
$result = $query->fetch_object();
echo $parse '/' $result";
}
но это выдает мне сообщение об ошибке Call to a member function fetch_object() on a non-object
пожалуйста, помогите мне, спасибо 🙂
Комментарии:
1. Попробуйте
("SELECT typeword FROM dictionary WHERE words = '".$parse."'")
2. Здесь у вас есть синтаксис в
echo $parse '/' $result";
3. $parse — это массив, он все равно будет работать?
4. @nevermind нет, это не работает. как заставить это работать?
5. @user3714179, каждое слово из текстового файла находится внутри таблицы «словарь», имеет ли оно свой тип? Если не найдено — что должно быть напечатано? P.S. Слово в словаре в точно такой же форме, например, ‘The’ — верхний регистр?
Ответ №1:
Предполагая, что у вас есть таблица словаря с полями: id, word, type и ваш пример текстового файла, это может быть решением (возможно, вам понадобится несколько настроек здесь и там!):
$file = "text.txt";
$lines = file($file);
foreach($lines as $line) {
$parse = explode(' ', $line);
foreach ($parse as $word) {
//replace dot in last word in line
$word_fix=str_replace('.','',$word);
$query ="SELECT type FROM dictionary WHERE word = '$word_fix'";
$result = $db->query($query);
if($res = $result->fetch_object()) {
echo $word.'/'.$res->type.' ';
}
else {
echo $word.' /'.' ';
}
}
}
PS вероятно, вам нужно заменить: ,!? … сопоставить слово из базы данных…