2014-04-09 4 views
0

У меня есть следующие вложенные циклы. Первый получает manufacturers_name, и, как иногда в этом поле есть несколько имен, я использую второй цикл foreach для разделения массива и получения идентификатора для каждого из производителей. Проблема в том, что цикл останавливается у первого элемента $pieces.PHP foreach loop останавливается после взрыва

Loop:

foreach ($items as $v) { 
$getname = xtc_db_query("SELECT `manufacturers_name` FROM `manufacturers` WHERE `manufacturers_id`=(SELECT manufacturers_id FROM products WHERE products_id='".$v."')"); 
$getnameresult= xtc_db_fetch_array($getname); 
$pieces = explode(";", $getnameresult[manufacturers_name]); 
    foreach ($pieces as $n) 
    { 
    $getid = xtc_db_query("SELECT `manufacturers_id` FROM `authors` WHERE  `manufacturers_name` LIKE '".$n."' "); 
    $getidresult = xtc_db_fetch_array($getid); 
    echo $getidresult['manufacturers_id']; 
    echo $n."<br>"; 
    } 
} 

Результат:

2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
228Weisenburger, Birgit 
228Weisenburger, Birgit 
2Achtzehn, Hans-Jürgen 
33Müller, Ulrike 
Schmitz, Irmgard 
Hampel, Heike 
Riedel, Sara 
Achtzehn, Hans-Jürgen 
Krüger, Andreas 
Vogt, Melanie 

Ожидаемый результат:

2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
2Achtzehn, Hans-Jürgen 
228Weisenburger, Birgit 
228Weisenburger, Birgit 
2Achtzehn, Hans-Jürgen 
33Müller, Ulrike 
56Schmitz, Irmgard 
77Hampel, Heike 
75Riedel, Sara 
34Achtzehn, Hans-Jürgen 
65Krüger, Andreas 
80Vogt, Melanie 

ответ

0

Я сделал var_dump ($ штук) и var_dump ($ п), чтобы устранить проблему, и оказалось, есть место перед именами, и именно поэтому я не получаю их идентификаторы:

для $ шт -

array (size=8) 
    0 => string 'Müller, Ulrike' (length=14) 
    1 => string ' Schmitz, Irmgard' (length=17) 
    2 => string ' Hampel, Heike' (length=14) 
    ... 

за $ п -

string 'Müller, Ulrike' (length=14) 
string ' Schmitz, Irmgard' (length=17) 
string ' Hampel, Heike' (length=14) 

Fix:

Поместите следующую функцию в моем документе и затем обрезал цикл:

function trim_value(&$value) 
{ 
    $value = trim($value); 
} 

стрижка $pieces как раз перед вторым циклом Еогеаспа:

array_walk($pieces, 'trim_value'); 
0
foreach ($items as $v) { 
products_id='".$v."'"); 

изменение

foreach ($items as $v) { 
Смежные вопросы