PHP.SU

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

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

> Найдено сообщений: 18
alexander4321 Отправлено: 29 Ноября, 2012 - 09:26:19 • Тема: Неправильная кодировка • Форум: Вопросы новичков

Ответов: 6
Просмотров: 296
Всем спасибо! В Notepad преобразовал в кодировку utf-8 без BOM. Помогло.
alexander4321 Отправлено: 28 Ноября, 2012 - 18:01:55 • Тема: Неправильная кодировка • Форум: Вопросы новичков

Ответов: 6
Просмотров: 296
jobsdata пишет:
а сами файлы с расширением *.php , в какой кодировке?!

Пробовал и utf-8, и Windows-1251 - результат одинаковый
(Добавление)
sKaa пишет:
проверяйте, чтобы галочка BOM была отключена

А где эта ВОМ находится?
alexander4321 Отправлено: 28 Ноября, 2012 - 15:18:19 • Тема: Неправильная кодировка • Форум: Вопросы новичков

Ответов: 6
Просмотров: 296
Добрый день! Не поможете решить проблему с кодировкой на сайте?
У нас есть сайт http://www.40auto.ru. написан на HTML. Подгрузил форум phpBB. Решил сделать поиск по сайту, а заодно и по форуму с помощью Яндекс. Для вставки полученного от Яндекса кода на сайт решил пересохранить все страницы сайта с расширением .php, а в требуемом месте как раз и вставил код Яндекса. Но при выводе страниц вместо русского текста появляются вопросительные знаки. Вот та же самая начальная страница, но уже с расширением .php http://www.40auto.ru/index.php.
В коде страницы пробовал менять кодировку: charset="utf-8" поменял на charset="Windows-1251". Не помогает. Причем, если после открытия страницы в браузере устанавливаю кодировку Windows-1251, то вместо вопросительных знаков появляется русский текст. Заранее спасибо!
alexander4321 Отправлено: 26 Октября, 2012 - 12:15:52 • Тема: Запись данных из одной таблицы в другую (MySQL) • Форум: Вопросы новичков

Ответов: 2
Просмотров: 405
Спасибо за подсказку! Почитал тут литературу. Вот, что получается:
Есть две таблицы - одна с прайс-листом (kuzov), содержит 5 полей: cat_num, descr, amount, price, company. Другая таблица (order) с заказами содержит поля такого же типа с префиксом order_.
Не могли бы пояснить поподробнее приведенный код? Как я понимаю, 2. INSERT INTO tbl_name - в моем случае tbl_name это order; 3. SELECT t1.bla,t1.bla,t1.bla -здесь оставляем t1, а вместо bla пишем название поля; 4. FROM tbl_name t1 - здесь tbl_name будет order. В строке 5. INNER JOIN tbl_name t2 ON t1.id=t2.id сравниваем значения по ключам; в строке 6. WHERE t1.bla = value AND t2.bla <> value) проверяем соответствие значений. Не понял значение символов последней строки
<>
.
Мне нужно, чтобы из таблицы kuzov вставлялись значения в таблицу order при отсутствии такой же записи там, в случае нахождения подобной записи новая запись не производится, а просто изменяется значение одного из полей совпадающей записи (в данном случае числовое значение поля order_amount увеличивается на требуемую величину).
По прочитанной литературе составил запрос
SELECT `cat_num` , COUNT( * )
FROM kuzov
JOIN order ON ( `cat_num` = `order_cat_num` )
LIMIT 0 , 30

Этот код работает, совпадающие позиции находятся. Не пойму, как теперь все это применить.
(Добавление)
Также нашел еще один код.
INSERT INTO order (`order_cat_num`,`order_descr`, `order_amount`, `order_price`, `order_company`)
SELECT 'RA1475', 'ПРУЖИНА ПОДВЕСКИ K-FLEX', '4', '915,11', 'KYB'
FROM dual
WHERE NOT EXISTS (SELECT `order_cat_num` FROM order
WHERE `order_cat_num` = 'RA1475');

У меня он работает. В данном коде поиск происходит по полю `order_cat_num` таблицы order. Сам каталожный номер я вручную записал в код 'RA1475'. Но я хочу сделать, чтобы этот номер брался из поля cat_num таблицы kuzov.
Вот меня и интересует, можно ли в последнюю строчку (или в какую потребуется) данного кода вместо вручную вписанного значения 'RA1475' подставить значение переменной, содержащей этот код?
alexander4321 Отправлено: 25 Октября, 2012 - 16:26:40 • Тема: Запись данных из одной таблицы в другую (MySQL) • Форум: Вопросы новичков

Ответов: 2
Просмотров: 405
Добрый день! В одной из таблиц БД загружен прайс-лист. Если при поиске по этой таблице обнаруживается нужная позиция, то она переписывается в другую таблицу (таблица с заказами). Теперь мне нужно несколько усложнить процесс, т. е. перед записью в таблицу с заказами необходимо проверить, а не существует ли уже такая запись в таблице с заказами. Если существует, то запись не производится, а просто увеличивается количество деталей. Если записи нет, то только тогда происходит запись в таблицу с заказами.
Как я понимаю, необходимо произвести поиск сперва в таблице с прайс-листом (это уже сделано), затем для записи в таблицу с заказами необходимо осуществить в этой таблице поиск этой детали. Далее, если запись есть, то ее количество увеличивается на требуемую величину. Иначе производится запись в таблицу с заказами.
Не подскажете, как можно это реализовать? С помощью функций и т. д.? Например, результаты поиска по разным таблицам можно записать в разные переменные и потом их сравнить? Я начинающий. Был бы признателен за примерную схему кода (что нужно реализовывать с помощью функций, может вообще можно обойтись без функций)? Спасибо!
alexander4321 Отправлено: 19 Октября, 2012 - 15:34:31 • Тема: загрузка прайса в MySQL • Форум: Вопросы новичков

Ответов: 0
Просмотров: 62
Добрый день! Требуется загружать прайс их Excel в MySQL. Для этого я открываю Excel, сохраняю его как CSV файл. При этом русские буквы заменяются на краказябры, а, если в каталожном номере первым стои 0 (ноль), то он удаляется. Вот примера из файла Excel:
08669 Бампер передний \ ALFA ROMEO 156 (97-02).
Вот, что получается при сохранении его в формате CSV:
1) вместо 08669 записано 8669;
2) вместо Бампер передний \ ALFA ROMEO 156 (97-02). записано ?я?ф?  ф? ?э?р? \ ALFA ROMEO 156 (97-02).

Соответственно, из CSV формата в базу русский текст записывается в виде краказябр (и выводится обратно тоже). Мне советовали включать в код строчку для правильной кодировки mysql_query('SET NAMES utf8');. При включении такого кода на второй же строке выдает ошибку Incorrect string value: '\xF2?\xF7?? ...' for column 'descr' at row 1.
Кодировку для столбцов в базе я пробовал применять и cp_1251, и utf8. Результат тот же самый. Да и кодировку я определяю уже для файла с краказябрами.
Не подскажете, как можно решить эту проблему? Спасибо!
alexander4321 Отправлено: 04 Октября, 2012 - 10:31:50 • Тема: Загрузка Excel файла в MySQL • Форум: Вопросы новичков

Ответов: 2
Просмотров: 205
При восстановлении обратно в .xls краказябры так ими и остаются. С ними думаю позже разобраться. Но в большей степени меня сейчас интересует запись данных из .xls в MySQL. Нашел в одной книге описание функции php explode. Думаю это мне помогло бы. Вот пример, который там был рассмотрен:
$str = "user:password:/home/user";
$info = explode (":", $str);
print_r($info);

Вывод будет следующим:
Array
(
[0] => user
[1] => password
[2] => /home/user
)

Насколько я понял, такой массив загрузить в MySQL уже несложно?
У меня есть прайс в excel с пятью столбцами. При сохранении в формате CSV поля разделяются с помощью ;. Количество строк - несколько тысяч. Не подскажете, как присвоить переменной (в данном случае $str) необходимый файл .csv? Также в данном примере есть только одна строка, а в реальном файле несколько тысяч строк и 5 полей. Как можно все это реализовать? Спасибо!
alexander4321 Отправлено: 03 Октября, 2012 - 09:38:55 • Тема: Загрузка Excel файла в MySQL • Форум: Вопросы новичков

