Вопрос № 50716: Вы меня простите, я в PHP начинающий и никак немогу доделать выборку из БД
<?php
$dbhost = "localhost";
$dblogin = "root";
$dbpass = "";
$db = "adv";
$conn = mysql_pconnect(...Вопрос № 50749: Здравствуйте ув. эксперты!
Подскажите как можно использовать сжатие gzip на php и что нужно серверу для его реализации.
и желательно подкиньте рабочий примерчик!!...Вопрос № 50757: Уважаемые эксперты разъясните пожалуйста!
делаю защиту от регистрации, т.е. картика генерируется с которой надо ввести проверочный код
session_start();
session_register('number');
на странице с вызовом тоже session_star...Вопрос № 50760: Наконец-то сделал выборку из БД SQL. Но значения почему-то они выводятся через 5 пустых строк. Посмотрите, где я ошибся? И еще вопрос: Можно ли как-нибудь упростить конструкцию
// print "<OPTION value = "$row[1]">$row[1]<...Вопрос № 50771: Здравствуй, All! Такая дума у меня: есть текстовый (html, php - неважно) файл, в к-ом присутствует, скажем, пара тысяч знаков. Вывожу на сайт его содержание через php. Гружу файл txt с сервера. Но задумываюсь - как лучше загружать информацию такого б...Вопрос № 50808: Что есть что в этом коде?
$result=mysql_query("SELECT * FROM ads_city");
print '<SELECT NAME="city"> ';
while($row=mysql_fetch_row($result))
{
print "<OPTION value = "$row[2]"...
Вопрос № 50.716
Вы меня простите, я в PHP начинающий и никак немогу доделать выборку из БД
Отвечает: Ерёмин Андрей
Здравствуйте, Сычев Роман!
У вас ошибка в запросе выборки... Правильно будет так:
$result = mysql_query("SELECT `country` FROM `adv_country` WHERE `country` <> 0"); Выводить данные можно различными способами, например так:
for ($i = 0; $i < mysql_num_rows($result); $i++)
{
print mysql_result($result,$i);
} Ещё и в имени таблицы у вас ошибка...
Удачи!
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Когда Вы вызываете mysql_fetch_array(), на выходе Вы получаете именованный массив.
Соответственно, если Вами были указаны параметры в запросе (в данном случае country), то соответствующие им значения будут в массиве как по номеру (нумерация с 0), так и по имени.
Т.е. нужно написать так:
....
Для справки, этот же элемент массива доступен и как $rw[0], но я бы не рекомендовал при работе с БД использовать такой вариант, т,к, он напрямую зависит от порядка следования параметров в SQL запросе. Если Вы что-то поменяете в запросе - может понадобится перестановка индексов по всему коду, что очень трудоемко и не нужно :)
А при использовании именованных элементов, Вы гарантированы, что используете элемент ответа конкретно привязанный к параметру запроса.
Ответ отправил: Zysoftik (статус: 6-ой класс)
Ответ отправлен: 31.07.2006, 19:13
Вопрос № 50.749
Здравствуйте ув. эксперты!
Подскажите как можно использовать сжатие gzip на php и что нужно серверу для его реализации.
и желательно подкиньте рабочий примерчик!!
Отправлен: 01.08.2006, 02:36
Вопрос задал: Pessom (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Яруллин Азат Рифкатович
Здравствуйте, Pessom!
Вот:
http://www.internet-technologies.ru/articles/article_2.html
http://phpclub.ru/faq/wakka.php?wakka=arch/archfaq/archfaq1&show_comments=1
Удачи!
Ответ отправил: Яруллин Азат Рифкатович (статус: 6-ой класс)
Ответ отправлен: 01.08.2006, 15:33 Оценка за ответ: 5
Вопрос № 50.757
Уважаемые эксперты разъясните пожалуйста!
делаю защиту от регистрации, т.е. картика генерируется с которой надо ввести проверочный код
session_start();
session_register('number');
на странице с вызовом тоже session_start();
на сколько я понимаю, переменная сессии привязывается к браузеру и удаляется при закрытии, либо при принудительном удалении
У меня происходит следующее: если открыта страница с проверочным кодом и позже в другом браузере открыта таже страница, то код к первой подходит от второй, а от первой соответственно неподходит - что это может быть и как с этим бороться?
может хостер должен включить какую нибудь опцию?
страница сайта с кодом http://www.rostov-info.ru/add.php?m=1&n=0&page=2
Отвечает: Physicist
Здравствуйте, Топорков Алексей Иванович!
Переменная сессии обычно "привязывается" к cookies браузера (иногда - к URL). Поэтому, когда Вы открываете этот адрес в новом окне браузера, с точки зрения сервера Вы просто выполняете перезагрузку страницы, т.к. все cookies остались те же самые (все cookies с сайта хранятся в одном месте и никак не связаны с конкретным открытым окном). При этом, естественно, меняется номер, который нужно вводить в форму. НО! Страница, которая была открыта первой ничего не знает об этом и всё ещё выводит старые цифры
(хотя сервер уже ждет новые).
Так что от хостера здесь ничего не зависит - всё работает правильно. А смысла избавляться от такого "эффекта" на мой взгляд нет.
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 02.08.2006, 14:44
Вопрос № 50.760
Наконец-то сделал выборку из БД SQL. Но значения почему-то они выводятся через 5 пустых строк. Посмотрите, где я ошибся? И еще вопрос: Можно ли как-нибудь упростить конструкцию
// print "<OPTION value = "$row[1]">$row[1]</option>"; c 1 по 6
Отвечает: Ерёмин Андрей
Здравствуйте, Сычев Роман!
Я ведь Вам уже предлагал альтернативный метод... Вот ещё один:
$i = 1;
while($row=mysql_fetch_row($result))
{
print "<OPTION value = "$row[$i]">$row[$i]</option>";
$i++;
} --------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Козлов Алексей Сергеевич
Здравствуйте, Сычев Роман!
1. В самой базе нет пустых строк?
2. Вместо условия проверки if, вставь такую конструкцию
$conn = mysql_connect($host, $login, $password) or die("Ошибка
подключения");
Приложение:
--------- Версий еще много будет, пока есть фантазия...
Ответ отправил: Козлов Алексей Сергеевич (статус: 3-ий класс)
Ответ отправлен: 01.08.2006, 11:16
Отвечает: Zysoftik
Здравствуйте, Сычев Роман!
Самая главная ошибка: когда Вы работаете с массивом, возвращенным mysql_fetch_row, Вы работаете с каждой конкретной строкой ответа на Ваш SQL запрос. Поэтому, индексы массива обозначают не строки ответа, а столбцы.
И Вам не нужно делать вывод в цикле сразу всех строк. Для этого и сделан цикл.
Вам нужно сделать так, как я привожу в приложении.
Но лучше, как я раньше говорил, использовать mysql_fetch_array() или mysql_fetch_assoc() - тогда Вы получите значения колонок для конкретной строки в именованном массиве вида:
$row=array("id"=>"1","country"=>"USA");
и так для каждой строки последовательно в цикле.
Приложение:
Ответ отправил: Zysoftik (статус: 6-ой класс)
Ответ отправлен: 01.08.2006, 15:58
Вопрос № 50.771
Здравствуй, All! Такая дума у меня: есть текстовый (html, php - неважно) файл, в к-ом присутствует, скажем, пара тысяч знаков. Вывожу на сайт его содержание через php. Гружу файл txt с сервера. Но задумываюсь - как лучше загружать информацию такого большого объема - через текстовый файл, либо через базу данных (испульзую, ессно, мускл). Интересует производительность (с безопасностью вроде все ясно).
Отправлен: 01.08.2006, 11:55
Вопрос задал: Porsche (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Stamm
Здравствуйте, Porsche!
Если не надо делать поиск по этому тесту, то лучше, мне кажется, грузить из файла, да это и проще, всего одна ф-ция:file_get_contents('1.txt')(PHP >=4.3.0)
Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 01.08.2006, 12:11
Отвечает: Rok-set
Здравствуйте, Porsche!
Отвечу немного не в тему, а конкретно - как узнать скорость выполнения любого скрипта, либо его участка. Это называется "профилированием кода" и я уверен, по запросу Вы найдёте не только примеры, но и специализированные программы-профилировщики. А чтобы не просто посылаться на конкретный термин, приведу кусочек кода для "домашнего" использования.
Приложение:
--------- нет преград для разума!
Ответ отправил: Rok-set (статус: 6-ой класс)
Ответ отправлен: 03.08.2006, 07:52
Вопрос № 50.808
Что есть что в этом коде?
$result=mysql_query("SELECT * FROM ads_city");
print '<SELECT NAME="city"> ';
while($row=mysql_fetch_row($result))
{
print "<OPTION value = "$row[2]">$row[2]</option>";
}
print '</select>';
а именно вот это. "$row[2]">$row[2]</option> и почему первое "$row[2]" взято в слэши???
2 вопрос. Есть куча таких формс данными. Как можно вывести все эти данные в таблицу БД??? Если можно- подробнее.
Отвечает: PVS
Здравствуйте, Сычев Роман!
" обозначает просто символ кавычки. В противном случае (без ) он бы просто обозначал конец строки.
Второй вопрос, чесно говоря не слишком понятен, но если Вы хотите сохранить данные в таблице, то сначала создайте ее (SQL'ями или через PHPMyAdmin), а данные вставляются так (если вставляются значения ВСЕХ полей новой записи):
mysql_query("insert into MyTableName values($Integer_Value,'$String_Value');");
или если какие-то поля должны получить значения по умолчанию (например autoincrement) то так:
mysql_query("insert into MyTableName(DefinedInt,DefinedStr) values($Integer_Value,'$String_Value');");
Ответ отправил: PVS (статус: Студент)
Ответ отправлен: 01.08.2006, 17:57
Отвечает: Santana
Здравствуйте, Сычев Роман!
mysql_fetch_row возвращает набор полей к которым можно обращятся как по имени $row['имя поля'] так и по порядковому номеру $row[2] как в этом случае
слеши экранируют кавычки так как print " ..." и ежели в внутри применить втрой набор кавычек возникнет ошибка слеш ее предотвращает
2 для того что бы вывести все поля перебирай $row[] от 0 до последнего
Ответ отправил: Santana (статус: 4-ый класс)
Ответ отправлен: 01.08.2006, 18:00