976

Re: Выпадающий список

Сохраните массивы со всеми необходимыми полями и сравнивайте их.

$a[] = $row;
$b[] = $row;

Re: Выпадающий список

не совсем понял, сравнить то нужно по определенному елементу масива

Re: Выпадающий список

Спасибо, подскажите еще такое может пользовались распаковкой rar архивов но именно rar как можно реализовать скачиваю библиотеку прописіваю ее в php.ini и при рестарте у меня ошибка точка входа в процедуру object_properties_init не найдена в библиотеке DLL php4ts.dll

979

Re: Выпадающий список

Установка описана здесь: http://www.php.net/manual/ru/rar.installation.php

Re: Выпадающий список

я извеняюсь, никак не пойму. Опятьже на щет сравнения

хочу сравнить два масива построчно но строки должны иметь связь такуюже как и в базе тоесть

база

name - razmer - color

выборка масива

$a = array();
$result1 = mysql_query("SELECT * FROM `t1` ",$db); 
while ($myrow1 = mysql_fetch_array($result1)) {
$a[] = $myrow1['name'];

}

/// масив 2

$b = array();
$result1 = mysql_query("SELECT * FROM `t2` ",$db); 
while ($myrow1 = mysql_fetch_array($result1)) {
$b[] = $myrow1['name'];

}

///тут сравнение на одинаковые елементы

$e = array_intersect($a , $b);
foreach($e as $value){

print"".$value."<br>";
}

///на выходе имеем строки
 совпадений из масивов по ячейке $myrow1['name'] как привязать вывод ячеек $myrow1['razmer']   $myrow1['color'] ?

или нужно еще раз цикл запускать и выборку делать из базы?

981

Re: Выпадающий список

павелsimon1 сказал:

name - razmer - color

Собираете массив из первой таблицы и затем ищите совпадение во второй таблице. Сравнивать массив функцией array_intersect не надо.

Re: Выпадающий список

я думал функция arra_intersect будет самым быстрым решением.    Вот еще так написал   

foreach ($a as $value){

if (in_array($value, $b)) {
    echo "$value<br>";
}
}

но думаю ето не самое оптимальное решение.

983

Re: Выпадающий список

павелsimon1 сказал:

но думаю ето не самое оптимальное решение.

У вас есть имена элементов массива. Сравнивать можно построчно.

Re: Выпадающий список

да можно но время решающий фактор

в таблице A 1200 записей в таблице Б 12000 записей в каждой по 3 стоблика сравнить нужно по 1 столбику, а для совпавшихся елементов вывести соответствия из 2 других столбиков вот и выходит

если сравнивать :
1 способ формирую из двух таблиц данные по первым столбикам в масив

$a = array();
$result = mysql_query("SELECT * FROM `poisk` ",$db); 
while ($myrow = mysql_fetch_array($result)) {
$a[] = $myrow['text'];
}

$b = array();

$result = mysql_query("SELECT * FROM `baza_all` ",$db); 
while ($myrow = mysql_fetch_array($result)) {
$b[] = $myrow['stroka'];
}

и сравниваю

 $res = array_intersect($a,$b);

время меньше 1 секунды но тут у меня не получается подтянуть два других столбика по совпадениям