Ответов: 2
Просмотров: 205
Добрый день! Необходимо предусмотреть загрузку файла Excel файла в базу данных MySQL.
Нашел информацию, что можно сохранить файл Excel в формат CSV, а затем уже можно загружать его в MySQL. После сохранения файла в CSV формате русский текст меняется на краказябры. Вот пример:
Ѓ®Є®ў®Ґ §ҐаЄ «® ¬Ґе ­ЁЄ  «Ґў®Ґ 388-ADD006-C0-2T \ Audi-100 (C4) (91-94)
Не подскажите, при извлечении данных из MySQL краказябры заменятся на русский текст или нужно что-то изменить?
Также уточню на всякий случай, файл Excel -> Сохранить как -> CSV (MS-DOS). Там еще можно было выбрать CSV(Macintosh). Насколько я понял, для Windows нужно было выбирать CSV (MS-DOS)?
alexander4321 Отправлено: 02 Октября, 2012 - 10:43:43 • Тема: Compilation failed: unmatched parentheses at offset 20 • Форум: Вопросы новичков

Ответов: 4
Просмотров: 694
Увидел ошибку. Спасибо за помощь!
alexander4321 Отправлено: 02 Октября, 2012 - 09:45:17 • Тема: Compilation failed: unmatched parentheses at offset 20 • Форум: Вопросы новичков

Ответов: 4
Просмотров: 694
Отправляю оба файла:
1)ccard.html
CODE (html):
скопировать код в буфер обмена
  1. <body>
  2. <form action="ccard.php" method='post'>
  3.   <input type="text" name="cc_num" method="post">
  4.   <input type="submit" value="Проверить">
  5. </form>
  6. </body>


2)ccard.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. require "ccard.html";
  3. function is_cc_num($cc_num) {
  4.         $card_type = "";
  5.         //массив регулярных выражений, который используется для определения типа карты
  6.         $cards = array(
  7.                                    '/^4\d{12}(\d\d\d){0,1)$/' => 'visa',
  8.                   '/^5[12345]\d{14}$/' => 'mastercard'
  9.                                    );
  10.                                    // определение типа карты (visa или mastercard)
  11.                                    foreach ($cards as $reg_ex => $type) {
  12.                                            if (preg_match($reg_ex, $cc_num)) {
  13.                                                    $card_type = $type;
  14.                                                    break;
  15.                                            }
  16.                                    }
  17.                                    // мы не можем определить тип карты, возвращаем false
  18.                                    if (!$card_type) {
  19.                                            return false;
  20.                                    }
  21.                                    // проверка контрольной суммы карты
  22.                                    $code = strrev($cc_num);
  23.                                    $crc = 0;
  24.                                    
  25.                                    for ($i = 0; $i < strlen($code); $i++) {
  26.                                            $current_num = intval($code[$i]);
  27.                                            if ($i & 1) {
  28.                                                    $current_num *= 2;
  29.                                            }
  30.                                            
  31.                                            $crc += $current_num % 10;
  32.                                            if ($current_num > 9) {
  33.                                                    $crc += 1;
  34.                                            }
  35.                                    }
  36.                                    
  37.                                    if ($crc % 10 == 0) {
  38.                                            return $card_type;
  39.                                            
  40.                                    } else {
  41.                                            return false;
  42.                                    }
  43.                                    }
  44.                                    echo is_cc_num("4111 1111 1111 1111");
  45.                                    ?>
  46. </body>
alexander4321 Отправлено: 02 Октября, 2012 - 08:36:52 • Тема: Compilation failed: unmatched parentheses at offset 20 • Форум: Вопросы новичков

Ответов: 4
Просмотров: 694
Добрый день! Изучаю php по книге. Там есть одна тема, посвященная написанию скрипта для проверки валидности введенного номера банковской карты. Код перепечатал из книги. Создал 2 файла: один html для ввода номера карты, а другой php. Html окно открывается без всяких проблем. Ввожу туда номер карточки, жму Ок. Php скрипт не работает, выдает ошибку в строке с preg-match. Вот часть кода:
foreach ($cards as $reg_ex => $type) {
if (preg_match($reg_ex, $cc_num)) {
//это и есть строка 20
$card_type = $type;
break;
}
}

