Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: php + mysql + twitter + curl

 PHP.SU

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


 Страниц (1): [1]   

> Без описания
koras
Отправлено: 10 Мая, 2010 - 02:24:38
Post Id



Частый гость


Покинул форум
Сообщений всего: 224
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




На сайте необходимо сделать постинг последних новостей в твитер.

Новости на сайте записываются в базе стандартно.

sql
insert into (некое уникальное id которое генерируется по мере увеличения auto_increment
)

На сайте необходимо брать поледнюю новость и постить на твитере + урл.
Урл на сайте генерится из id. Так же необходимо брать уникальный урл и тоже отправлять его на твитер, но как его извлеч с базы непонимаю (((
Брать поледнее ID не получиться, так как журналист не один, а несколько, и если несколько журналистов запостят в один момент несколько новостей то они могут с некоторой вероятностью перехватить новость.


PHP:
скопировать код в буфер обмена
  1.  
  2. function updateTwitter($status,$username,$password){
  3.  
  4. $url = "http://api.twitter.com/1/statuses/update.xml";
  5. $postargs = 'status='.urlencode($status);
  6. $responseInfo=array();
  7. $ch = curl_init($url);
  8.  
  9. curl_setopt ($ch, CURLOPT_POST, true);
  10.  
  11. curl_setopt ($ch, CURLOPT_POSTFIELDS, $postargs);
  12.  
  13. curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$password);
  14.  
  15.         curl_setopt($ch, CURLOPT_VERBOSE, 1);
  16.         curl_setopt($ch, CURLOPT_NOBODY, 0);
  17.         curl_setopt($ch, CURLOPT_HEADER, 0);
  18.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION,0);
  19.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  20.         $response = curl_exec($ch);
  21.         $responseInfo=curl_getinfo($ch);
  22.  
  23.         if(intval($responseInfo['http_code']=='200')){
  24.  
  25.         echo 'Status: '.$response.'';
  26.         }else{
  27.  
  28.         echo 'Status: Error: '.$responseInfo['http_code'].'';
  29.         }
  30. }


Если придумать велосипед
Есть так же вариант с генерацией некого уникального id который тоже будет добавляться в базу в месте с новостью, но генерироваться он будет на стороне php а не стороне mysql и уже этот id привязать к твитеру.

PHP:
скопировать код в буфер обмена
  1. SELECT max(id)   FROM `news` WHERE 1

тема клозет, решил как сделать.
Может кто-то и лучше что-то посоветует

(Отредактировано автором: 10 Мая, 2010 - 03:14:47)

 
 Top
JustUserR
Отправлено: 10 Мая, 2010 - 10:39:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




koras пишет:
Брать поледнее ID не получиться, так как журналист не один, а несколько, и если несколько журналистов запостят в один момент несколько новостей то они могут с некоторой вероятностью перехватить новость.
В принципе после отправки SQL-запроса для вставки новой записи от PHP-скрипта - как бы там не было это запись будет вставлена и ей будет присвоен определенный номер который можно узнать в last_insert_id
Вы также можете включить режим транзакций (Он поддерживается в InnoDB) и таким образом заблокировать одновременное добавление и получение номера последней записи из БД


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Prog
Отправлено: 10 Мая, 2010 - 10:56:14
Post Id



Частый гость


Покинул форум
Сообщений всего: 207
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)




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

(Отредактировано автором: 10 Мая, 2010 - 11:01:19)

 
 Top
JustUserR
Отправлено: 10 Мая, 2010 - 10:59:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Prog пишет:
Теперь нам нужно отобразить последнею новость в самом верху . для этого мы воспользуемся циклом for .
А какой смысл пользоваться циклом for в данном случае - ведь если вас интересует сделать так чтобы на время выборки последней записи не могли добавить запись поверх нее - то достаточно запустить транзакцию а вот как раз в добавляющем SQL-запросе уже делать проверку на возможность записи


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Prog
Отправлено: 10 Мая, 2010 - 11:02:53
Post Id



Частый гость


Покинул форум
Сообщений всего: 207
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)




Не понял Я думал что нужно просто вывести последнею новость
 
 Top
JustUserR
Отправлено: 10 Мая, 2010 - 11:04:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Prog пишет:
Я думал что нужно просто вывести последнею новость
Насколько я понял нужно не просто вывести последнюю новость - а получить последнюю добавленную данной инстанцией PHP-скрипта новость - с учетом того что скорость добавления может быть большой


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
koras
Отправлено: 10 Мая, 2010 - 13:10:10
Post Id



Частый гость


Покинул форум
Сообщений всего: 224
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. то достаточно запустить транзакцию а вот как раз в добавляющем SQL-запросе уже делать проверку на возможность записи

А где можно почитать про транкзацию? (имено проверку на возможность записи и так далее)
С пыхой много работал, а вот со скулем только по мере необходимости.
 
 Top
JustUserR
Отправлено: 10 Мая, 2010 - 15:28:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




koras пишет:
А где можно почитать про транкзацию? (имено проверку на возможность записи и так далее)
С пыхой много работал, а вот со скулем только по мере необходимости.
Транзакции являются одним из основным элементов БД особенно с высокой нагрузкой - они широко используются в Oracle а в mysql поддерживаются только с таблицами InnoDB
В общих чертах об этом можно почитать здесь http://linuxsoft[dot]ru/info/lib/lib[dot][dot][dot]ransactions[dot]html


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB