Посты добавляются не в ту категорию

Discussion in 'PHP' started by selevit, 29 Aug 2009.

  1. selevit

    selevit Banned

    Joined:
    19 Aug 2009
    Messages:
    95
    Likes Received:
    9
    Reputations:
    -3
    Всем доброго времени суток! я делаю сайт с софтом и играми, в общем варез сайт на пхп, делаю по видеоурокам, но кое что добавляю свое - проблема в том, что я создал два файла, отвечающих за добавление постов в БД, скрипт работает, но не совсем - когда пытаешься добавить файл в раздел с софта, причем в любую категорию из этого раздела, то пост добавляется в первую категорию раздела игры, а в раздел игры файлы добавляются во все категории, в чем может быть проблема?

    вот эти два файла:

    первый new_post,php (форма для заполнения):



    PHP:
    <?php include ("lock.php");?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Добавления файла</title>

    </body>
    <link href="../style.css" rel="stylesheet" type="text/css">
    <link href="style.css" rel="stylesheet" type="text/css">
    <style type="text/css">
    <!--
    .стиль1 {
        font-size: 18px;
        font-weight: bold;
    }
    -->
    </style>
    <table width="900" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">

    <?php include("blocks/header.php"); ?>
     
      <tr>
        <td><table width="100%">
        <?php include("blocks/left_td.php")?> 

            <td width="74%" align="left" valign="top">
            
            <p align="center" class="post_title стиль1">Добавить материал</p>
            <form action="add_post.php" method="post" name="new_post" id="new_file">
              <p>
                <label>Название материала<br>
                <input type="text" name="title" id="title">
                  </label>
              </p>
              <p>
                <label>
     
                <p>
                <p>Выберите раздел и категорию</p>
                <p>
                <script language="JavaScript"> 
    function Menue() { 
          document.all.soft1.style.visibility="visible"
          document.all.games1.style.visibility="hidden" 
           
    }
                </script>
                
                <input name="soft" type="button" value="Софт" onClick="Menue()">
                <select id="soft1" size="1" name="category" style="visibility:hidden;">
                    <?php


    $result 
    mysql_query("SELECT title,id FROM soft"$db);


    if(!
    $result) {
    echo 
    "<center><b><p>Запрос на выборку данных из базы не прошел, напишите об этом администратору на email: selevit@yandex.ru или в ICQ:375766234<br><strong>Код ошибки: </strong></p></b></center>";

    exit(
    mysql_error());

    }

    if (
    mysql_num_rows($result) > 0)

    {
    $myrow mysql_fetch_array($result);

    do
    {

    printf ("<option value = '%s'>%s</option>"$myrow['id'], $myrow['title']);


    }

    while (
    $myrow mysql_fetch_array($result));

    }

    else

    {
    echo 
    "<strong><p><center>Инфотмация по запросу не может быть извлечена, так как в таблице БД нет записей</center></p></strong>";

    exit();
    }
    ?>
    </select>
                </p>
                <p>
                  </div> 
                  
                  
                  
       
                  <script language="JavaScript">function Menue1() {
       document.all.soft1.style.visibility="hidden"               
       document.all.games1.style.visibility="visible" 
       

     </script>
       <input name="games" type="button" value="Игры" onClick="Menue1()"> 
       <select id="games1"  name="category" style="visibility:hidden;">
         
         <?php


    $result 
    mysql_query("SELECT title,id FROM games"$db);


    if(!
    $result) {
    echo 
    "<center><b><p>Запрос на выборку данных из базы не прошел, напишите об этом администратору на email: selevit@yandex.ru или в ICQ:375766234<br><strong>Код ошибки: </strong></p></b></center>";

    exit(
    mysql_error());

    }

    if (
    mysql_num_rows($result) > 0)

    {
    $myrow mysql_fetch_array($result);

    do
    {

    printf ("<option value = '%s'>%s</option>"$myrow['id'], $myrow['title']);


    }

    while (
    $myrow mysql_fetch_array($result));

    }

    else

    {
    echo 
    "<strong><p><center>Инфотмация по запросу не может быть извлечена, так как в таблице БД нет записей</center></p></strong>";

    exit();
    }
    ?>
       </select>
                  </div> 
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  </div>
                </p>
                <p>
                   <label>Описание(descriotion)<br>
    <input type="text" name="meta_d" id="meta_d">
                      </label>
                 <p>
                <label>Ключевые слова<br>
                <input type="text" name="meta_k" id="meta_k">
                </label>
              </p>
              <p>
                <label>Дата Добавления<br>
                <input name="date" type="text" id="date" value="<?php $date date("Y-m-d"); echo $date ?>">
                </label>
              </p>
              <p>
                <label>Краткое Описание<br>
                <textarea name="description" id="description" cols="60" rows="5"></textarea>
                </label>
                <br>
                <br>
                <label>Полное описание<br>
                <textarea name="text" id="text" cols="60" rows="20"></textarea>
                </label>
                <br>
                <br>
                <label>Автор<br>
                <input type="text" name="author" id="author">
                <br>
                </label>
                <br>
                <label>
                <input type="submit" name="submit" id="submit" value="Добавить материал">
                </label>
              </p>
              <p>&nbsp;</p>
            </form>
            
            
            
              </tr>
          <tr>
            <td valign="top" class="left">        </td>
          </tr>
        </table></td>
      </tr>
      
      <?php include ("blocks/footer.php");?>
    </table>
    </html>
    и второй - add_post.php (сам обработчик)




    PHP:
    <?php 

    include("blocks/bd.php");
    include (
    "lock.php");

    if(isset(
    $_POST['title'])) {$title $_POST['title'];} if ($title =='') {unset($title);}
    if(isset(
    $_POST['meta_d'])) {$meta_d $_POST['meta_d'];} if ($meta_d =='') {unset($meta_d);}
    if(isset(
    $_POST['meta_k'])) {$meta_k $_POST['meta_k'];} if ($meta_k =='') {unset($mets_k);}
    if(isset(
    $_POST['date'])) {$date $_POST['date'];} if ($date =='') {unset($date);}
    if(isset(
    $_POST['description'])) {$description $_POST['description'];} if ($description =='') {unset($description);}
    if(isset(
    $_POST['text'])) {$text $_POST['text'];} if ($text =='') {unset($text);}
    if(isset(
    $_POST['author'])) {$author $_POST['author'];} if ($author =='') {unset($author);}
    if(isset(
    $_POST['category'])) {$category $_POST['category'];} if ($category =='') {unset($category);}



    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Обработчик</title>

    </body>
    <link href="../style.css" rel="stylesheet" type="text/css">
    <style type="text/css">
    <!--
    .стиль1 {
        font-size: 16px;
        font-weight: bold;
    }
    -->
    </style>
    <table width="900" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">

    <?php include("blocks/header.php");?> 
      <tr>
        <td><table width="100%">
        <?php include("blocks/left_td.php")?> 

            <td width="74%">
            
    <?
             
    if (isset($title) && isset($meta_d) && isset($meta_k) && isset($date) && isset($description) && isset($text) && isset($author) && isset($category))
             
               {
                
    /* то можно заносить информцию в базу */
              
              
    $result mysql_query("INSERT INTO data (title,meta_d,meta_k,date,description,text,author,category) VALUES ('$title','$meta_d','$meta_k','$date','$description','$text','$author', '$category')");

             
              if (
    $result == 'true') { echo "<p><center><b>Материал был успешно добавлен</b></center></p>"; }
              
              else { echo 
    "<p><center><b>Материал не был добавлен</b></center></p>"; }
              }
            
              
                  else
        {
        echo 
    "<p><center><b>Вы заполнили не все поля!</b></center></p>";
        }
              
        
    ?>
            
            </td>
          </tr>
        </table></td>
      </tr>
      <?php include ("blocks/footer.php");?>
    </table>
    </html>
     
    #1 selevit, 29 Aug 2009
    Last edited: 29 Aug 2009
  2. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    непойму как ты добавляешь записи уже в какуе то категорию? у тебя заполнены все значения поля `category`наперед ?
    по моему будет проще инсертить в таблицу `data` значения переменных которые ты по 100 раз проверяешь ,но не слешируешь.
    потом если хочешь вывести записи с определенной категорией ,инструкция:
    "SELECT * FROM `tratata` WHERE `category`='".$category."'
    думаю ты понял.
     
  3. selevit

    selevit Banned

    Joined:
    19 Aug 2009
    Messages:
    95
    Likes Received:
    9
    Reputations:
    -3
    не помогло...
     
  4. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    что тебе не помогло?
     
  5. selevit

    selevit Banned

    Joined:
    19 Aug 2009
    Messages:
    95
    Likes Received:
    9
    Reputations:
    -3
    у меня категории не добавляются автоматически, они выбираются из списка меню,
     
  6. selevit

    selevit Banned

    Joined:
    19 Aug 2009
    Messages:
    95
    Likes Received:
    9
    Reputations:
    -3
    L I G A, дай свою асю мне в личку пожалуйста, а то на форуме долго, помоги мне плиз :)
     
  7. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    проверь значение переменной $category перед вставкой.
    [​IMG] 555086
     
  8. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    повторяю еше раз где ты берешь значение переменной $category перед вставкой в таблицу,дело по ходу в ней потому что её значение всегда равно категорие в каторую записываются все данные.
     
  9. selevit

    selevit Banned

    Joined:
    19 Aug 2009
    Messages:
    95
    Likes Received:
    9
    Reputations:
    -3
    вся проблема в яваскрипте, который выводит кнопки разделов, а при нажатии на кноку выводит список категорий, только я не знаю почему эта проблема возникает?

    вот скрипт

    PHP:
    <script language="JavaScript"
    function 
    Menue() { 
          
    document.all.soft1.style.visibility="visible" 
          
    document.all.games1.style.visibility="hidden" 

    function 
    Menue1() { 
       
    document.all.soft1.style.visibility="hidden" 
       
    document.all.games1.style.visibility="visible" 

    </script> 
    <input name="soft" type="button" value="Софт" onClick="Menue()"> 
    <select id="soft1" size="1" name="category" style="visibility:hidden;"> 

    тут выводится список категорий в цикле


    </select></div>

    <input name="games" type="button" value="Игры" onClick="Menue1()"> 
    <select id="games1" size="1" name="category" style="visibility:hidden;">


     и тут тоже выводится список категорий в цикле


    </select></div> 
     
    #9 selevit, 29 Aug 2009
    Last edited: 29 Aug 2009