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.SU

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


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

> Без описания
login
Отправлено: 21 Октября, 2009 - 18:42:48
Post Id



Новичок


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


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




есть код
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $host = "XXXXXXX";
  3. $user = "111111";
  4. $password = "11111";
  5. $db="a23919_1";
  6.  
  7. // Производим попытку подключения к серверу MySQL:
  8. if (!mysql_connect($host, $user, $password))
  9. {
  10. echo "<h2>MySQL Error!</h2>";
  11. }
  12.  
  13. // Выбираем базу данных:
  14.  
  15. // SQL-запрос:
  16. $q = mysql_query ("SELECT * FROM Articles");
  17.  
  18. // Выводим таблицу:
  19. for ($c=0; $c<mysql_num_rows($q); $c++)
  20. {
  21. echo "<b>$f[id][$c]</b>";
  22. ?>

я так понимаю должны вывести все ид в столбце. но не чего просто не происходит, база просто подключается, выбирается таблица и всё. вообще кто может объяснить, как выводятся записи из базы чтоб потом это были ссылки. читал в уроках mysql не понял((
стучите в аську 413410131 нужна помощь, об оплате договоримся, очень, очень срочно!

(Отредактировано автором: 21 Октября, 2009 - 19:06:21)



-----
--Изучаю PHP--
 
 Top
RomAndry Администратор
Отправлено: 21 Октября, 2009 - 18:49:41
Post Id



Частый посетитель


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. echo "<b>".$f['id'][$c]."</b>";
  3.  
 
My status
 Top
Мелкий Супермодератор
Отправлено: 21 Октября, 2009 - 20:22:19
Post Id



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


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


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




$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. }


-----
PostgreSQL DBA
 
 Top
RomAndry Администратор
Отправлено: 21 Октября, 2009 - 21:23:03
Post Id



Частый посетитель


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


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




Лучше как предложил Мелкий
Иначе
PHP:
скопировать код в буфер обмена
  1.  
  2. for ($c=0; $c<mysql_num_rows($q); $c++){
  3.  
 
My status
 Top
Мелкий Супермодератор
Отправлено: 21 Октября, 2009 - 21:45:48
Post Id



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


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


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




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

Почему так? Наоборот, mysql_fetch_array надо вызывать на каждой итерации, как и сделал login, иначе получится mysql_num_rows копий одной и той же строки.


-----
PostgreSQL DBA
 
 Top
login
Отправлено: 21 Октября, 2009 - 22:17:43
Post Id



Новичок


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


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




возникла другая проблема. как сделать так, что бы id= возрастал? пробывал так:
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. for ($i = 0; $i < 10; $i++) {
  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. }
  20. }
  21. echo "<hr>";
  22. ?>
  23.  

(Отредактировано автором: 21 Октября, 2009 - 22:19:06)



-----
--Изучаю PHP--
 
 Top
DeepVarvar Супермодератор
Отправлено: 22 Октября, 2009 - 01:27:40
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




после <a href=\" вы поставили неверные слеш-экранирования....

(Отредактировано автором: 22 Октября, 2009 - 01:28:48)

 
 Top
Мелкий Супермодератор
Отправлено: 22 Октября, 2009 - 10:34:13
Post Id



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


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


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




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 поля БД.

(Отредактировано автором: 22 Октября, 2009 - 10:39:22)



-----
PostgreSQL DBA
 
 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