PHP.SU

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

Страниц (792): В начало « ... 784 785 786 787 [788] 789 790 791 792 »

> Найдено сообщений: 11869
Мелкий Отправлено: 22 Октября, 2009 - 19:23:47 • Тема: Помогите пожалуйста новичку • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 26
Обрамляйте листинги тегами [php]
А зачем вы сначала загоняете строки в массив, а затем перебираете массив? Почему бы сразу на месте не сделать? Работать будет гораздо эффективнее.
Что вы пытаетесь записать в базу при каждой обработке скрипта - так же неясно.
Мелкий Отправлено: 22 Октября, 2009 - 10:34:13 • Тема: Не выводит таблицу • Форум: Программирование на PHP

Ответов: 7
Просмотров: 854
login, так не верно. Вы пытаетесь вложить while в for. И можете тогда получить 10 копий того, что выдаёт while, но получите только 1 с $i=0 - на второй итерации у while условие сразу false будет. Верно так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $host = 'ххх';
  3. $user = 'ххх';
  4. $password = 'хх';
  5. $db = 'хх';
  6.  
  7. // Производим попытку подключения к серверу MySQL:
  8. if (!mysql_connect($host, $user, $password) || !mysql_select_db($db))
  9. exit('<h2>MySQL Error!</h2>');
  10.  
  11. // SQL-запрос:
  12. $q = mysql_query('SELECT * FROM `Categories`');
  13.  
  14. // Выводим таблицу:
  15. $i=0;
  16. echo "<hr>";
  17. while ($f = mysql_fetch_array($q)) {
  18. echo "<a href=\"http://ххх.ru/articles.php?id=".$i."\">".$f['name']."</a><br>";
  19. $i++;
  20. }
  21. echo "<hr>";
  22. ?>


Если нужно, что $i менялся именно в диапазоне 0..9, то при приращении $i надо проверять $i = $i<10 ? $i++ : 0;
А если нужен id записи (зачем просто какой-то номер передавать другому скрипту - понять не могу Улыбка) - то лучше его брать из auto_increment поля БД.
Мелкий Отправлено: 21 Октября, 2009 - 21:45:48 • Тема: Не выводит таблицу • Форум: Программирование на PHP

Ответов: 7
Просмотров: 854
RomAndry пишет:
Иначе
PHP:
скопировать код в буфер обмена
  1.  
  2. for ($c=0; $c<mysql_num_rows($q); $c++){
  3.  

Почему так? Наоборот, mysql_fetch_array надо вызывать на каждой итерации, как и сделал login, иначе получится mysql_num_rows копий одной и той же строки.
Мелкий Отправлено: 21 Октября, 2009 - 20:22:19 • Тема: Не выводит таблицу • Форум: Программирование на PHP

Ответов: 7
Просмотров: 854
$f[id][$c] у вас не существует. mysql_fetch_array при каждой итерации перезаписывает массив, поэтому индекса цикла нет. Обращение будет по $f['id'].

Так же можно (по крайней мере привычнее) переписать на while:
PHP:
скопировать код в буфер обмена
  1.  
  2. while ($f = mysql_fetch_array($q)) {
  3. echo "<b>".$f['id']."</b>";
  4. }
Мелкий Отправлено: 21 Октября, 2009 - 13:08:11 • Тема: работа с массивом • Форум: Программирование на PHP

Ответов: 3
Просмотров: 352
оставьте только if (!(arra[$value])) Интерпретатор разберётся, что из этого не пустое.

А что там должно быть пустое? Пустая строка ""? Просто не инициализированные массивы проверять не стоит, мало ли что в той области памяти окажется...
Мелкий Отправлено: 21 Октября, 2009 - 12:38:25 • Тема: Скрипт выводящий разрешения картинки? • Форум: Программирование на PHP

Ответов: 3
Просмотров: 378
У вас сильно кончилась память, отведённая под РНР.
1) когда больше не нужны GD объекты, их удалять надо
2) вам же только габариты картинки узнать?
Используйте сразу getimagesize (http://php.su/functions/?getimagesize)
Мелкий Отправлено: 20 Октября, 2009 - 20:32:49 • Тема: Проблема с циклом while • Форум: Программирование на PHP

Ответов: 3
Просмотров: 269
Корректно либо
PHP:
скопировать код в буфер обмена
  1. if ($i%3 == 0) $p = "</tr><tr>";

либо
PHP:
скопировать код в буфер обмена
  1. if ($i==3) {$p = "</tr><tr>";$i=0;}
Мелкий Отправлено: 20 Октября, 2009 - 19:27:35 • Тема: парадокс if() • Форум: Корзина

Ответов: 1
Просмотров: 1960
1 || 2 интерпретируется как (true или что-то) - сразу true;
ненулевое число в условии интерпретируется как true, (true == true) без проверки типа - истина Улыбка

Забавно, не сразу понял, почему так.
Мелкий Отправлено: 20 Октября, 2009 - 15:37:33 • Тема: оптимизации по быстродействию • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 23
PHP:
скопировать код в буфер обмена
  1.  
  2. $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
  3. or die("Could not connect : " . mysql_error());
  4.  
  5. print "Connected successfully");
  6. mysql_select_db("my_database" or die("Could not select database");
  7.  
  8. $query = "SELECT post,login FROM users_posts ORDER BY login LIMIT 1000";
  9. $result = mysql_query($query) or die("Query failed : " . mysql_error());
  10. while ($row = mysql_fetch_array($result)) {
  11.     $posts[$row["login"]][$row["post"]] = ereg_replace("", $row["login"], $row["post"]);
  12.     mail("admin@company.com", "User $row[login] has a post", $posts[$row["login"]][$row["post"]]);
  13. }
  14.  
  15. /* Закрываем соединение */
  16. mysql_close($link);
  17.  
Мелкий Отправлено: 20 Октября, 2009 - 15:32:44 • Тема: безопасность подключения к MySQL • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 30
Нет, достаточно запросить скрипт как ?id=1%20or%201 и всё содержимое таблицы будет стёрто. (может, правда, слегка ошибаюсь в символах URL'a, но, главное смысл - передать в качестве id "1 or 1"). Аналогично можно выполнить вообще любую mysql команду.
Мелкий Отправлено: 19 Октября, 2009 - 18:09:29 • Тема: Посчитать количество строк • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 62
Верно выводит, см выше, дописал.
Мелкий Отправлено: 19 Октября, 2009 - 18:03:21 • Тема: Посчитать количество строк • Форум: Напишите за меня, пожалуйста

Ответов: 4
Просмотров: 62
Выводит 1 - потому что вы дважды пытаетесь сделать одно и то же.
сначала sqlite просите подсчитать строки, она считает, и возвращает как строку с единтвенным полем.
Но вместо того, чтобы посмотреть, что вам вернула sqlite, вы смотрите, сколько она при этом вернула строк!

Выберите какой-нибудь 1 способ.
Либо
PHP:
скопировать код в буфер обмена
  1.  
  2. $db = sqlite_open("my_database.db");
  3. $res = sqlite_query($db, "SELECT * FROM table;");
  4. echo sqlite_num_rows($res);
  5.  


либо
PHP:
скопировать код в буфер обмена
  1. $db = sqlite_open("my_database.db");
  2. $res = sqlite_query($db, "SELECT COUNT() FROM table;");
  3. echo sqlite_fetch_single($res); //скорей всего такая функция будет работать, с особенностями именно sqlite не разбирался....
Мелкий Отправлено: 19 Октября, 2009 - 15:02:11 • Тема: Помогите с аутентификацией!!!! • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 56
в тег form в action="" впишите имя скрипта, который будет обрабатывать форму, method="post" лучше.

Ну а в обрабатывающем скрипте в массиве $_POST будут значения логина и пароля, отправленные со страницы.
Проверяете их на начальную валидность - чтобы не было лишних команд к mysql и проверяете запросом к mysql, валидные ли это логин-пароль. Если mysql отвечает положительно - то отдаёте контент, иначе - сообщение об ошибке или сразу редирект обратно к форме регистрации
Мелкий Отправлено: 17 Октября, 2009 - 22:37:14 • Тема: поиск по селектам • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 54
Группой условий - если передано дефолтное значение или пусто (''), то в запрос не попадает. т.е. строку $query собираете по ходу.
Или я не понял, что делает этот код? Это же просто фильтр по параметрам?

PS: а зачем используется printf? Тут форматирование не нужно, echo или просто print более, чем достаточно.
Мелкий Отправлено: 17 Октября, 2009 - 14:32:23 • Тема: Организовать цикл while • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 80
Которая из 2-х мной предложенных не работает и как к ней обращаетесь при этом?

сделайте var_dump(lgsl_text($server)); и посмотрите, что возвращает функция.

Страниц (792): В начало « ... 784 785 786 787 [788] 789 790 791 792 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB