0

私のコードが正しいかどうか尋ねたいです。

次の 2 つの爆発コマンドがあります。

$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 つのキーワードがあります。どうすればキーワードを繰り返し作成できますか...

クエリにforeach2を使用し、2回挿入したため、文字列を1で挿入するにはどうすればよいですか。foreachこれを行うより良い方法はありますか?

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
$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 に答える
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 に答える