У меня есть таблица, в одной из ячеек которой записаны имена людей через запятую. вот так Vasya, Petya, Kolya и т.д.
Мне нужно как-то сделать запрос, чтобы можно было взять каждое имя в отдельности для формирования ссылок для каждого имени, например:
<a href="<?php $_SERVER['REQUEST_URI'].'Vasya' ?>">Vasya</a>
<a href="<?php $_SERVER['REQUEST_URI'].'Petya' ?>">Petya</a>
...
<a href="<?php $_SERVER['REQUEST_URI'].'Kolya' ?>">Kolya</a>
Так же интересует функция, которая может проверить содержимое ячейки на совпадение с переменной. Т.е. загоняем в переменную чье-то имя $mane='Vasya'; а после ячейку в БП (например, такую:Vasya, Petya, Kolya) проверяем на наличие этого имени и при совпадении одного из имен проводим некую операцию.
Спустя 40 минут, 19 секунд (17.12.2011 - 02:05) redreem написал(а):
рады за вас ща vital про булочки напишет еще
Спустя 6 минут, 47 секунд (17.12.2011 - 02:12) Joliat написал(а):
redreem, Вы случайно не потерялись? Вы сейчас вообще о чем?
Спустя 34 секунды (17.12.2011 - 02:13) Игорь_Vasinsky написал(а):
виталик по делу напишет, про булки инпост добавит.
ТС.. нужно ознакомится с примитивными функциями работы с БД+php, попыток не видно
а Виталик вроде в баню пошёл... за последний хлебулочный фабрикат)))
ТС.. нужно ознакомится с примитивными функциями работы с БД+php, попыток не видно
а Виталик вроде в баню пошёл... за последний хлебулочный фабрикат)))
Спустя 1 минута, 59 секунд (17.12.2011 - 02:15) Игорь_Vasinsky написал(а):
Цитата |
<a href="<?php $_SERVER['REQUEST_URI'].'Vasya' ?>">Vasya</a> |
это наверно html5 такой GET параметр стал поддерживать.. надо обновить апач...
Спустя 2 минуты, 23 секунды (17.12.2011 - 02:17) Joliat написал(а):
Игорь_Vasinsky, я понимаю, что пятница и все такое, но русским языком объяснить можно?
Если б знал как называются эти функции, чего бы я сюда тогда писал?
Пришел за советом, а Вы мне говорите, что я должен знать ответ перед тем как задать вопрос!
Если б знал как называются эти функции, чего бы я сюда тогда писал?
Пришел за советом, а Вы мне говорите, что я должен знать ответ перед тем как задать вопрос!
Спустя 5 минут, 56 секунд (17.12.2011 - 02:23) Игорь_Vasinsky написал(а):
ну во-первых о передачи данных в URL
первый параметр передаётся через ? последующие через &
name = value
index.php?action=view&id=5
Во вторых - БД - эти имена.. много имён..разделены через ","
для этого explode()
будет массив..
foreach - поможет (долго искал букву "ж", думал нету..а нашёл)
и вот вотом цикле - собирать url
уф... с трудом...... пятница...
первый параметр передаётся через ? последующие через &
name = value
index.php?action=view&id=5
Во вторых - БД - эти имена.. много имён..разделены через ","
для этого explode()
будет массив..
foreach - поможет (долго искал букву "ж", думал нету..а нашёл)
и вот вотом цикле - собирать url
уф... с трудом...... пятница...
Спустя 3 минуты, 27 секунд (17.12.2011 - 02:26) Joliat написал(а):
Вот нашел кусок кода касающийся первого вопроса:
Но как сделать мой вывод без цикла?
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
Но как сделать мой вывод без цикла?
<a href="<?php $_SERVER['REQUEST_URI'].'Vasya' ?>">Vasya</a>
<a href="<?php $_SERVER['REQUEST_URI'].'Petya' ?>">Petya</a>
...
<a href="<?php $_SERVER['REQUEST_URI'].'Kolya' ?>">Kolya</a>
Спустя 5 минут, 8 секунд (17.12.2011 - 02:31) Игорь_Vasinsky написал(а):
уф.
1. подключиться к БД mysql_connect()
2. выбрать БД mysql_select_db()
3. запрос на получние данных из БД SELECT * FROM table
4. получить ответ из БД в виде ассоц. массива mysql_fetch_assoc()
5. из строки, которая вернула БД - собрать массив explode(",", ????)
6. сс помощью цикла foreach обработать каждый элемент массива - формируя URL с GET (см 1й пост)
1. подключиться к БД mysql_connect()
2. выбрать БД mysql_select_db()
3. запрос на получние данных из БД SELECT * FROM table
4. получить ответ из БД в виде ассоц. массива mysql_fetch_assoc()
5. из строки, которая вернула БД - собрать массив explode(",", ????)
6. сс помощью цикла foreach обработать каждый элемент массива - формируя URL с GET (см 1й пост)
Спустя 2 минуты, 34 секунды (17.12.2011 - 02:34) Joliat написал(а):
Вот нашел еще кусок:
Можно считать с первым пунктом разобрались, я после сам все доделаю.
Второй и последний (на данный момент)- Сравнение переменной с другой на наличие совпадений.
<?php
$menu_string = "Новости~О нас~Продукция~Услуги~Контакты";
$menu = explode("~",$menu_string);
for ($i=0; $i < count($menu); $i++) {
echo "<a href=index-",$i+1,".php>",$menu[$i],"</a><br>";
};
?>
Можно считать с первым пунктом разобрались, я после сам все доделаю.
Второй и последний (на данный момент)- Сравнение переменной с другой на наличие совпадений.
Спустя 24 секунды (17.12.2011 - 02:34) redreem написал(а):
$c = '';
foreach ($pieces as $k => $v) {
$c .= '<a href="'.$_SERVER['REQUEST_URI'].$v.'>"'.$v.'</a>';
}
echo $c;
Спустя 6 минут, 30 секунд (17.12.2011 - 02:41) Игорь_Vasinsky написал(а):
а что содержит REQUEST_URI стесняюсь спросит?
а по поводу
а по поводу
Цитата |
равнение переменной с другой на наличие совпадений. |
какоё с какой, на конкретном примере.
Спустя 2 минуты, 6 секунд (17.12.2011 - 02:43) Joliat написал(а):
второй вопрос как я понимаю решается по средствам "strpos"?
Спустя 1 минута, 47 секунд (17.12.2011 - 02:45) Joliat написал(а):
Игорь_Vasinsky, конкретный пример приводил в самом первом сообщении:
Цитата |
Так же интересует функция, которая может проверить содержимое ячейки на совпадение с переменной. Т.е. загоняем в переменную чье-то имя $mane='Vasya'; а после ячейку в БП (например, такую:Vasya, Petya, Kolya) проверяем на наличие этого имени и при совпадении одного из имен проводим некую операцию. |
Спустя 1 минута, 31 секунда (17.12.2011 - 02:46) Игорь_Vasinsky написал(а):
не факт, эта функцияя ищет лишь совпадение, если речь идёт о сравнении то ==
да тут речь идет об идентичности - а это ==
да тут речь идет об идентичности - а это ==
Спустя 8 секунд (17.12.2011 - 02:46) inpost написал(а):
<?php $_SERVER['REQUEST_URI'].'Kolya' ?>
ГДЕ ВЫВОД? Где функция вывода?
А наличие обычным условием. if($var == 'Kolya') {echo ' class="checked"';}
ГДЕ ВЫВОД? Где функция вывода?
А наличие обычным условием. if($var == 'Kolya') {echo ' class="checked"';}
Спустя 5 минут, 2 секунды (17.12.2011 - 02:51) Joliat написал(а):
inpost, с этим вопросом, можно сказать, уже разобрались. Сейчас о совпадении и спать.))
Спустя 13 минут, 40 секунд (17.12.2011 - 03:05) Игорь_Vasinsky написал(а):
я же написаал - ==
if($var == $var2)
echo "Попался! двойничёк...";
Спустя 15 часов, 24 минуты, 45 секунд (17.12.2011 - 18:30) Joliat написал(а):
С первым вопросом разобрался и уже воплотил в код, который радует и работает, только есть один ньюанс:
код такой:
Идет перечень имен через запятую и в конце списка опять стоит запятая. Как ее заменить на точку? я подозреваю, что можно через substr, но куда его тут вставить?
Теперь второй вопрос.
Есть таблица вида (упрощенно):
id | user_name
-------------------------
02 | Vasya, Kolya
05 | Petya, Pasha
09 | Vasya
Как извлечь все id, где встречается имя Vasya?
код такой:
$oneuser = explode(", ",$owneruser);
for ($i=0; $i < count($oneuser); $i++) {
echo "<a href=http://название сайта/?user_",$oneuser[$i],">",$oneuser[$i],"</a>, "; };
Идет перечень имен через запятую и в конце списка опять стоит запятая. Как ее заменить на точку? я подозреваю, что можно через substr, но куда его тут вставить?
Теперь второй вопрос.
Есть таблица вида (упрощенно):
id | user_name
-------------------------
02 | Vasya, Kolya
05 | Petya, Pasha
09 | Vasya
Как извлечь все id, где встречается имя Vasya?
Спустя 37 минут, 44 секунды (17.12.2011 - 19:08) inpost написал(а):
Joliat
Через массив:
Через массив:
$array[] = "<a>...</a>";
implode(',',$array);
Спустя 2 минуты, 1 секунда (17.12.2011 - 19:10) inpost написал(а):
Вопрос второй - нарушение основных правил работы mysql, которое гласит, что связку надо делать между таблицами, и каждая запись должна быть, а не объединять.
id id_part user_name
1 02 Vasya
2 02 Kolya
3 05 Petya
4 05 Pasha
id id_part user_name
1 02 Vasya
2 02 Kolya
3 05 Petya
4 05 Pasha
Спустя 20 минут, 55 секунд (17.12.2011 - 19:31) Joliat написал(а):
я пользуюсь, тем что есть - движек WP.
так что? это не реально? по-моему, по такому принципу должен работать поиск по контенту. или я не прав?
какую функцию нужно использовать в моих целях?
так что? это не реально? по-моему, по такому принципу должен работать поиск по контенту. или я не прав?
какую функцию нужно использовать в моих целях?
Спустя 6 минут, 48 секунд (17.12.2011 - 19:37) killer8080 написал(а):
Цитата (Joliat @ 17.12.2011 - 17:30) |
Идет перечень имен через запятую и в конце списка опять стоит запятая. Как ее заменить на точку? |
$str = rtrim($str, ', ').'.';
Спустя 22 минуты, 56 секунд (17.12.2011 - 20:00) inpost написал(а):
Joliat
Вопрос первый с уточнением:
Вопрос второй:
Ну значит криво у тебя, нарушено главное правило целостности СУБД. Почитай про 6 основных правил, чтобы понимать о чём я говорю.
Вопрос первый с уточнением:
$array = array();
while()
$array[] = "<a>...</a>";
$line = implode(',',$array).'.';
Вопрос второй:
Ну значит криво у тебя, нарушено главное правило целостности СУБД. Почитай про 6 основных правил, чтобы понимать о чём я говорю.
Спустя 6 минут, 37 секунд (17.12.2011 - 20:07) Joliat написал(а):
Первый вопрос решен собственным методом:
Разве на второй никто не знает ответ? Тут же все гуру PHP! Вы хоть натолкните на мысль, если знаете ответ.
for ($i=0; $i < count($oneuser)-1; $i++) {
echo "<a href=http://название сайта.ru/?user_",$oneuser[$i],">",$oneuser[$i],"</a>, ";
};
if (count($oneuser)-1 == $i) {
echo "<a href=http://название сайта.ru/?user_",$oneuser[$i],">",$oneuser[$i],"</a>.";
}
Разве на второй никто не знает ответ? Тут же все гуру PHP! Вы хоть натолкните на мысль, если знаете ответ.
Спустя 2 минуты, 43 секунды (17.12.2011 - 20:10) Joliat написал(а):
Цитата |
Ну значит криво у тебя, нарушено главное правило целостности СУБД. Почитай про 6 основных правил, чтобы понимать о чём я говорю. |
Вся жизнь кривая, но с этим же не мирятся, а что-то делают!
Скажите как происходит поиск фразы в ячейке с контентом и мне этого должно хватить. Т.к. тут схожие процессы. Я сейчас о втором вопросе!
Спустя 3 минуты, 9 секунд (17.12.2011 - 20:13) inpost написал(а):
В нормальной форме вот так:
А если криво, то ответ очевиден, всё переделать и сделать нормально!
Update: запросик подправил, чтобы уникальных не было, добавил DISTINCT
SELECT DISTINCT(`id_part`) FROM `table` WHERE `name` = 'Vasya'
А если криво, то ответ очевиден, всё переделать и сделать нормально!
Update: запросик подправил, чтобы уникальных не было, добавил DISTINCT
Спустя 12 минут, 41 секунда (17.12.2011 - 20:25) killer8080 написал(а):
Цитата (Joliat @ 17.12.2011 - 17:30) |
Теперь второй вопрос. Есть таблица вида (упрощенно): id | user_name ------------------------- 02 | Vasya, Kolya 05 | Petya, Pasha 09 | Vasya Как извлечь все id, где встречается имя Vasya? |
SELECT `id` FROM `table_name` WHERE `user_name` LIKE '%Vasya%'
Спустя 6 минут, 39 секунд (17.12.2011 - 20:32) inpost написал(а):
killer8080
А как же научить человека?! Вот будет использовать, так и не выберется из грязи всяких там wordpressov в профессиональное программирование...
Joliat
Вот для прочтения и изучения:
http://ru.wikipedia.org/wiki/%D0%9D%D0%BE%...%80%D0%BC%D0%B0
http://www.google.ru/#sclient=psy-ab&hl=ru...iw=1920&bih=987
P.S. Это даже не "правильная", а просто "нормальная" форма
А как же научить человека?! Вот будет использовать, так и не выберется из грязи всяких там wordpressov в профессиональное программирование...
Joliat
Вот для прочтения и изучения:
http://ru.wikipedia.org/wiki/%D0%9D%D0%BE%...%80%D0%BC%D0%B0
http://www.google.ru/#sclient=psy-ab&hl=ru...iw=1920&bih=987
P.S. Это даже не "правильная", а просто "нормальная" форма
Спустя 2 минуты, 53 секунды (17.12.2011 - 20:35) killer8080 написал(а):
Цитата (inpost @ 17.12.2011 - 19:32) |
killer8080 А как же научить человека?!Вот будет использовать, так и не выберется из грязи всяких там wordpressov в профессиональное программирование... |
Ты ему предлагаешь wordpress переписать
Спустя 5 минут, 49 секунд (17.12.2011 - 20:41) inpost написал(а):
killer8080
Я думаю, это какой-то скаченный модуль, который бесплатно выложил Поповский угодник! Типо дополнение, а не ядро самого вордпресса!
Я думаю, это какой-то скаченный модуль, который бесплатно выложил Поповский угодник! Типо дополнение, а не ядро самого вордпресса!
Спустя 1 час, 20 минут, 10 секунд (17.12.2011 - 22:01) Joliat написал(а):
inpost, это не чьи-то, а мои собственные доработки, которые, на мой взгляд и потребности, необходимо внести.
killer8080, LIKE - это именно, то что мне было нужно!
Спасибо всем за помощь!
killer8080, LIKE - это именно, то что мне было нужно!
Спасибо всем за помощь!
Спустя 2 минуты, 39 секунд (17.12.2011 - 22:04) killer8080 написал(а):
Цитата (Joliat @ 17.12.2011 - 21:01) |
inpost, это не чьи-то, а мои собственные доработки, которых, на мой взгляд и потребности, необходимо внести. |
ну тогда советую прислушаться к рекомендациям inpost-а, и почитать о нормализации БД.
Спустя 5 минут, 22 секунды (17.12.2011 - 22:09) Joliat написал(а):
В этом определенном случае, я считаю, что правильно поступаю. А вообще, я согласен с Вами.
Я формирую единичные запросы, не нарушая структуры БД WP.
Я формирую единичные запросы, не нарушая структуры БД WP.
Спустя 5 часов, 50 минут, 24 секунды (18.12.2011 - 03:59) inpost написал(а):
Joliat
Ничего, поработаешь пару лет, уйдет гордыня, научишься правильно программировать
Некоторые сразу учатся, некоторым надо много времени
Ничего, поработаешь пару лет, уйдет гордыня, научишься правильно программировать
Некоторые сразу учатся, некоторым надо много времени
_____________
О-о-о-о-о-очень начинающий...