PHP: foreach($m[1] as $roo){ $query = "SELECT `Код товара` FROM `Соответсвие` WHERE `Код документа` in ($roo) order by `Код документа`"; /* выбираю из базы таблицу Соответствие и все записи в которых Код документа=2 */ /*Записываем в переменную*/ $result=mysql_query($query); /*Добавляем запись в начало строки*/ var_dump ($result); /*Выводим все элеметы и добавляем запятую*/ $arr=array(); while($r=mysql_fetch_array( $result )) $arr[]=$r[0]; { $docCodes=implode(',',$arr); $var='$id = Array('.$docCodes.');'; } } echo $var; } вот так выводит - только результат от последнего элемента массива((( , как вывести все элементы? чет запутался)) прощу прощения - не обладаю достаточными знаниями, что бы сразу до всего самому доходить вот и постю здесь))
Вопросы почти не изменились: 0)Не понимаю почему мое предыдущее сообщение отразилось на коде частично и искаженно. 1)Опишите что делает каждая строчка? 2)Зачем foreach в первой строчке? 3)Зачем открывающая скобка в 15 строчке
PHP: <?php foreach($m[1] as $roo){ //выводим из массива записи которые взяли со страниц после preg_match_all $query = "SELECT `Код товара` FROM `Соответсвие` WHERE `Код документа` in ($roo) order by `Код документа`"; /* выбираю из базы таблицу Соответствие и все записи в которых Код документа=2 */ $result=mysql_query($query); var_dump ($result); $arr=array(); while($r=mysql_fetch_array( $result )) $arr[]=$r[0]; //выводим в цикле ассоциативный массив и получаем результат после запроса к Mysql { $docCodes=implode(',',$arr); // запятая))) $var='$id = Array('.$docCodes.');'; // формирование строки } } echo $var; } ?> Разве не так?)))) 0) - что именно отразилось искаженно? 1) - 2) - Для вывода элементов массива(я неправ?) 3) - While {тело цикла} { $docCodes=implode(',',$arr); // запятая))) $var='$id = Array('.$docCodes.');'; // формирование строки }
0, 2)Остался foreach Он там для того чтобы по каждому найденному числу получить результат. В моем варианте результат получается одним запросом по всем числам. 3)Телом цикла является только Код (Text): $arr[]=$r[0]; Попробуйте получше отформатировать код - станет заметнее. Что в итоге происходит? Берем первое число, формируем результат, записываем в переменную $var. Затем берем второе число, формируем результат, и записываем в переменную $var. Т.е. предыдущее значение $var потеряно. И т.д. Потому и выводится результат только от последнего элемента. Что надо? Вывести строчку по всем элементам или вывести по каждому элементу свою строчку?
Нужно вывести строчку со всеми элементами , то есть , чтобы все идентификаторы 'Соответствия' собранные с 1 страницы сформировались в строке вида PHP: $id = Array(1150001, 1150002, 1150003, 1150004, 1150005, 1150006, 1150007, 1150008, 1150009, 1150010, 1150011, 1150012, 1150013, 1150015, 1150016, 1150017); - данные цифры означают идентификаторы кодов товаров со всей страницы то есть в этой строке.
PHP: <?php foreach($files as $file) { $konec=file_get_contents($file); echo '<br />'; preg_match_all('#^\s{0,1}<\?php\s\$id=([0-9]+);\s\$ui=[0-9]+;\s\$yu=[0-9]+;\sinclude\'|"[^\'|"]+?:\'|";\s\?>\s{0,1}$#im', $konec, $m); foreach($m[1] as $roo){ //выводим из массива записи которые взяли со страниц после preg_match_all $query = "SELECT `Код товара` FROM `Соответсвие` WHERE `Код документа` in ($roo) order by `Код документа`"; /* выбираю из базы таблицу Соответствие и все записи в которых Код документа=2 */ $result=mysql_query($query); $arr=array(); while ( $row = mysql_fetch_array($result)){ //выводим в цикле ассоциативный массив и получаем результат после запроса к Mysql $r[] = $row; } echo "<pre>"; print_r ($r); echo "</pre>"; $docCodes=implode(',',$r); // запятая))) $var='$id = Array('.$docCodes.');'; // формирование строки } echo $var; } ?> выводит почти то что нужно только не могу понять почему возвращает вот такое: Код (Text): Array ( [0] => Array ( [0] => 28566 [Код товара] => 28566 ) [1] => Array ( [0] => 28567 [Код товара] => 28567 ) [2] => Array ( [0] => 28572 [Код товара] => 28572 ) [3] => Array ( [0] => 28573 [Код товара] => 28573 ) [4] => Array ( [0] => 28579 [Код товара] => 28579............
О хччет вааще не то получилось))теперь он наоборот дописывает в остальное из первого вывода $var и так далее))))
PHP: <?php $docCodes=implode(',',$m[1]); $query = "SELECT `Код товара` FROM `Соответсвие` WHERE `Код документа` in ($roo) order by `Код документа`"; /* выбираю из базы таблицу Соответствие и все записи в которых Код документа=2 */ /*Записываем в переменную*/ $result=mysql_query($query); /*Добавляем запись в начало строки*/ /*Выводим все элеметы и добавляем запятую*/ $arr=array(); echo '<pre>'; echo $r=mysql_fetch_array($result); echo '</pre>'; $var='$id = Array('.$docCodes.');'; echo '<br />'.$var; } ?> - ошибка Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in
PHP: $files=glob('test/*.txt');// показываетм файлы с каким расширением забирать foreach($files as $file) { $konec=file_get_contents($file); echo '<br />'; preg_match_all('#^\s{0,1}<\?php\s\$id=([0-9]+);\s\$ui=[0-9]+;\s\$yu=[0-9]+;\sinclude\'|"[^\'|"]+?:\'|";\s\?>\s{0,1}$#im', $konec, $m); $r = Array(); foreach($m[1] as $roo){ //выводим из массива записи которые взяли со страниц после preg_match_all $query = "SELECT `Код товара` FROM `Соответсвие` WHERE `Код документа` in ($roo) order by `Код документа`"; // выбираю из базы таблицу Соответствие и все записи в которых Код документа $result=mysql_query($query); while ( $row = mysql_fetch_array($result)) { //выводим в цикле ассоциативный массив и получаем результат после запроса к Mysql $r[] = $row[0]; } $docCodes=implode(',',$r); // запятая))) $var='$id = Array('.$docCodes.');'; // формирование строки } echo $var.'<br />'; } Наконец - мои извращения закончились))))!!!! Благодарю Volt(220) - за помощь!!!