Re: Выпадающий список
Сохраните массивы со всеми необходимыми полями и сравнивайте их.
$a[] = $row;
$b[] = $row;
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Выпадающий список
Сохраните массивы со всеми необходимыми полями и сравнивайте их.
$a[] = $row;
$b[] = $row;
не совсем понял, сравнить то нужно по определенному елементу масива
Спасибо, подскажите еще такое может пользовались распаковкой rar архивов но именно rar как можно реализовать скачиваю библиотеку прописіваю ее в php.ini и при рестарте у меня ошибка точка входа в процедуру object_properties_init не найдена в библиотеке DLL php4ts.dll
Установка описана здесь: http://www.php.net/manual/ru/rar.installation.php
я извеняюсь, никак не пойму. Опятьже на щет сравнения
хочу сравнить два масива построчно но строки должны иметь связь такуюже как и в базе тоесть
база
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'] ?
или нужно еще раз цикл запускать и выборку делать из базы?
name - razmer - color
Собираете массив из первой таблицы и затем ищите совпадение во второй таблице. Сравнивать массив функцией array_intersect не надо.
я думал функция arra_intersect будет самым быстрым решением. Вот еще так написал
foreach ($a as $value){
if (in_array($value, $b)) {
echo "$value<br>";
}
}
но думаю ето не самое оптимальное решение.
но думаю ето не самое оптимальное решение.
У вас есть имена элементов массива. Сравнивать можно построчно.
да можно но время решающий фактор
в таблице 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 масива а нужно из двух
в таблице A 1200 записей в таблице Б 12000 записей в каждой по 3 стоблика сравнить нужно по 1 столбику, а для совпавшихся елементов вывести соответствия из 2 других столбиков вот и выходит
Это делается запросом. В запросе надо объединить две таблицы и вывести совпадающие по столбцу строки.
SELECT * FROM t1, t2
WHERE t1.name = t2.name;
Огромнейшее Вам спасибо, я пол дня просидел за кодом. Я ипользую такую вот конструкцию для запросов в базу
$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
что не так не пойму , Вы меня частенько выручаете с кодом Большое Вам спасибо.
Добрый день. подскажите пожалуйста как дописать запрос типа
$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 запросам сложным?
где воообще можно почитать доходчивый мануал по msql запросам сложным?
Смотрите документацию. https://dev.mysql.com/doc/refman/5.0/en/select.html
добрый день как не крути а все не опишеш в мануале вот простой запрос
$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);
выпадает ошибка что здесь не так?
выпадает ошибка что здесь не так?
Ошибка в кавычках `t1`, `t2`
И в условии надо указать таблицу префиксом: `t1`.`mail`
не выходит
$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
Смотрите как формируется запрос и пробуйте его выполнить в phpMyAdmin.
exit($sql);
ну ответ однозначный #1146 - Table 't1.mail' doesn't exist но таблица то существует
Если ошибка говорит, что таблицы нет - значит ее нет. Проверьте внимательнее.
на запрос 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'
таблица точно существует так как на запрос SELECT * FROM (SELECT * FROM `bot`.`t1` WHERE `t1`.`mail` IN("155/70R13 NEXEN CLASSE PREMIERE ","175/70R13 FALKEN SINCERA SN-832 EC82T") ) AS t при выборке из одной таблицы все норм выходит
Попробуйте выполнить подзапрос отдельно.
SELECT * FROM `bot`.`t1`, `bot`.`t2` WHERE `t1`.`mail` IN("155/70R13 NEXEN CLASSE PREMIERE ","175/70R13 FALKEN SINCERA SN-832 EC82T")
да работает отлично
что же не так с запросом?
что же не так с запросом?
При выборке из двух таблиц, они должны быть связаны каким-то полем, обычно идентификатором. Пробуйте делать несколько запросов, если одним не получается.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Выпадающий список
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.