|
|
|
| Голова уже кругом идет, нужно сравнить два массива.
один массив берется из таблицы.
$query="SELECT * FROM url";
$res = mysql_query($query);
if(mysql_num_rows($res)>0)
{
$cat = mysql_fetch_array($res);
}
|
второй массив вот
Array ( [0] =>test [1] =>test2 [2] => test3 [3] =>test4] )
|
нужно их сравнить и если значение не сопадает занести его в таблицу | |
|
|
|
|
|
|
|
для: technic611
(30.01.2011 в 23:45)
| | Функции пересечения массивов позволяют вернуть массив как совпадающих, так и несовпадающих элементов массивов. Кружится голове нет причины. | |
|
|
|
|
|
|
|
|
для: technic611
(30.01.2011 в 23:45)
| | Возможно вас заинтересует функция array_diff(), а также другие функции группы array_diff. | |
|
|
|
|
|
|
|
для: cheops
(31.01.2011 в 09:48)
| | что то аргуемент $cat, функция невоспринимает как массив (((( видит его как пустой, выдает результат все что в $out
$result=array_diff($out,$cat); | |
|
|
|
|
|
|
|
для: technic611
(31.01.2011 в 12:15)
| | 1) После функции mysql_query() поставьте проверку - запрос выполняется верно?
$query="SELECT * FROM url";
$res = mysql_query($query);
if(!$res) exit("Ошибка - ".mysql_error);
|
2) У вас запрос SELECT * FROM url возвращает одну строку или несколько? И какие поля таблицы подвергаются сравнению? | |
|
|
|
|
|
|
|
для: cheops
(31.01.2011 в 12:23)
| | возвращает 50 строк, поле url
также 50 строк находятся вмассиве $out | |
|
|
|
|
|
|
|
для: technic611
(31.01.2011 в 12:37)
| | Какова структура таблицы url? Сколько в ней полей и как они называются? | |
|
|
|
|
|
|
|
для: technic611
(31.01.2011 в 12:37)
| | вот что показывает распечатка масисва $data
Array ( [0] => Array ( [0] => http://****/cars/used/sale/8551732-a9d2.html [url] => http://***/cars/used/sale/8551732-a9d2.html ) [1] => Array ( [0] => http://****/cars/used/sale/7637159-47dd.html [url] => http://****/cars/used/sale/7637159-47dd.html ) [2] => Array ( [0] => http://****/cars/used/sale/8794636-de59.html [url] => http://****/cars/used/sale/8794636-de59.html ) .....
|
| |
|
|
|
|
|
|
|
для: technic611
(31.01.2011 в 12:42)
| | Вам следует формировать массив $data следующим образом
while($result = mysql_fetch_array($res)) $data[] = $result['url'];
|
| |
|
|
|
|
|
|
|
для: cheops
(31.01.2011 в 09:48)
| |
$rows = mysql_num_rows($res);
for($i = 0;$i < $rows;$i++) {
$data[$i] = mysql_fetch_array($res);
}
|
сделал уже так, все равновыводит одно и тоже, что массиве $out и в $data, хотя значения там сейчас одинкаовые находятся, тоесть не должно выводится ничего по идее, а выводит
$result=array_diff($out,$data);
|
| |
|
|
|
|
|
|
|
для: technic611
(31.01.2011 в 12:36)
| | Выведите дампы массивов при помощи конструкции (отлаживать будет проще)
<?php
echo "<pre>";
print_r($data);
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: technic611
(31.01.2011 в 12:36)
| | Традиционно результирующие таблицы читают при помощи цикла while
while($result = mysql_fetch_array($res)) $data[] = $result;
|
Следует иметь в виду, что $result сам по себе массив, поэтому $data - будет двумерным массивом. Вам из таблицы какое-то конкретное поле нужно? | |
|
|
|
|
|
|
|
для: cheops
(31.01.2011 в 12:40)
| | распечатка массива $out
Array ( [0] => http://****/cars/used/sale/8551732-a9d2.html [1] => http://*****/cars/used/sale/7637159-47dd.html [2] => http://****/cars/used/sale/8794636-de59.html [3] => http://****/cars/used/sale/8655215-4093.html [4] => http://****/cars/used/sale/8799890-69ce.html ....
|
| |
|
|
|
|
|
|
|
для: cheops
(31.01.2011 в 12:40)
| | да, поле url | |
|
|
|
|
|
|
|
|
для: cheops
(31.01.2011 в 12:47)
| | после модернизации while и указания в запросе явного поля
Array ( [0] => http://*****/cars/used/sale/8551732-a9d2.html [1] => http://*****/cars/used/sale/7637159-47dd.html [2] => http://****/cars/used/sale/8794636-de59.html [3] => http://****/cars/used/sale/8655215-4093.html [4] .....
|
| |
|
|
|
|
|
|
|
для: technic611
(31.01.2011 в 12:54)
| | Да все верно и $out у вас имеет такой же формат - можно сравнивать. | |
|
|
|
|
|
|
|
для: cheops
(31.01.2011 в 12:47)
| | кажется получается, вся проблема была в том что массив одномерный и двумерный? | |
|
|
|
|
|
|
|
для: technic611
(31.01.2011 в 12:59)
| | Да, так как функция array_diff() сравнивает одномерные массивы. | |
|
|
|