我正在尝试格式化另一个网站数据以插入我的数据库。他想关闭他的网站,所以给我他的网站列表。但我必须从他的flatfile数据库格式化他的数据,进入我的mysql数据库。
我循环浏览他的文本文件,并获得他的价值观。然后在将它们插入我的数据库之前根据需要进行格式化。
由于我们的网站使用完全不同的存储格式和字段,因此我遇到了一些问题。
我的网站有一个设计师领域。他没有。所以我试图通过他的描述字段搜索我的设计师表中找到匹配。如果有匹配,我想让设计师ID插入到设计器ID字段中。但是我无法使用此代码。
有人可以建议修复吗?或者如果有更好的方法吗?
$fp = fopen('listings.txt','r');
if (!$fp) {echo 'ERROR: Unable to open file.'; exit;}
$loop = 0;
while (!feof($fp)) {
$loop++;
$line = fgets($fp,1024); //use 2048 if very long lines
$field[$loop] = explode (' ', $line);
$get_designers = mysql_query("SELECT * FROM dress_designers");
$row_designers = mysql_fetch_array($get_designers);
$totalRows_designers = mysql_num_rows($get_designers);
do{
// Note our use of ===. Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
$mystring = strtolower($field[$loop][8]);
$findme = strtolower($row_designers['designer_name']);
$pos = strpos($mystring, $findme);
// Note our use of ===. Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
$designer = "Other";
} else {
$designer = "Siopa Rince";
}
} while ($row_designers = mysql_fetch_assoc($get_designers));
$fp++;
}
fclose($fp);
我只把“Siopa Rince”作为测试。但这不起作用。如果我从文件中获取文本,并将其粘贴到$ mystring中并将siopa rince放入$ findme中......它可以正常工作。
任何建议都将不胜感激!
谢谢, 丹尼
好的......那么只是输入信息呢?我尝试了几种不同的方法,但结果是返回null ...
插入数据后,使用搜索加入所需的行以获取ID:
SELECT dress_test.dress_title, (
SELECT dress_designers.designer_id
FROM dress_designers
WHERE MATCH (
dress_test.dress_desc
)
AGAINST (
'dress_designers.designer_name'
IN boolean MODE
)
) AS real_designer_id
FROM dress_test
另一个版本:
SELECT dress_test.dress_title, dress_designers.designer_name
FROM dress_test
JOIN dress_designers ON MATCH(dress_test.dress_title, dress_test.dress_desc) AGAINST
('dress_designers.designer_name' in boolean mode)
还有其他建议吗?
答案 0 :(得分:0)
您对$row_designers
的第一次转让使用mysql_fetch_array
,而第二次使用mysql_fetch_assoc
而不是做{...} while,为什么不只是while(){...}
删除此行$row_designers = mysql_fetch_array($get_designers);
将你的循环变成......
while ($row_designers = mysql_fetch_assoc($get_designers)) {
// string search here
}
其他一切看起来很好 - 如果您遇到麻烦,请使用echo
打印字符串或print_r
来打印数组来检查值。