0

我想问一下我的代码是否正确。

我有这两个爆炸命令:

$url = 'http://google.com, http://yahoo.com, http://msn.com, http://yahoo.com, http://msn.com, http://yahoo.com, http://msn.com';
$key = 'google, yahoo, msn';
$xurl = explode( ',', $url );
$xkey = explode( ',', $key );

foreach ( $xurl as $hyperlink ) {
    foreach ( $xkey as $keyword )
    $sqlHyperLink = mysql_query( "INSERT INTO jon_hyperlink VALUE( '', '$hyperlink', '$keyword', NOW() )" ) or die ( mysql_error() );
}
    echo 'Hyperlink Created';

更新* 如果您注意到,$url变量列出了 7 个 url,我有 3 个关键字。我怎样才能使关键字重复...

我如何插入带有 1 的字符串,foreach因为我foreach在查询中使用了 2 并且它插入了 2 次。有一个更好的方法吗?

4

4 回答 4

2

你可以做:

$xurl = explode( ',', $url );
$xkey = explode( ',', $key );

$assoc = array_combine($xkey, $xurl);

foreach ($assoc as $keyword => $hyperlink) {
    //insert here
}
于 2012-07-20T08:06:46.500 回答
0

使用索引敲击数组。

$numItems = count($xurl);
for ($i=0; $i<$numItems; $i++) {
    $sqlHyperLink = mysql_query( "INSERT INTO jon_hyperlink VALUE( '', '{$xurl[$i]}', '{$xkey   [$i]}', NOW() )" ) or die ( mysql_error() ); 
}

理想情况下查看 PDO,您可以在其中将值绑定到准备好的查询 - 不过它更快、更安全、更好的做法!

于 2012-07-20T08:06:47.593 回答
0
$url = 'http://google.com, http://yahoo.com, http://msn.com, http://yahoo.com, http://msn.com, http://yahoo.com, http://msn.com';
$key = 'google, yahoo, msn';
$xurl = explode( ',', $url );
$xkey = explode( ',', $key );

foreach ($xurl as $i => $keyword) {
    $sqlHyperLink = mysql_query( "INSERT INTO jon_hyperlink VALUE( '', '{$xkey[$i]}', '$keyword', NOW() )" ) or die ( mysql_error() );
}
于 2012-07-20T08:13:51.223 回答
0

如果您的 $url 和 $key 以正确的顺序映射在一起,您可以只使用带有索引的简单 for 循环并访问每个循环的两个数组。

for($i = 0; $i < sizeof($key); $i++)
{
    mysql_query("insert ... $key[$i] .. $url[$i] ..");
}
于 2012-07-20T08:13:59.207 回答