Текст ошибки:
Warning: preg_match() [function.preg-match]: Compilation failed: unmatched parentheses at offset 20 in C:\Apache2\htdocs\php6\4\ccard.php on line 20
Согласно записи получается, что есть не парные круглые скобки, но в коде я не вижу такого.Далее жму на preg_match(), открывается сообщение:
The requested URL /php6/4/function.preg-match was not found on this server.
Как я понял, функция preg-match не найдена. Подумал, что не все правильно настроил на локальном сервере, выгрузил на хостинг. Там выдает точно такую же ошибку и так же не находит данную функцию.
Не подскажите, что сделано не так? Заранее спасибо!
alexander4321 Отправлено: 28 Сентября, 2012 - 09:39:53 • Тема: Проверка корректности e-mail • Форум: Вопросы новичков

Ответов: 4
Просмотров: 443
Спасибо за помощь! Все работает. Вынес HTML код в отдельный файл. Получилось вот что:
1)HTML файл (email.html)
CODE (html):
скопировать код в буфер обмена
  1. <body>
  2. <form method='POST'>
  3.   <input type="email" name="email" method="post">
  4.   <input type="submit" value="Проверить">
  5. </form>
  6. </body>


2) PHP файл
PHP:
скопировать код в буфер обмена
  1. <body>
  2. <?PHP
  3. filter_var('example@mail.ru', FILTER_VALIDATE_EMAIL);
  4. include "email.html";
  5. if($_POST){
  6.         if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
  7.                 echo "всё круто!";
  8.                 }
  9.                 else{
  10.                         echo "Всё печально";
  11.                 }
  12. }
  13. ?>
  14. </body>

Спасибо еще раз!
alexander4321 Отправлено: 28 Сентября, 2012 - 08:49:44 • Тема: Проверка корректности e-mail • Форум: Вопросы новичков

Ответов: 4
Просмотров: 443
Добрый день! Пытаюсь создать веб страницу для проверки правильности введенного e-mail. Попробовал использовать <input type=email>. Сделал все в одном файле. Вот код между тегами body
<input type="email" name="email" method="post">
<input type="button" value="Проверить">
<?php
function is_email($email) {
if (! preg_match( '/^[A-Za-z0-9!#$%&\'*+-/=?^_`{|}~]+@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)+[A-Za-z]$/', $email)) {
return false;
} else {
return true;}
}
if (is_email($email)) echo "E-mail правильный";
else echo "Введите правильный e-mail";
?>
Понимаю, что что-то не так делаю, но не могу понять что именно. Где связь между введенным email и переменной $email? Как то же в эту переменную должен записываться введенный email?
alexander4321 Отправлено: 01 Июля, 2012 - 23:06:25 • Тема: Всплывающие окна, проблемы с отображением в Firefox. • Форум: Вопросы новичков

Ответов: 2
Просмотров: 121
Спасибо! Буду исправлять.
alexander4321 Отправлено: 01 Июля, 2012 - 21:47:39 • Тема: Всплывающие окна, проблемы с отображением в Firefox. • Форум: Вопросы новичков

Ответов: 2
Просмотров: 121
Добрый вечер! У меня есть сайт www.40auto.ru.
1) при отображении главной страницы в Firefox (у меня стоит 13.0.1, пишут, что последняя версия) не отображается целый блок adbox. Причем, как то списывался с одним человеком, он сказал, что у него 13 версия Firefox стоит, по его словам все нормально работает. Не могу понять, что с этим блоком не так. В других браузерах все работает нормально.

2) хочу модернизировать главную страницу, добавить туда случайный вывод текста (рекламы услуг, будет выводиться часть текста или его начало) с тем, чтобы при нажатии на него во всплывающем окне была изложена вся нужная информация. Такие всплывающие окна обычно используют для просмотра фотографий и т. д. Не скажете, как правильно называется данная функция? Не зная название не могу искать информацию о том, как это делается.
Спасибо заранее!

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB