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
Форумы портала PHP.SU :: Версия для печати :: Как сделать меню на php и mysql
Форумы портала PHP.SU » » Вопросы новичков » Как сделать меню на php и mysql

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

1. DonQuijote - 08 Мая, 2015 - 21:17:31 - перейти к сообщению
Здравствуйте форумчане! Помогите решить задачку.
Во общем нужно что бы выводилось меню из БД и формировались ссылки. Всё в цикле.
Примерно так: <a href="вставка из БД(index.php?id=1)"><img src="вставка из БД"</a>
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if ($result = $mysqli->query("SELECT * FROM `honors` WHERE `cat_honors`='Высшие'")) {
  3.            
  4. while ($row = $result->fetch_assoc()) {
  5. echo '<a href="#">';
  6. echo '<div id="honor">';
  7. echo '<img src="/honors/images/small/'.$row['img_small'].'.jpg" />';
  8. echo '<div>'.$row['title'].'</div>';
  9. echo '</div>';
  10. echo '</a>';
  11. }
  12. $result->close();
  13. }
  14. ?>
  15.  

index.php
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. include ('db_conn.php');
  4. include ('functions.php');
  5. if(!isset($_GET['hon_id'])){
  6.    $hon_id = '1';
  7. }
  8. else{
  9.    $hon_id = addslashes(strip_tags(trim($_GET['hon_id'])));
  10. }
  11. $hon_data = GetDataArt($hon_id);
  12. ?>
  13. <!DOCTYPE html>
  14. <html>
  15. <head>
  16. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  17. <title><?php echo $hon_data[1];?></title>
  18. <meta name="description" content="<?php echo $hon_data[3];?>" />
  19. <meta name="keywords" content="<?php echo $hon_data[2];?>" />
  20. <link rel="stylesheet" type="text/css" href="../site/css/style.css" />
  21. </head>
  22. <body>
  23. <div id="page">
  24.     <div id="header">
  25.     </div>
  26.     <div id="menu">
  27.         <ul>
  28.             <li><a href="/dinamic-site-mysql/site2/<?php echo $hon_id; ?>">Главная</a></li>
  29.             <li><a href="/dinamic-site-mysql/site2/index.php?hon_id=2">О нас</a></li>
  30.             <li><a href="/dinamic-site-mysql/site2/index.php?hon_id=3">Статья</a></li>
  31.             <li><a href="/dinamic-site-mysql/site2/index.php?hon_id=4">Фотогалерея</a></li>
  32.             <li><a href="/dinamic-site-mysql/site2/index.php?hon_id=5">Контакты</a></li>
  33.         </ul>
  34.     </div>
  35.     <div id="content">
  36.         <h1><?php echo $hon_data[0];?></h1>
  37.         <?php echo $hon_data[4];?>
  38.     </div>
  39.     <div class="clear"></div>
  40.     <div id="footer">
  41.         <p>&copy; Некая информация</p>
  42.     </div>
  43. </div>
  44. </body>
  45. </html>
  46.  


functions.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. function GetDataArt($hon_id){
  4.   $sel = "SELECT `title`,`meta_d`,`meta_kw`,`content` FROM `honors` WHERE `id` = '$hon_id' LIMIT 1";
  5.   $query = mysql_query($sel);
  6.   if(!$query){
  7. echo('Не удалось взять данные из БД!');
  8.   }
  9.   else{
  10. if(mysql_num_rows($query)>0){
  11.   $res = mysql_fetch_array($query);
  12.   $title = $res['title'];
  13.   $page_title = $res['title'];
  14.   $meta_kw = $res['meta_kw'];
  15.   $meta_d = $res['meta_d'];
  16.   $content = $res['content'];
  17. }
  18. else{
  19.   $title = 'К сожалению, такая страница отсутствует на данном сайте!';
  20.   $page_title = 'К сожалению, такая страница отсутствует на данном сайте!';
  21.   $meta_kw = $meta_d = $content = '';
  22. }
  23. $data_arr = array($title, $page_title, $meta_kw, $meta_d, $content);
  24. return $data_arr;
  25.   }
  26. }
  27. ?>
  28.  

db_conn.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.   $dbase=mysql_connect('localhost', 'root', '');
  4.   if(!$dbase){
  5. ?>
  6. <!DOCTYPE html>
  7. <html>
  8. <head>
  9.   <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  10.   <title>Не могу подключиться к БД</title>
  11. </head>
  12. <body>
  13.   <br /><br />  <h1 align="center">Проверьте настройки подключения к БД</h1>
  14. </body>
  15. </html>
  16. <?PHP
  17.   exit;
  18.   }
  19.   mysql_select_db('9may1945');
  20.   @mysql_query('set character_set_client="utf8"');
  21.   @mysql_query('set character_set_results="utf8"');
  22.   @mysql_query('set collation_connection="utf8_general_ci"');
  23. ?>
  24.  
2. exlant - 09 Мая, 2015 - 00:01:58 - перейти к сообщению
Так, а что не работает? И почему используется разное API mysql u mysqli?
3. DonQuijote - 09 Мая, 2015 - 07:45:58 - перейти к сообщению
exlant пишет:
Так, а что не работает? И почему используется разное API mysql u mysqli?


По отдельности они работают нормально, но вот только я их вместе не могу сообразить как СОЕДИНИТЬ. На mysqli сам написал, а второе в инете нашёл, пытался найти как это всё в mysqli переделать, но как таковых учебников и ответов на русском я не нашёл.
4. exlant - 09 Мая, 2015 - 13:22:08 - перейти к сообщению
Используйте только mysqli, mysql уже отмирает!
И между прочим, использовать разные api, для подключения к базе, в одном проекте то еще извращение!

Вы так и не написали, ЧТО ИМЕННО не работает! Где описание ошибки??? Где mysqli_error, или mysql_error?
5. DonQuijote - 09 Мая, 2015 - 18:00:51 - перейти к сообщению
exlant пишет:
Используйте только mysqli, mysql уже отмирает!
И между прочим, использовать разные api, для подключения к базе, в одном проекте то еще извращение!

Вы так и не написали, ЧТО ИМЕННО не работает! Где описание ошибки??? Где mysqli_error, или mysql_error?


Так вот мне надо там где на mysql сделать в mysqli, и какми то образом первый блок на mysqli внедрить в основную страницу. Что бы был единый код.

Ошибок нет.
6. exlant - 09 Мая, 2015 - 18:07:21 - перейти к сообщению
ахах, ну тогда милости просим изучить следующее mysqli
7. DonQuijote - 09 Мая, 2015 - 18:11:58 - перейти к сообщению
exlant пишет:
ахах, ну тогда милости просим изучить следующее mysqli


Спасибо конечно бывал я там, но это всего лишь "словарь php".
Это всё равно что если бы ты спросил меня как рассчитывается полная процентная ставка по кредиту, и я бы отправил тебя почитать "Экономическую теорию" или Учение Маркса. Ты бы ничерта там не понял, так как всё основано на определениях и формулах
8. exlant - 09 Мая, 2015 - 18:14:36 - перейти к сообщению
DonQuijote там все описано, и подано с хорошими примерами!
Или же вы мне предлагаете вам переписать то же, что уже там и так написано?
(Добавление)
и при чем здесь рассчитывание полной процентной ставки к "Экономической теорию" или Учению Маркса.

Я вам не предлагал, читать теорию программирования, или там теорию алгоритмов!
(Добавление)
совсем не тоже самое!
9. DonQuijote - 14 Мая, 2015 - 21:17:30 - перейти к сообщению
Вот у меня такая страница
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP include('config/db_connect.php');
  3. if(!isset($_GET['id'])){
  4.     $id = '1';
  5. }
  6. else{
  7.     $id = addslashes(strip_tags(trim($_GET['id'])));
  8. }
  9. ?>
  10. <!doctype html>
  11. <html>
  12. <head>
  13. <meta charset="utf-8">
  14. <title>Ордена и Медали</title>
  15. <link href="css/main-style.css" rel="stylesheet" type="text/css">
  16. </head>
  17.  
  18. <body>
  19. <h1>Высшие степени отличия</h1>
  20. <?PHP
  21. if ($result = $mysqli->query("SELECT * FROM `honors` WHERE `cat_honors`='Высшие'")) {
  22.  
  23.         while ($row = $result->fetch_assoc()) {
  24.         echo '<a href="/from_db.php?id='.$row['id'].'">';
  25.         echo '<div id="honor">';
  26.         echo '<img src="/honors/images/small/'.$row['img_small'].'.jpg" />';
  27.         echo '<div>'.$row['title'].'</div>';
  28.         echo '</div>';
  29.         echo '</a>';
  30.         }
  31.         $result->close();
  32. }
  33. ?>
  34. <div><?PHP echo $row['content'];?></div>
  35. <h1>Ордена</h1>
  36. <?PHP
  37. if ($result = $mysqli->query("SELECT * FROM `honors` WHERE `cat_honors`='Ордена'")) {
  38.  
  39.         while ($row = $result->fetch_assoc()) {
  40.         echo '<a href="/from_db.php?id='.$row['id'].'">';
  41.         echo '<div id="honor">';
  42.         echo '<img src="/honors/images/small/'.$row['img_small'].'.jpg" />';
  43.         echo '<div>'.$row['title'].'</div>';
  44.         echo '</div>';
  45.         echo '</a>';
  46.         }
  47.         $result->close();
  48. }
  49. ?>
  50. <h1>Медали</h1>
  51. <?PHP
  52. if ($result = $mysqli->query("SELECT * FROM `honors` WHERE `cat_honors`='Медали'")) {
  53.  
  54.         while ($row = $result->fetch_assoc()) {
  55.         echo '<a href="/from_db.php?id='.$row['id'].'">';
  56.         echo '<div id="honor">';
  57.         echo '<img src="/honors/images/small/'.$row['img_small'].'.jpg" />';
  58.         echo '<div>'.$row['title'].'</div>';
  59.         echo '</div>';
  60.         echo '</a>';
  61.         }
  62.         $result->close();
  63. }
  64. $mysqli->close();
  65. ?>
  66. </body>
  67. </html>
  68.  


ничего не происходит после нажатия на ссылку
Подскажите где ошибка
10. DeadCowsDontMoo - 15 Мая, 2015 - 17:30:15 - перейти к сообщению
DonQuijote пишет:
Вот у меня такая страница
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP include('config/db_connect.php');
  3. if(!isset($_GET['id'])){
  4.     $id = '1';
  5. }
  6. else{
  7.     $id = addslashes(strip_tags(trim($_GET['id'])));
  8. }
  9. ?>
  10. <!doctype html>
  11. <html>
  12. <head>
  13. <meta charset="utf-8">
  14. <title>Ордена и Медали</title>
  15. <link href="css/main-style.css" rel="stylesheet" type="text/css">
  16. </head>
  17.  
  18. <body>
  19. <h1>Высшие степени отличия</h1>
  20. <?PHP
  21. if ($result = $mysqli->query("SELECT * FROM `honors` WHERE `cat_honors`='Высшие'")) {
  22.  
  23.         while ($row = $result->fetch_assoc()) {
  24.         echo '<a href="/from_db.php?id='.$row['id'].'">';
  25.         echo '<div id="honor">';
  26.         echo '<img src="/honors/images/small/'.$row['img_small'].'.jpg" />';
  27.         echo '<div>'.$row['title'].'</div>';
  28.         echo '</div>';
  29.         echo '</a>';
  30.         }
  31.         $result->close();
  32. }
  33. ?>
  34. <div><?PHP echo $row['content'];?></div>
  35. <h1>Ордена</h1>
  36. <?PHP
  37. if ($result = $mysqli->query("SELECT * FROM `honors` WHERE `cat_honors`='Ордена'")) {
  38.  
  39.         while ($row = $result->fetch_assoc()) {
  40.         echo '<a href="/from_db.php?id='.$row['id'].'">';
  41.         echo '<div id="honor">';
  42.         echo '<img src="/honors/images/small/'.$row['img_small'].'.jpg" />';
  43.         echo '<div>'.$row['title'].'</div>';
  44.         echo '</div>';
  45.         echo '</a>';
  46.         }
  47.         $result->close();
  48. }
  49. ?>
  50. <h1>Медали</h1>
  51. <?PHP
  52. if ($result = $mysqli->query("SELECT * FROM `honors` WHERE `cat_honors`='Медали'")) {
  53.  
  54.         while ($row = $result->fetch_assoc()) {
  55.         echo '<a href="/from_db.php?id='.$row['id'].'">';
  56.         echo '<div id="honor">';
  57.         echo '<img src="/honors/images/small/'.$row['img_small'].'.jpg" />';
  58.         echo '<div>'.$row['title'].'</div>';
  59.         echo '</div>';
  60.         echo '</a>';
  61.         }
  62.         $result->close();
  63. }
  64. $mysqli->close();
  65. ?>
  66. </body>
  67. </html>
  68.  


ничего не происходит после нажатия на ссылку
Подскажите где ошибка


через какой-нибудь Нет-бинс уже прогнал? Синтаксических ошибок нет?
11. DonQuijote - 15 Мая, 2015 - 18:02:05 - перейти к сообщению
DeadCowsDontMoo пишет:

через какой-нибудь Нет-бинс уже прогнал? Синтаксических ошибок нет?


ну вроде нет только про $_GET говорит что нельзя напрямую обращаться, нужны какие-то типа фильтры
12. exlant - 15 Мая, 2015 - 18:42:29 - перейти к сообщению
мда... не хотел сюда ничего писать, ну да ладно...

а собственно, что вы хотите, что бы произошло???
ну создали вы ссылки, ну а они же вести куда то должны!

я так понимаю from_db.php это имя файла, где находиться весь этот "код", что вы привели.
Вашими ссылками, вы ему передаете get параметр id, и все!!!! А ведь его нужно хоть как-то обрабатывать... добавьте куда то в код своего обработчика это
PHP:
скопировать код в буфер обмена
  1.  
  2. echo ($_GET['id']) ? 'параметр = '.$_GET['id'] : 'ничего не было передано';
  3.  

и увидите, что хоть что то происходит!

 

Powered by ExBB FM 1.0 RC1