PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (19): « 1 2 [3] 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 283
foozzi Отправлено: 03 Марта, 2013 - 03:17:23 • Тема: скрипт рейтинга • Форум: Вопросы новичков

Ответов: 0
Просмотров: 57
есть скрипт рейтинга:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(!isset($_POST['id'])) { exit('Error!'); }
  4. require_once('../config.php');
  5.       $ip=$_SERVER['REMOTE_ADDR'];//client ip address
  6.       if($_POST['id'])
  7.       {
  8.       $id=$_POST['id'];
  9.       preg_replace("/[^\\w\\x7F-\\xFF\\s]+/s", "", $id);
  10.       $id = trim(htmlspecialchars(stripslashes($id)));
  11.       //IP-address verification
  12.       $ip_sql=mysql_query("select ip_add from image_IP where img_id_fk='$id' and ip_add='$ip'");
  13.       $count=mysql_num_rows($ip_sql);
  14.       if($count==0)
  15.       {
  16.       // Updateing Love Value
  17.       $sql = "update data set love=love+1 where id='$id'";
  18.       mysql_query( $sql);
  19.       // Inserting Client IP-address
  20.       $sql_in = "insert into image_IP (ip_add,img_id_fk) values ('$ip','$id')";
  21.       mysql_query( $sql_in);
  22. $result=mysql_query("select love from data where id='$id'");
  23.       $row=mysql_fetch_array($result);
  24.       $love=$row['love'];
  25. ?>
  26. <i class="icon-heart"></i><span align="left"><?PHP echo $love; ?></span>
  27.       <?PHP
  28.       }
  29.       else
  30.       {
  31.       // Already Loved
  32.       echo 'Уже голосовал!';
  33.       }
  34.       }
  35.       ?>
  36.  

но не могу понять, как допилить, что бы при повторном нажатии, выводило не 'Уже голосовал!', а значение на 1 уменьшалось, при еще одном, увеличивалось, и так далее?
кое что вышло, но значение уходило даже в минус! а надо только на 1
foozzi Отправлено: 20 Февраля, 2013 - 23:36:25 • Тема: регулярка и массив • Форум: Вопросы новичков

Ответов: 8
Просмотров: 284
DelphinPRO пишет:
gefard пишет:
а может лучше так
текст в массив по словам сначала
не лучше. к чему сложности, когда все решается одной регуляркой..
(Добавление)
foozzi пишет:
как из текста выбрать все слова с символом #

мы же кажется уже выяснили это здесь: http://forum.php.su/topic.php?fo...1&topic=9163

там тоже самое что и я тут показываю
foozzi Отправлено: 20 Февраля, 2013 - 21:24:42 • Тема: регулярка и массив • Форум: Вопросы новичков

Ответов: 8
Просмотров: 284
DelphinPRO пишет:
foozzi пишет:
preg_match_all возвращает массив

вы все-таки посмотрите описание этой функции

теперь понял, но я теперь совсем запутался, как из текста выбрать все слова с символом # а потом регуляркой убрать из этих слов все символы кроме букв и цифр и поместить в массив для дальнейшей работы в цикле ?
foozzi Отправлено: 20 Февраля, 2013 - 20:59:21 • Тема: регулярка и массив • Форум: Вопросы новичков

Ответов: 8
Просмотров: 284
Мелкий пишет:
0) прочитайте сообщение об ошибке
1) посмотрите, что оказалось в переменной
2) посмотрите в мануале, что возвращает preg_match_all
3) предугадывая последующий вопрос - посмотрите, какие аргументы необходимы preg_replace

preg_match_all возвращает массив, все верно, я столько способов перепробовал, все равно результат нулевой, preg_replace я пропустил элемент, на что заменять, так как не понял суть работы array_map с пользовательской ф-ей.
Даже не знаю уже что пробовать...
foozzi Отправлено: 20 Февраля, 2013 - 20:13:29 • Тема: регулярка и массив • Форум: Вопросы новичков

Ответов: 8
Просмотров: 284
PHP:
скопировать код в буфер обмена
  1.  
  2. $text = '#tag! tag #tag2_'; //текст
  3.  
  4. $hasgtag = preg_match_all('/#[^\s]+/', $text, $output); // из текста выбирает только слова с символом #
  5. function replace(){  // ф-я для array_map
  6.      return preg_replace("/[^\\w\\x7F-\\xFF\\s]+/s", "");
  7. }
  8.  
  9. $new_arr = array_map("replace", $hasgtag[0]); // чистим все ненужные символы во всем массиве регуляркой и возвращаем новый массив обработаный
  10.  
  11. var_dump($new_arr[0]);
  12.  

получаю
Warning: array_map() [function.array-map]: Argument #2 should be an array in
NULL
foozzi Отправлено: 18 Февраля, 2013 - 00:13:18 • Тема: поиск по в базе • Форум: Вопросы новичков

Ответов: 1
Просмотров: 85
В таблице data содержатся слова bla,bla2,bla3
"SELECT * FROM data WHERE hashtags = '$tag' ORDER BY id DESC"
не выводит ничего, так как ищет полнострочно, как правильно запрос сформировать и что еще для этого нужно?
foozzi Отправлено: 17 Февраля, 2013 - 13:54:27 • Тема: get запрос передает 1 • Форум: Вопросы новичков

Ответов: 3
Просмотров: 124
Мелкий пишет:
foozzi пишет:
$_GET['tags'] =! ''

Здесь происходит в корне не то, на что вы рассчитываете. Интересная опечатка, да, вглядитесь внимательнее.

Ха! спасибо! я 2 дня мозги ломал, а почему такое происходит то?
foozzi Отправлено: 17 Февраля, 2013 - 13:47:15 • Тема: get запрос передает 1 • Форум: Вопросы новичков

Ответов: 3
Просмотров: 124
Передаю GET запрос таким образов в другой файл:
PHP:
скопировать код в буфер обмена
  1.  
  2.  if($_GET['tags'] =! '') {
  3.         $tag = $_GET['tags'];
  4.         include_once(THEME.'/tag.php');
  5.        
  6. }
  7.  

в файле tag.php GET запрос равен всегда 1
почему?
foozzi Отправлено: 17 Февраля, 2013 - 01:32:52 • Тема: обработка массива • Форум: Вопросы новичков

Ответов: 2
Просмотров: 124
Теперь трабла в том, что я не могу записать в базу все это
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''#dfgfgd '' at line 1
(Добавление)
мой косяк, разобрался
(Добавление)
Все же нужно именно считать сколько в массиве слов:
PHP:
скопировать код в буфер обмена
  1.  
  2. if($_POST['upload'] =! '') {
  3.         $input = $_POST['desc'];
  4.         preg_match_all('/(#[^\s]+)\s/iU', $input, $output);
  5.         $tag = '<a href="?tag='.$output[0][0].'">'.$output[0][0].'</a>';
  6.         $xut = preg_replace('/(#[^\s]+)\s/iU', $tag, $input);
  7.         echo $xut;
  8. }
  9.  

так я заменяю хэштег на ссылку для дальнейшего поиска, но только для одного, а если их 3, тогда как?
foozzi Отправлено: 17 Февраля, 2013 - 00:52:07 • Тема: обработка массива • Форум: Вопросы новичков

Ответов: 2
Просмотров: 124
есть код:
PHP:
скопировать код в буфер обмена
  1.  
  2. $input = "вот из всего #текста надо регуляркой или даже #незнаю чем еще";
  3. echo $input, "\n\n";
  4. preg_match_all('/(#[^\s]+)\s/iU', $input, $output);
  5. $hash = count($output);
  6. echo $output[0][0].$output[0][1];
  7. echo $hash;
  8.  

Мне нужно записать в базу столько слов, сколько находится в массиве, я посчитал например, вышло 2 слова: #текста и #незнаю, так вот, как мне каждое слово записать в базу? пробовал циклом считать, не вышло....
foozzi Отправлено: 17 Февраля, 2013 - 00:39:28 • Тема: Выделить слово в тексте • Форум: Вопросы новичков

Ответов: 11
Просмотров: 512
все, разобрался, спасибо
foozzi Отправлено: 16 Февраля, 2013 - 18:26:13 • Тема: Выделить слово в тексте • Форум: Вопросы новичков

Ответов: 11
Просмотров: 512
DelphinPRO пишет:
foozzi пишет:
выводит только первый хэштег

ну что вы врете?

КОД:
PHP:
скопировать код в буфер обмена
  1. header ('Content-type: text/plain; charset=utf-8');
  2.  
  3. $input = "вот из всего #текста надо регуляркой или даже #незнаю чем еще";
  4. echo $input, "\n\n";
  5. preg_match_all('/(#[^\s]+)\s/iU', $input, $output);
  6. var_dump($output);

ВЫВОД:
CODE (text):
скопировать код в буфер обмена
  1. вот из всего #текста надо регуляркой или даже #незнаю чем еще
  2.  
  3. array(2) {
  4.   [0]=>
  5.   array(2) {
  6.     [0]=>
  7.     string(14) "#текста "
  8.     [1]=>
  9.     string(14) "#незнаю "
  10.   }
  11.   [1]=>
  12.   array(2) {
  13.     [0]=>
  14.     string(13) "#текста"
  15.     [1]=>
  16.     string(13) "#незнаю"
  17.   }
  18. }


Видим, что вам нужен массив $output[1], который содержит список всех найденных хештегов.
(Добавление)
регулярку можно упростить до такой

как сортировать его, что бы в базу только теги записать?
foozzi Отправлено: 16 Февраля, 2013 - 14:28:52 • Тема: Выделить слово в тексте • Форум: Вопросы новичков

Ответов: 11
Просмотров: 512
esterio пишет:
foozzi
Так и должно бить
$output - ето и есть массив
var_dump($output);

выводит только первый хэштег
например: бла #tag бла #tag2 выведет только #tag
foozzi Отправлено: 16 Февраля, 2013 - 14:21:05 • Тема: Выделить слово в тексте • Форум: Вопросы новичков

Ответов: 11
Просмотров: 512
DelphinPRO пишет:

выводит просто:
Array
foozzi Отправлено: 16 Февраля, 2013 - 13:40:03 • Тема: Выделить слово в тексте • Форум: Вопросы новичков

Ответов: 11
Просмотров: 512
ams пишет:
Попробуй

PHP:
скопировать код в буфер обмена
  1.  
  2. $input = "вот из всего [#текста надо регуляркой#] или даже [#незнаю чем еще#], этот тег от и до конца слова выделить, а потом уже я записываю текст весь в одну таблицу [#(с тегами как текстом)#], а хэштеги будут в отдельной таблице.";
  3.  
  4. preg_match_all("/\[\#(.+)#\]+/iU", $input, $output);
  5.  
  6. print_r($output);
  7.  

немного не так, вот:
PHP:
скопировать код в буфер обмена
  1.  
  2. $input = "вот из всего [#текста] надо регуляркой или даже [#незнаю] чем еще, этот тег от и до конца слова выделить, а потом уже я записываю текст весь в одну таблицу (с тегами как текстом), а хэштеги будут в отдельной таблице.";
  3.  
  4.  
  5.  

как в twitter

Страниц (19): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB