PHP.SU

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

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

> Найдено сообщений: 11
dezz Отправлено: 14 Марта, 2011 - 20:34:03 • Тема: Странно работает удаление одинаковых записей • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 92
Спасибо, конечно с именем таблицы я немного протупил, я сразу обратил на это внимание, просто смутил тот факт, что TABLE было в верхнем регистре и по этому подумал, что так и надо... Улыбка
dezz Отправлено: 14 Марта, 2011 - 20:20:50 • Тема: Странно работает удаление одинаковых записей • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 92
Переименовал таблицу в t1, делаю запрос:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id FROM TABLE WHERE t1 WHERE EXISTS (SELECT * FROM TABLE t2 WHERE t2.id < t1.id AND t2.text = t1.text)

Ошибка:
Цитата:
#1064 - 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 'TABLE WHERE t1 WHERE EXISTS (SELECT * FROM TABLE t2 WHERE t2.id < t1.id AND t2.t' at line 1
dezz Отправлено: 14 Марта, 2011 - 19:56:21 • Тема: Странно работает удаление одинаковых записей • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 92
Спасибо за предложенные варианты. Конечно хотелось бы ещё понять, почему мой метод не работает Улыбка
Champion пишет:
CODE (SQL):
скопировать код в буфер обмена
  1.  SELECT id FROM TABLE WHERE t1 EXISTS (SELECT * FROM TABLE t2 WHERE t2.id < t1.id AND t2.text = t1.text)

- айдишки получили, теперь по ним можно удалить.

t1 и t2 на сколько я понимаю - это две одинаковые таблицы?
При выполнении данного запроса вылетает вот такая ошибка:
Цитата:
#1064 - 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 'TABLE WHERE auto EXISTS (SELECT * FROM TABLE auto2 WHERE auto2.id < auto.id AND ' at line 1
dezz Отправлено: 14 Марта, 2011 - 00:31:59 • Тема: Странно работает удаление одинаковых записей • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 92
Имею таблицу
id | text
-------------
1 | qq
2 | ww
3 | qq
4 | gf
5 | pu
6 | ww
7 | qq
8 | cx

Видим, что существуют записи с одинаковым значением 'text' (qq, ww)
Нужно удалить одинаковые записи, но, чтобы одна из записей осталась, т.е. запись со значением 'qq' в базе повторяется 3 раза (id -1,3,7), нужно удалить записи с id == 3,7
Написал вот такой код:
PHP:
скопировать код в буфер обмена
  1. function del($table)
  2. {
  3.         $sql = mysql_query("SELECT * FROM $table");
  4.         for ($i=0; $i<mysql_num_rows($sql); $i++)
  5.         {
  6.                 $f = mysql_result($sql, $i, 1); // получаю значение из колонки 'text'
  7.                 $f_id = mysql_result($sql, $i, 0); // получаю значение из колонки 'id'
  8.                 for ($x=0; $x<mysql_num_rows($sql); $x++)
  9.                 {
  10.                         $s = mysql_result($sql, $x, 1);
  11.                         $s_id = mysql_result($sql, $x, 0);
  12.                         if (($f==$s) && ($f_id!=$s_id)) // сравниваю одинаковые ли записи, но чтобы id были разные
  13.                         {
  14.                                 mysql_query("DELETE FROM $table WHERE ID=$s_id;"); // Удаляю повторяющуюся запись
  15.                         }
  16.                 }
  17.         }
  18. }

Ошибка вот в чём. Удаляются все записи, т.е. будут удалены все записи со значением 'ww', 'qq'.
Мне кажется, что я не замечаю чего то элементарного, просто глаза замылены Улыбка
dezz Отправлено: 22 Октября, 2010 - 18:01:25 • Тема: substr и кирилица • Форум: Программирование на PHP

Ответов: 4
Просмотров: 1177
Спасибо.
dezz Отправлено: 22 Октября, 2010 - 16:22:35 • Тема: substr и кирилица • Форум: Программирование на PHP

Ответов: 4
Просмотров: 1177
Здравствуйте!

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. header('Content-Type: text/html; charset=utf-8');
  4. $string = 'абвгдеёжз';
  5.  
  6. if (substr($string, 0, 1)=='a') echo "true\n";
  7. else echo "false\n";
  8. echo substr($string, 0, 1), "\n";
  9.  
  10. if (substr($string, 0, 2)=='a') echo "true\n";
  11. else echo "false\n";
  12. echo substr($string, 0, 2), "\n";
  13. ?>
  14.  


Вывод:
Цитата:

false
(тут иероглиф) -проблема с кодировкой
false
а


Собственно вопросы:
Почему работая с кирилицей выполняя substr($string, 0, 1) отображается символ в непонятной кодировке?
Почему если выполнить strlen(substr($string, 0, 2)) будет 2? В принципе понятно почему, но как заставить работать приведённый выше код, чтобы возвращало true?
Вообщем не понятно почему функция substr() странно работает с кирилицей... Хотелось бы услышать решение данной проблемы!
dezz Отправлено: 19 Сентября, 2010 - 21:19:02 • Тема: Curl - бинарный ответ • Форум: Программирование на PHP

Ответов: 3
Просмотров: 595
Ох, спасибо) Шокирован тем, что я допустил такую ошибку Голливудская улыбка
dezz Отправлено: 19 Сентября, 2010 - 20:45:27 • Тема: Curl - бинарный ответ • Форум: Программирование на PHP

Ответов: 3
Просмотров: 595
Имеется вот такой код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $ch = curl_init('http://site.ru/oo.php');
  4. curl_setopt($ch, CURLOPT_POST, 1);
  5. curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.7) Gecko/20100723 Fedora/3.6.7-1.fc13 Firefox/3.6.7');
  6. $headers = array
  7. (
  8.         'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  9.         'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
  10.         'Accept-Encoding: gzip,deflate',
  11.         'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
  12. );
  13. curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
  14. curl_setopt($ch, CURLOPT_REFERER, 'http://site.ru/oo.php?');
  15. curl_setopt($ch, CURLOPT_POSTFIELDS, 's=&do=register&url=http%253A%252F%252Fsite.ru%252F&month=0&day=0&year=0&who=adult&agree=1');
  16. curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");  
  17. curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");  
  18. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  19. $result = curl_exec($ch);
  20. echo iconv('UTF-8', 'CP1251', $result);
  21. ?>
  22.  

В результате получаю бинарный ответ, как быть?
dezz Отправлено: 25 Июня, 2010 - 20:31:47 • Тема: Пригласить друга • Форум: Программирование на PHP

Ответов: 24
Просмотров: 1248
Demas пишет:
15 минут для тебя,но не для меня я с PHP вижу его третий раз а пытыюсь разобратся сейчас по указаным ссылкам выше первый раз.Куда что тыкать и как менять не знаю,знал бы совета умного на форуме не спрашмвал

Для таких вещей существует раздел - Напишите за меня пожалуйста
dezz Отправлено: 25 Июня, 2010 - 19:47:46 • Тема: Пригласить друга • Форум: Программирование на PHP

Ответов: 24
Просмотров: 1248
http://www.php-mail[dot]ru/?id=2
Думаю этот пример поможет вам разобраться Улыбка

Цитата:

проблема в том что скрипта для отправки писма нет,или есть?

http://www[dot]google[dot]ru/#hl=ru&[dot][dot][dot]p+отправка+почты
dezz Отправлено: 25 Июня, 2010 - 15:05:57 • Тема: Раздел "Изучение PHP" • Форум: Литература

Ответов: 4
Просмотров: 3492
Хочу начать изучение PHP, а именно с прочтения раздела "Изучение PHP" на сайте.
Может есть возможность читать материал из данного раздела в оффлайне, т.е. скачать материал к себе на комп? Будет много свободного времени, но не будет выхода в интернет и хотелось бы это время занять изучение PHP.

А то, что-то лень писать парсер под это дело, может даже уже кто-то спарсил и поделится результатом?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB