Re: Выпадающий список
) всегото, а я уже функцию приплел strtoupper
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Выпадающий список
Страницы Назад 1 … 35 36 37 38 39 40 41 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
) всегото, а я уже функцию приплел strtoupper
подскажите какие еще есть варианты нахождения одного слова в строке нужно именно в етой конструкции
$a = array();
$result = mysql_query("SELECT text FROM poisk",$db);
while ($myrow = mysql_fetch_array($result)) {
$a[] = $myrow['text'];
}
$result2 = mysql_query("SELECT * FROM baza",$db);
while ($myrow2 = mysql_fetch_array($result2)) {
if (in_array("".$myrow2["iskomoe"]."", $a)) {
print"есть повтор <font color='#ff0000'><b>".$myrow2["iskomoe"]." +++++ ".$myrow2["true"]."</b></font><br> ";
} else {
print"нету повтора ".$myrow2["iskomoe"]." <br> ";
}
}
потому как
foreach($a as $value) {
if (preg_match('/' . preg_quote($myrow2["text"], '/') . '/', $value)) {
// Найдено.
}
}
не коректно работает
не коректно работает
Как работает и как надо?
вариант с
foreach($a as $value) {
if (preg_match('/' . preg_quote($myrow2["text"], '/') . '/', $value)) {
// Найдено.
}
}
работает следующим образом сравниваются две колонки
1. Слова: яблоко, груша, свекла
2. Слова: яблоко 1, свекла 1, груша 1
код обработчика
$a = array();
$result = mysql_query("SELECT text FROM poisk",$db);
while ($myrow = mysql_fetch_array($result)) {
$a[] = $myrow['text'];
}
$result2 = mysql_query("SELECT iskomoe FROM baza",$db);
$myrow2 = mysql_fetch_array($result2);
do{
foreach($a as $value) {
if (preg_match('/' . preg_quote($myrow2["iskomoe"], '/') . '/', $value)) {
print"строка ".$myrow2["iskomoe"]."------- совпадает $value <br>";
}
}
}
while($myrow2 = mysql_fetch_array($result2));
результат вывода
строка яблоко------- совпадает яблоко 1
строка груша------- совпадает груша1
строка свекла------- совпадает свекла 1
строка ------- совпадает яблоко 1
строка ------- совпадает свекла 1
строка ------- совпадает груша1
Да во второй колонке значительно больше слов но те что повторяются только 3
Как я понял, последние 3 строки выводят не верные данные, тогда проверяйте, чтобы переменная $myrow2["iskomoe"] не была пустой.
if ($myrow2["iskomoe"] && preg_match('/' . preg_quote($myrow2["iskomoe"], '/') . '/', $value)) {
спасибо получилось, теперь пожалуйста можна поподробнее растолкуйте что значит строка if ($myrow2["iskomoe"] && preg_match('/' . preg_quote($myrow2["iskomoe"], '/') . '/', $value)) особенно часть $myrow2["iskomoe"] && preg_match
Если переменная $myrow2["iskomoe"] отдает булево значение истины (true) и (&&) регулярное выражение находит вхождение $myrow2["iskomoe"] в строке $value, то условие выполняется.
Последние 3 строки выводят не неверные данные а дубликаты, здесь нужно чтоб выводились два столбика в одном все значения которые проверяются, во втором если есть совпадения то нужно чтоб на против выводилось то что совпало а если не совпало то выводилась пустая строка
У вас изначально так и выводилось.
нет изначально тоже двоится код
$a = array();
$result = mysql_query("SELECT text FROM poisk",$db);
while ($myrow = mysql_fetch_array($result)) {
$a[] = $myrow['text'];
}
$result2 = mysql_query("SELECT * FROM baza",$db);
$myrow2 = mysql_fetch_array($result2);
do{
foreach($a as $value) {
if (preg_match('/' . preg_quote($myrow2["iskomoe"], '/') . '/', $value))
{
print"совпадает ".$myrow2["iskomoe"]."---- $value<br>";
}
}
}
while($myrow2 = mysql_fetch_array($result2));
столбик poisk содержит: яблоко2323, груша2323, неизвестно
столбик baza содержит: яблоко, груша, свекла, помидор...
в резултате вывод
совпадает яблоко---- яблоко2323
совпадает груша---- груша2323
совпадает ---- яблоко2323
совпадает ---- груша2323
совпадает ---- неизвестно
а нужно
совпадает яблоко2323---- яблоко
совпадает груша2323---- груша
совпадает неизвестно -----
Проверьте значение переменной $myrow2["iskomoe"].
спасибо, нашел проблему в базе была пустая строка изза етого были дубликаты, теперь попробую разобратся с выводом всей колонки найденых и не найденых
не пойму ведь правила на пустые значения нет
do{
foreach($a as $value) {
if (preg_match('/' . preg_quote($myrow2["iskomoe"], '/') . '/', $value))
{
print"совпадает ".$myrow2["id"]."+++".$myrow2["iskomoe"]."---- $value<br>";
}
}
}
while($myrow2 = mysql_fetch_array($result2));
теперь в результате только те колонки которые совпали, невидно тех которые не совпали
колонка база: яблоко, груша, свекла
колонка поиск: яблоко123, груша12312, неизвестно
в результане вывод
совпадает 26869+++яблоко---- яблоко123
совпадает 26871+++свекла---- свекла12312
не вывелось строка неизвестно
Не вывелась, потому что условие проверки не выполнено. Если надо вывести несовпадающие результаты, то добавьте условие else.
Чтото определенно не так вот код
$a = array();
$result = mysql_query("SELECT text FROM poisk",$db);
while ($myrow = mysql_fetch_array($result)) {
$a[] = $myrow['text'];
}
$result2 = mysql_query("SELECT * FROM baza",$db);
while ($myrow2 = mysql_fetch_array($result2)) {
if (in_array("".$myrow2["iskomoe"]."", $a)) {
print"есть повтор <font color='#ff0000'><b>".$myrow2["iskomoe"]." +++++ ".$myrow2["true"]."</b></font><br> ";
} else {
print"нету повтора ".$myrow2["iskomoe"]." <br> ";
}
}
в котором сверка происходит по точному совпадению результат вывода
нету повтора яблоко
нету повтора груша
есть повтор свекла
а вот код
$a = array();
$result = mysql_query("SELECT text FROM poisk",$db);
while ($myrow = mysql_fetch_array($result)) {
$a[] = $myrow['text'];
}
$result2 = mysql_query("SELECT * FROM baza",$db);
$myrow2 = mysql_fetch_array($result2);
do{
foreach($a as $value) {
if (preg_match('/' . preg_quote($myrow2["iskomoe"], '/') . '/', $value))
{
print"совпадает ".$myrow2["id"]."+++".$myrow2["iskomoe"]."---- $value<br>";
}
else {print"совпадает ".$myrow2["id"]."+++".$myrow2["iskomoe"]."---- $value<br>";}
}
}
while($myrow2 = mysql_fetch_array($result2));
в результате выводит
совпадает 30195+++яблоко---- яблоко111
совпадает 30195+++яблоко---- свекла
совпадает 30195+++яблоко---- неизвестно1
совпадает 30195+++яблоко---- неизвестно2
совпадает 30195+++яблоко---- неизвестно3
совпадает 30195+++яблоко---- неизвестно4
совпадает 30195+++яблоко---- неизвестно5
совпадает 30196+++груша---- яблоко111
совпадает 30196+++груша---- свекла
совпадает 30196+++груша---- неизвестно1
совпадает 30196+++груша---- неизвестно2
совпадает 30196+++груша---- неизвестно3
совпадает 30196+++груша---- неизвестно4
совпадает 30196+++груша---- неизвестно5
совпадает 30197+++свекла---- яблоко111
совпадает 30197+++свекла---- свекла
совпадает 30197+++свекла---- неизвестно1
совпадает 30197+++свекла---- неизвестно2
совпадает 30197+++свекла---- неизвестно3
совпадает 30197+++свекла---- неизвестно4
совпадает 30197+++свекла---- неизвестно5
Я совсем запутался ета белиберда получается при добавлении условия else без него
результат вывода
совпадает 30195+++яблоко---- яблоко111
совпадает 30197+++свекла---- свекла
номера 30197 ето id елементов в базе вывел чтоб посмотреть что дублируется
получается что сначала выводится весь проход сопоставления по строке яблоко, потом весь проход по строке груша и тд, как зжать результат?
if (preg_match('/' . preg_quote($myrow2["iskomoe"], '/') . '/', $value)) {
// Найдено
} else {
// Не найдено
}
Доброй ночи подскажите что занчит ошибка
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in X:\home\192.168.1.100\www\my\pasword\kombi2.php on line 38
в выполнении даного кода
function getVariants($str = '', $max = 0, $depth = 0, $row = array()) {
$variants = array();
for($i = 0; $i <= $max; ++$i) {
$row[$depth] = isset($row[$depth]) ? ($row[$depth] + 1) : 0;
if($depth < $max) {
$res = getVariants($str, $max, $depth + 1, $row);
foreach($res as $subrow)
$variants[] = $subrow;
} else {
$subrow = '';
foreach($row as $char)
$subrow .= $str{$char};
$variants[] = $subrow;
}
}
return($variants);
}
$str = '1234567890';
$res = getVariants($str, strlen($str) - 1);
echo('<pre>'); print_r($res); echo('</pre>');
и еще как можно ограничить выполнение скрипта физическими ресурсами, тоесть чтоб выполнение скрипта не перегружало оперативную память более чем на 50% также с процессором?
Не знаю что значит эта ошибка. Какая строка 38? Проверьте содержимое переменных в ней прервав скрипт.
По второму вопросу, смотрите в PHP директиву memory_limit. Как ограничить нагрузку процессора - не знаю.
здравстуйте подскажите пожалуйста алгоритм реализации всех возможных комбинаций из масива символов в строку определенной доинны. Тоесть из масива 1,2,a,b,5,c составить всевозможные комбинации с длинной строки 3 символа учитывая повторы самих символов тоесть
111
222
aaa - и тд
Не подскажу. Пробуйте.
Здравствуйте, подскажите никак не получается довести до ума поиск в масиве по частичному совпадению
код
$a = array();
$result = mysql_query("SELECT brand FROM baza",$db);
while ($myrow = mysql_fetch_array($result)) {
$a[] = $myrow['brand'];
}
$b = array();
$result = mysql_query("SELECT model FROM baza",$db);
while ($myrow = mysql_fetch_array($result)) {
$b[] = $myrow['model'];
}
$result2 = mysql_query("SELECT * FROM poisk",$db);
while ($myrow2 = mysql_fetch_array($result2)) {
if (in_array("".$myrow2["text"]."", $a) ) {
print"есть повтор <font color='#ff0000'><b>".$myrow2["text"]." +++++ ".$myrow2["postav"]."</b></font><br> ";
}
else {
print"нету повтора ".$myrow2["text"]." <br> ";
}
}
в результате сравнивается строка по точному совпадению со строкой
и на выходе коректнго выводятся данные а именно весь масив который сравниваем если есть совпадения или если их нет
вы приводили код с регулярным выражением
foreach($a as $value) {
do{
if (preg_match('/' . preg_quote($myrow2["brand"], '/') . '/', $value))
{
print"совпадает ".$myrow2["id"]."+++".$myrow2["brand"]."---- $value<br>";
}
}
while ($myrow2 = mysql_fetch_array($result2));
}
так как в нужно искать строку в строке
но при етом данные дублируются изза цикла foreach в функцию in_array никак нельзя вписать регулярное віражение или чтото подобное?
Не смогу помочь. Сформулируйте задачу проще.
Страницы Назад 1 … 35 36 37 38 39 40 41 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Выпадающий список
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.