2 способ сравнение if (in_array()
время выполнения 34 секунды но и тут не все могу подтянуть столбики только из 1 масива а нужно из двух

985

Re: Выпадающий список

павелsimon1 сказал:

в таблице A 1200 записей в таблице Б 12000 записей в каждой по 3 стоблика сравнить нужно по 1 столбику, а для совпавшихся елементов вывести соответствия из 2 других столбиков вот и выходит

Это делается запросом. В запросе надо объединить две таблицы и вывести совпадающие по столбцу строки.

SELECT * FROM t1, t2
WHERE t1.name = t2.name;

Re: Выпадающий список

Огромнейшее Вам спасибо, я пол дня просидел за кодом. Я ипользую такую вот конструкцию для запросов в базу

$result = mysql_query("select  * from `users` where  page='".$_POST["page"]."'   ",$db);
$row = mysql_fetch_array($result);

мне и в голову не пришло что все намного проще, я пробывал соединение типа union

$res=mysql_query("select * from t1  
UNION select * from t2"); 

while ($row = mysql_fetch_array($res)) {}

но выпрыгивала ошибка типа




Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

что не так не пойму , Вы меня частенько выручаете с кодом Большое Вам спасибо.

987 (изменено: павелsimon1, 2014-05-02 14:16:53)

Re: Выпадающий список

Добрый день. подскажите пожалуйста как дописать запрос типа

$result = mysql_query("SELECT t.`date`, t.`mail`, t.`name` 
FROM `time_line` where t JOIN
(SELECT `mail`, min(`date`) as `date` FROM `time_line` where    date<='$date' and date>='2014-04.10'   GROUP BY `mail`) as t1 
ON t.`mail`= t1.`mail` AND t.`date` = t1.`date` GROUP BY `mail` ",$db);
$row = mysql_fetch_array($result);

для выборки по заданному масиву mail

$num = array("first@mail.ru","second@mail.ru");

WHERE `mail` IN("' . implode('","', $num) . '") 


где воообще можно почитать доходчивый мануал по msql запросам сложным?

988

Re: Выпадающий список

павелsimon1 сказал:

где воообще можно почитать доходчивый мануал по msql запросам сложным?

Смотрите документацию. https://dev.mysql.com/doc/refman/5.0/en/select.html

989 (изменено: павелsimon1, 2014-05-05 14:54:13)

Re: Выпадающий список

добрый день   как не крути а все не опишеш в мануале вот простой запрос

$sql = 'SELECT  * FROM (SELECT  * FROM  `t1`  
    WHERE `mail` IN("' . implode('","', $num) . '")  ) AS `t` ';
$result= mysql_query($sql);

все работает отлично из базы достаю все что соответствует масиву $num   но вот если немного усложняю добавляю выборку из двух баз  t1,t2 в которых есть одинаковые поля mail

$sql = 'SELECT  * FROM (SELECT  * FROM  `t1,t2`  
    WHERE `mail` IN("' . implode('","', $num) . '")  ) AS `t` ';
$result= mysql_query($sql);

выпадает ошибка что здесь не так?

990

Re: Выпадающий список

павелsimon1 сказал:

выпадает ошибка что здесь не так?

Ошибка в кавычках `t1`, `t2`
И в условии надо указать таблицу префиксом: `t1`.`mail`

991 (изменено: павелsimon1, 2014-05-12 17:04:25)

Re: Выпадающий список

не выходит

$a = array("name 1 ","name 2","name 3");


$sql = 'SELECT  * FROM (SELECT  * FROM  `t1` , `t2`
    WHERE `t1`.`mail` IN("' . implode('","', $a) . '")  ) AS t ';
$result= mysql_query($sql);
$row = mysql_fetch_array($result);

do {
print"nen ".$row["mail"]."<br>";
}
while ($row = mysql_fetch_array($result));

ошибка Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\POISK\reader\test_new.php on line 12

992

Re: Выпадающий список

Смотрите как формируется запрос и пробуйте его выполнить в phpMyAdmin.

exit($sql);

Re: Выпадающий список

ну ответ однозначный #1146 - Table 't1.mail' doesn't exist    но таблица то существует

994

Re: Выпадающий список

Если ошибка говорит, что таблицы нет - значит ее нет. Проверьте внимательнее.

Re: Выпадающий список

на запрос SELECT * FROM (SELECT * FROM `bot`.`t1`, `bot`.`t2` WHERE `t1`.`mail` IN("155/70R13 NEXEN CLASSE PREMIERE ","175/70R13 FALKEN SINCERA SN-832 EC82T") ) AS t

ошбка #1060 - Duplicate column name 'id'

Re: Выпадающий список

таблица точно существует так как на запрос SELECT * FROM (SELECT * FROM `bot`.`t1` WHERE `t1`.`mail` IN("155/70R13 NEXEN CLASSE PREMIERE ","175/70R13 FALKEN SINCERA SN-832 EC82T") ) AS t при выборке из одной таблицы все норм выходит

997

Re: Выпадающий список

Попробуйте выполнить подзапрос отдельно.

SELECT * FROM `bot`.`t1`, `bot`.`t2` WHERE `t1`.`mail` IN("155/70R13 NEXEN CLASSE PREMIERE ","175/70R13 FALKEN SINCERA SN-832 EC82T")

Re: Выпадающий список

да работает отлично

Re: Выпадающий список

что же не так с запросом?

1,000

Re: Выпадающий список

павелsimon1 сказал:

что же не так с запросом?

При выборке из двух таблиц, они должны быть связаны каким-то полем, обычно идентификатором. Пробуйте делать несколько запросов, если одним не получается.