За последние 24 часа нас посетили 22772 программиста и 1271 робот. Сейчас ищут 656 программистов ...

PHP. Dropbox берет данные из Mysql и при выборе пункта выда

Тема в разделе "PHP для новичков", создана пользователем DarkGuy, 9 янв 2011.

  1. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    Вопрос нубский,я знаю.
    объясняю.
    есть такой код
    PHP:
    1.  
    2.     <?php
    3. }
    4.  
    5. function bPortfolio() {
    6.  
    7.     global $wpdb;
    8.  
    9.     $table_name = $wpdb->prefix . "bPortfolio";
    10.     $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    11.     $results = $wpdb->get_results( $sql );
    12.  
    13.    
    14.     if (){
    15.     echo""}
    16.     else{
    17.     echo""
    18.     }
    19.    
    20.    
    21.     foreach ($results as $result) {
    22.         echo "
    23.         <br>
    24.                 <table width=\"100%\">
    25.                 <tr valign=\"top\">
    26.                     <td><a href=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"400px\" rel=\"lightbox[roadtrip]\">
    27.                     <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"150px\">
    28.                     </a>
    29.                     </td>
    30.                     <td height=\"100%\" width=\"100%\">
    31.                         <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    32.                             <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    33.                             <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    34.                             <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    35.                             <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    36.                            
    37.                         </table>
    38.                     </td>
    39.                 </tr>
    40.               </table>";
    41.     }
    42.  
    43.  
    44. }
    45.  
    46. ?>
    47.  
    Хочется
    приделать
    форму выбора вот такого характера:

    PHP:
    1.  
    2. <form action="test.php" method="post" name="drop_down_box">
    3. <select name="menu" size="1">
    4. <option value=".11">11</option>
    5. <option selected="selected" value="second">Вторая позиция</option>
    6. <option value="third">Третья позиция</option>
    7. <option value="fourth">Четвертая позиция</option>
    8. </select>
    9. </form>
    10.  

    Задача в следующим
    что бы получить форму и при выборе из формы значения (.$result->name.)
    Выводились только блоки где содержится (.$result->name.)

    под блоками я имею в виду- это
    PHP:
    1. <table width=\"100%\">
    2.                 <tr valign=\"top\">
    3.                     <td><a href=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"400px\" rel=\"lightbox[roadtrip]\">
    4.                     <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"150px\">
    5.                     </a>
    6.                     </td>
    7.                     <td height=\"100%\" width=\"100%\">
    8.                         <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    9.                             <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    10.                             <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    11.                             <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    12.                             <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    13.                            
    14.                         </table>
    15.                     </td>
    16.                 </tr>
    17.               </table>";
    -------------------------------------------------
    а теперь еще раз но русским языком.
    Хочу получить Dropbox. где значения будут браться отсюда(.$result->name.) И при выборе определенного значения оставались только те таблицы которые содержат выбранный параметр.

    Весь код если кому интересно
    PHP:
    1. <?php
    2.  
    3.  
    4. add_action('wp_head','header_add');
    5.  
    6. function header_add()
    7. {
    8.     echo "<link rel='stylesheet' href='../wp-content/plugins/bPortfolio/style.css' type='text/css' />";
    9. }
    10.  
    11. $bPortfolio_db_version = "1.2";
    12.  
    13. function bPortfolio_install () {
    14.    global $wpdb;
    15.    global $bPortfolio_db_version;
    16.  
    17.    $table_name = $wpdb->prefix . "bPortfolio";
    18.    if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
    19.  
    20.         $sql = "
    21.             CREATE TABLE IF NOT EXISTS " . $table_name . " (
    22.                   id int(9) unsigned NOT NULL auto_increment ,
    23.                   name varchar(255) ,
    24.                   description text ,
    25.                   url varchar(255) ,
    26.                   img varchar(255) ,
    27.                   date varchar(255) ,
    28.                   client varchar(255) ,
    29.                   tools text ,
    30.                   PRIMARY KEY (id)
    31.             );
    32.         ";
    33.  
    34.         require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    35.  
    36.         dbDelta($sql);
    37.  
    38.         add_option("bPortfolio_db_version", $bPortfolio_db_version);
    39.         add_option("show_projects", 10);
    40.    }
    41. }
    42.  
    43. register_activation_hook(__FILE__,'bPortfolio_install');
    44.  
    45. add_action('admin_menu', 'bPortfolioMenu');
    46.  
    47. function bPortfolioMenu() {
    48.     add_management_page('Blogger Portfolio', 'bPortfolio', 8, 'bPortfolio.php', 'bPortfolioSublevelPage');
    49. }
    50.  
    51. function bPortfolioToplevelPage() {
    52.  
    53.     if( $_POST[ 'saveFlag' ] == 'Y' ) {
    54.         update_option('show_projects', $_POST[ 'show_projects' ]);
    55.     ?>
    56.         <div class="updated"><p><strong><?php _e('Настройки сохранены.', 'mt_trans_domain' ); ?></strong></p></div>
    57.     <?php
    58.  
    59.     }
    60.  
    61.     $show_projects = get_option( 'show_projects' );
    62.  
    63.     echo '<div class="wrap">
    64.             <h2>Настройки</h2>
    65.             <p>.</p>
    66.                     ';
    67.     /* ?>
    68.  
    69.     <form name="options" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>">
    70.     <input type="hidden" name="saveFlag" value="Y">
    71.  
    72.     <p>
    73.         <?php _e("Количество выводимых проектов:", 'mt_trans_domain' ); ?>
    74.         <input type="text" name="show_projects" value="<?php echo $show_projects; ?>" size="2">
    75.     </p>
    76.  
    77.     <p class="submit">
    78.         <input type="submit" name="Submit" value="<?php _e('Сохранить', 'mt_trans_domain' ) ?>" />
    79.     </p>
    80.  
    81.     </form>
    82.     </div>
    83.  
    84.     <?php */
    85. }
    86.  
    87. function bPortfolioSublevelPage() {
    88.  
    89.     global $wpdb;
    90.  
    91.     if( isset($_GET[ 'delFlag' ]) && is_numeric($_GET[ 'delFlag' ]) ) {
    92.           $table_name = $wpdb->prefix . "bPortfolio";
    93.           $wpdb->query(" DELETE FROM $table_name WHERE id = ".$_GET[ 'delFlag' ]);
    94.           ?>
    95.             <div class="updated"><p><strong><?php _e('Товар успешно удален.', 'mt_trans_domain' ); ?></strong></p></div>
    96.           <?php
    97.     }
    98.  
    99.     if( $_POST[ 'addFlag' ] == 'Y' ) {
    100.  
    101.         $img = '';
    102.  
    103.         if(isset($_FILES['project_img'])) {
    104.             $img_type=getimagesize($_FILES['project_img']['tmp_name']);
    105.             if (isset($_FILES['project_img']['tmp_name']) && is_uploaded_file($_FILES['project_img']['tmp_name']) && ($img_type[2]==1 || $img_type[2]==2)) {
    106.                 $download_img = true;
    107.                 $img_path = '../wp-content/plugins/bPortfolio/imgs/';
    108.  
    109.                 $type=($img_type[2]==1)?'gif':'jpg';
    110.                 $img=basename(str_replace(".tmp","",tempnam($img_path,substr($_FILES['project_img']['name'],0,3)))).".".$type;
    111.  
    112.                 @unlink(str_replace($type, 'tmp', $img_path.$img));
    113.                 @unlink(str_replace('.'.$type, '', $img_path.$img));
    114.  
    115.                 copy($_FILES['project_img']['tmp_name'],$img_path.$img);
    116.                 chmod ($img_path.$img, 0755);
    117.             }
    118.         }
    119.  
    120.         //if($download_img)
    121.         {
    122.             $table_name = $wpdb->prefix . "bPortfolio";
    123.  
    124.             $insert = "INSERT INTO " . $table_name .
    125.                 " (name, description, url, date, img, client, tools) " .
    126.                 "VALUES ('".$_POST['project_name']."','" . $_POST['project_description'] . "','" . $_POST['project_url'] . "','" .$_POST['project_date']. "','" .$img. "','" .$_POST['project_client']. "','" .$_POST['project_tools']. "')";
    127.  
    128.             $results = $wpdb->query( $insert );
    129.  
    130.     ?>
    131.             <div class="updated"><p><strong><?php _e('Товар добавлен.', 'mt_trans_domain' ); ?></strong></p></div>
    132.     <?php
    133.         }
    134.     }
    135.  
    136.     $show_projects = get_option( 'show_projects' );
    137.  
    138.     echo '<div class="wrap">
    139.             <h2>Товары</h2>';
    140.     ?>
    141.  
    142.     <div style="width: 50%; float: left;">
    143.         <form name="options" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" enctype="multipart/form-data">
    144.         <input type="hidden" name="addFlag" value="Y">
    145.  
    146.         <p>
    147.             <?php _e("Наименование", 'mt_trans_domain' ); ?><br>
    148.             <input type="text" name="project_name" value="">
    149.         </p>
    150.  
    151.         <p>
    152.             <?php _e("Цена:", 'mt_trans_domain' ); ?><br>
    153.             <input type="text" name="project_client" value="">
    154.         </p>
    155.  
    156.         <p>
    157.             <?php _e("Общее описание товара:", 'mt_trans_domain' ); ?><br>
    158.             <textarea name="project_description" style="width: 500px;"></textarea>
    159.         </p>
    160.  
    161.         <p>
    162.             <?php _e("Бренд:", 'mt_trans_domain' ); ?><br>
    163.             <textarea name="project_tools" style="width: 500px;"></textarea>
    164.         </p>
    165.  
    166.         <p>
    167.             <?php _e("Изображение:", 'mt_trans_domain' ); ?><br>
    168.             <input type="file" name="project_img"></input>
    169.         </p>
    170.  
    171.         <p>
    172.             <?php _e("Размеры", 'mt_trans_domain' ); ?><br>
    173.             <input type="text" name="project_date" value="">
    174.         </p>
    175.  
    176.         <p class="submit" style="text-align: left;">
    177.             <input type="submit" name="Submit" value="<?php _e('Добавить товар', 'mt_trans_domain' ) ?>" />
    178.         </p>
    179.  
    180.         </form>
    181.     </div>
    182.     <div style="width: 50%; float: right;">
    183.         <?php
    184.             $table_name = $wpdb->prefix . "bPortfolio";
    185.             $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    186.             $results = $wpdb->get_results( $sql );
    187.  
    188.             echo '<style>
    189.                     data {
    190.                         border-collapse:collapse;
    191.                     }
    192.                     .data tr {
    193.                         border-top:1px solid #282828;
    194.                     }
    195.                     .data td, .data th {
    196.                         padding:4px 0pt 4px 6px;
    197.                         vertical-align:top;
    198.                     }
    199.                     .data td {
    200.                         background:#363636 none repeat scroll 0%;
    201.                         border-left:4px solid #4C4C4C;
    202.                         color:#A8B9CE;
    203.                         width:78px;
    204.                         padding: 7px 10px !important;
    205.                     }
    206.                     .data td, .data th {
    207.                         padding: 7px 0pt 4px 6px;
    208.  
    209.                     }
    210.                     .data th {
    211.                         background:#424242 none repeat scroll 0% 50%;
    212.                         color:#F2F1F1;
    213.                         font-weight:normal;
    214.                         text-align:left;
    215.                     }
    216.                     </style>
    217.             ';
    218.  
    219.             foreach ($results as $result) {
    220.                 echo "
    221.                         <table width=\"100%\">
    222.                         <tr valign=\"top\">";
    223.  
    224.                 if($result->img != '')
    225.                     echo "      <td>
    226.                                     <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"200px\">
    227.                                     <a href=\"".str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])."&delFlag=".$result->id."\">удалить товар</a>
    228.                                 </td>";
    229.                 else
    230.                     echo "      <td>
    231.                                     <a href=\"".str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])."&delFlag=".$result->id."\">удалить товар</a>
    232.                                 </td>";
    233.  
    234.                 echo "          <td height=\"100%\" width=\"100%\">
    235.                                 <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    236.                                     <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    237.                                     <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    238.                                     <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    239.                                     <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    240.                                    
    241.                                 </table>
    242.                             </td>
    243.                         </tr>
    244.                       </table>";
    245.             }
    246.         ?>
    247.     </div>
    248.     <div style="clear: both;"></div>
    249.     </div>
    250.  
    251.     <?php
    252. }
    253.  
    254. function bPortfolio() {
    255.  
    256.     global $wpdb;
    257.  
    258.     $table_name = $wpdb->prefix . "bPortfolio";
    259.     $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    260.     $results = $wpdb->get_results( $sql );
    261.  
    262.    
    263.     if (){
    264.     echo""}
    265.     else{
    266.     echo""
    267.     }
    268.    
    269.    
    270.     foreach ($results as $result) {
    271.         echo "
    272.         <br>
    273.                 <table width=\"100%\">
    274.                 <tr valign=\"top\">
    275.                     <td><a href=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"400px\" rel=\"lightbox[roadtrip]\">
    276.                     <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"150px\">
    277.                     </a>
    278.                     </td>
    279.                     <td height=\"100%\" width=\"100%\">
    280.                         <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    281.                             <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    282.                             <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    283.                             <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    284.                             <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    285.                            
    286.                         </table>
    287.                     </td>
    288.                 </tr>
    289.               </table>";
    290.     }
    291.  
    292.  
    293. }
    294.  
    295. ?>
    296.  
    297.  
    298.  
    Помогите пожалуйста....
     
  2. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    вообщем я попробовал так
    Код (Text):
    1. function bPortfolio() {
    2.  
    3.     global $wpdb;
    4.  
    5.     $table_name = $wpdb->prefix . "bPortfolio";
    6.     $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    7.     $results = $wpdb->get_results( $sql );
    8.  
    9. echo "<select name=tools onchange='this.form.submit()'>";
    10. echo "<option value=0>Не имеет значения</option>";
    11. while($results->tools)
    12. {
    13. if($results->tools == $results->tools) $selected = "selected";
    14. else $selected = "";
    15. echo "<option value=$results->tools $selected>$results->tools</option>";
    16. }
    17. echo "</select>";
    18.  
    19.  
    20.  
    21.     foreach ($results as $result)
    22.  
    23.  
    24.         {
    25.        
    26.         echo "
    27.         <br>
    28.                 <table width=\"100%\">
    29.                 <tr valign=\"top\">
    30.                     <td><a href=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"400px\" rel=\"lightbox[roadtrip]\">
    31.                     <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"150px\">
    32.                     </a>
    33.                     </td>
    34.                     <td height=\"100%\" width=\"100%\">
    35.                         <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    36.                             <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    37.                             <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    38.                             <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    39.                             <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    40.                            
    41.                         </table>
    42.                     </td>
    43.                 </tr>
    44.               </table>";
    45.     }
    46.  
    47.  
    48.  
    49. ?>
    но не чего не вышло

    а всего -лишь
    надо вот такую форму
    Код (Text):
    1. <form action="" method="">
    2.    <p><select size="3" multiple name="name">
    3.     <option disabled>Выберите name</option>
    4.     <option value="2>1</option>
    5.     <option selected value="2">2</option>
    6.     <option value="3">3</option>
    7.     <option value="4">4</option>
    8.    </select></p>
    9.    <p><input type="submit" value="Отправить"></p>
    10.   </form>
    где значения 1,2,3 и т.д. брались из $result->tools.
    и после выбора оставались только те значения где есть выбранный tools.
    то есть
    Код (Text):
    1. table width=\"100%\">
    2.                 <tr valign=\"top\">
    3.                     <td><a href=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"400px\" rel=\"lightbox[roadtrip]\">
    4.                     <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"150px\">
    5.                     </a>
    6.                     </td>
    7.                     <td height=\"100%\" width=\"100%\">
    8.                         <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    9.                             <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    10.                             <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    11.                             <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    12.                             <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    13.                              
    14.                         </table>
    15.                     </td>
    16.                 </tr>
    17.               </table>";
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    хм... кода много. локализуй проблему
     
  4. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    Попробую
    надо, что бы в этой форме выводились не все данные, а появилась выпадающее меню, где был бы выбор основанный $result->tools. и после выбора выводились только те записи где были бы выбранные значения $result->tools.
    Код (Text):
    1. function bPortfolio() {
    2.  
    3.    global $wpdb;
    4.  
    5.     $table_name = $wpdb->prefix . "bPortfolio";
    6.     $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    7.     $results = $wpdb->get_results( $sql );
    8.  
    9. echo "<select name=tools onchange='this.form.submit()'>";
    10. echo "<option value=0>Не имеет значения</option>";
    11. while($results->tools)
    12. {
    13. if($results->tools == $results->tools) $selected = "selected";
    14. else $selected = "";
    15. echo "<option value=$results->tools $selected>$results->tools</option>";
    16. }
    17. echo "</select>";
    18.  
    19.  
    20.  
    21.     foreach ($results as $result)
    22.  
    23.  
    24.       {
    25.        
    26.       echo "
    27.       <br>
    28.               <table width=\"100%\">
    29.               <tr valign=\"top\">
    30.                  <td><a href=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"400px\" rel=\"lightbox[roadtrip]\">
    31.                <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"150px\">
    32.                </a>
    33.                </td>
    34.                  <td height=\"100%\" width=\"100%\">
    35.                   <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    36.                      <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    37.                      <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    38.                      <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    39.                      <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    40.                      
    41.                   </table>
    42.                </td>
    43.               </tr>
    44.            </table>";
    45.     }
    46.  
    47.  
    48.  
    49. ?>
     
  5. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    эта конструкция непонятная. если я правильно понимаю, то $results->tools - это массив?
     
  6. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    На сколько я понял, да вы правы.
    Просто я переделываю чужой код
    это код плагина под wordpress
    вот весь исходный код
    Код (Text):
    1. <?php
    2. /*
    3.     Plugin Name: Blogger Portfolio
    4.     Plugin URI: http://blog.itcross.net/
    5.     Description: Portfolio page for blog
    6.     Version: 1.2
    7.     Author: cross
    8.     Author URI: http://blog.itcross.net/bPortfolio12/
    9. */
    10.  
    11. add_action('wp_head','header_add');
    12.  
    13. function header_add()
    14. {
    15.     echo "<link rel='stylesheet' href='../wp-content/plugins/bPortfolio/style.css' type='text/css' />";
    16. }
    17.  
    18. $bPortfolio_db_version = "1.2";
    19.  
    20. function bPortfolio_install () {
    21.    global $wpdb;
    22.    global $bPortfolio_db_version;
    23.  
    24.    $table_name = $wpdb->prefix . "bPortfolio";
    25.    if($wpdb->get_var("show tables like '$table_name'") != $table_name) {
    26.  
    27.         $sql = "
    28.             CREATE TABLE IF NOT EXISTS " . $table_name . " (
    29.                   id int(9) unsigned NOT NULL auto_increment ,
    30.                   name varchar(255) ,
    31.                   description text ,
    32.                   url varchar(255) ,
    33.                   img varchar(255) ,
    34.                   date varchar(255) ,
    35.                   client varchar(255) ,
    36.                   tools text ,
    37.                   PRIMARY KEY (id)
    38.             );
    39.         ";
    40.  
    41.         require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    42.  
    43.         dbDelta($sql);
    44.  
    45.         add_option("bPortfolio_db_version", $bPortfolio_db_version);
    46.         add_option("show_projects", 10);
    47.    }
    48. }
    49.  
    50. register_activation_hook(__FILE__,'bPortfolio_install');
    51.  
    52. add_action('admin_menu', 'bPortfolioMenu');
    53.  
    54. function bPortfolioMenu() {
    55.     add_management_page('Blogger Portfolio', 'bPortfolio', 8, 'bPortfolio.php', 'bPortfolioSublevelPage');
    56. }
    57.  
    58. function bPortfolioToplevelPage() {
    59.  
    60.     if( $_POST[ 'saveFlag' ] == 'Y' ) {
    61.         update_option('show_projects', $_POST[ 'show_projects' ]);
    62.     ?>
    63.         <div class="updated"><p><strong><?php _e('Настройки сохранены.', 'mt_trans_domain' ); ?></strong></p></div>
    64.     <?php
    65.  
    66.     }
    67.  
    68.     $show_projects = get_option( 'show_projects' );
    69.  
    70.     echo '<div class="wrap">
    71.             <h2>Настройки</h2>
    72.             <p>Для установки плагина <b>bPortfolio</b> необходимо скачать и установить плагин <b>PHPExec</b>. После этого необходимо создать виджет или страницу в панели администратора(все зависит от того как Вы желаете показывать портфолио) и прописать следующий код внутри: <code>&lt;phpcode&gt;&lt;?php bPortfolio(); ?&gt;&lt;/phpcode&gt;</code>. Далее добавить новые проекты и осуществить показ портфолио на блоге.<br><br>Желательная ширины изображений проектов 200px. Любые изменения дизайна портфолио можно осуществить внеся изменения в файлик style.css в корневой папке плагина.</p>
    73.                     ';
    74.     /* ?>
    75.  
    76.     <form name="options" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>">
    77.     <input type="hidden" name="saveFlag" value="Y">
    78.  
    79.     <p>
    80.         <?php _e("Количество выводимых проектов:", 'mt_trans_domain' ); ?>
    81.         <input type="text" name="show_projects" value="<?php echo $show_projects; ?>" size="2">
    82.     </p>
    83.  
    84.     <p class="submit">
    85.         <input type="submit" name="Submit" value="<?php _e('Сохранить', 'mt_trans_domain' ) ?>" />
    86.     </p>
    87.  
    88.     </form>
    89.     </div>
    90.  
    91.     <?php */
    92. }
    93.  
    94. function bPortfolioSublevelPage() {
    95.  
    96.     global $wpdb;
    97.  
    98.     if( isset($_GET[ 'delFlag' ]) && is_numeric($_GET[ 'delFlag' ]) ) {
    99.           $table_name = $wpdb->prefix . "bPortfolio";
    100.           $wpdb->query(" DELETE FROM $table_name WHERE id = ".$_GET[ 'delFlag' ]);
    101.           ?>
    102.             <div class="updated"><p><strong><?php _e('Товар успешно удален.', 'mt_trans_domain' ); ?></strong></p></div>
    103.           <?php
    104.     }
    105.  
    106.     if( $_POST[ 'addFlag' ] == 'Y' ) {
    107.  
    108.         $img = '';
    109.  
    110.         if(isset($_FILES['project_img'])) {
    111.             $img_type=getimagesize($_FILES['project_img']['tmp_name']);
    112.             if (isset($_FILES['project_img']['tmp_name']) && is_uploaded_file($_FILES['project_img']['tmp_name']) && ($img_type[2]==1 || $img_type[2]==2)) {
    113.                 $download_img = true;
    114.                 $img_path = '../wp-content/plugins/bPortfolio/imgs/';
    115.  
    116.                 $type=($img_type[2]==1)?'gif':'jpg';
    117.                 $img=basename(str_replace(".tmp","",tempnam($img_path,substr($_FILES['project_img']['name'],0,3)))).".".$type;
    118.  
    119.                 @unlink(str_replace($type, 'tmp', $img_path.$img));
    120.                 @unlink(str_replace('.'.$type, '', $img_path.$img));
    121.  
    122.                 copy($_FILES['project_img']['tmp_name'],$img_path.$img);
    123.                 chmod ($img_path.$img, 0755);
    124.             }
    125.         }
    126.  
    127.         //if($download_img)
    128.         {
    129.             $table_name = $wpdb->prefix . "bPortfolio";
    130.  
    131.             $insert = "INSERT INTO " . $table_name .
    132.                 " (name, description, url, date, img, client, tools) " .
    133.                 "VALUES ('".$_POST['project_name']."','" . $_POST['project_description'] . "','" . $_POST['project_url'] . "','" .$_POST['project_date']. "','" .$img. "','" .$_POST['project_client']. "','" .$_POST['project_tools']. "')";
    134.  
    135.             $results = $wpdb->query( $insert );
    136.  
    137.     ?>
    138.             <div class="updated"><p><strong><?php _e('Товар добавлен.', 'mt_trans_domain' ); ?></strong></p></div>
    139.     <?php
    140.         }
    141.     }
    142.  
    143.     $show_projects = get_option( 'show_projects' );
    144.  
    145.     echo '<div class="wrap">
    146.             <h2>Товары</h2>';
    147.     ?>
    148.  
    149.     <div style="width: 50%; float: left;">
    150.         <form name="options" method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>" enctype="multipart/form-data">
    151.         <input type="hidden" name="addFlag" value="Y">
    152.  
    153.         <p>
    154.             <?php _e("Наименование", 'mt_trans_domain' ); ?><br>
    155.             <input type="text" name="project_name" value="">
    156.         </p>
    157.  
    158.         <p>
    159.             <?php _e("Цена:", 'mt_trans_domain' ); ?><br>
    160.             <input type="text" name="project_client" value="">
    161.         </p>
    162.  
    163.         <p>
    164.             <?php _e("Общее описание товара:", 'mt_trans_domain' ); ?><br>
    165.             <textarea name="project_description" style="width: 500px;"></textarea>
    166.         </p>
    167.  
    168.         <p>
    169.             <?php _e("Бренд:", 'mt_trans_domain' ); ?><br>
    170.             <textarea name="project_tools" style="width: 500px;"></textarea>
    171.         </p>
    172.  
    173.         <p>
    174.             <?php _e("Изображение:", 'mt_trans_domain' ); ?><br>
    175.             <input type="file" name="project_img"></input>
    176.         </p>
    177.  
    178.         <p>
    179.             <?php _e("Размеры", 'mt_trans_domain' ); ?><br>
    180.             <input type="text" name="project_date" value="">
    181.         </p>
    182.  
    183.         <p class="submit" style="text-align: left;">
    184.             <input type="submit" name="Submit" value="<?php _e('Добавить товар', 'mt_trans_domain' ) ?>" />
    185.         </p>
    186.  
    187.         </form>
    188.     </div>
    189.     <div style="width: 50%; float: right;">
    190.         <?php
    191.             $table_name = $wpdb->prefix . "bPortfolio";
    192.             $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    193.             $results = $wpdb->get_results( $sql );
    194.  
    195.             echo '<style>
    196.                     data {
    197.                         border-collapse:collapse;
    198.                     }
    199.                     .data tr {
    200.                         border-top:1px solid #282828;
    201.                     }
    202.                     .data td, .data th {
    203.                         padding:4px 0pt 4px 6px;
    204.                         vertical-align:top;
    205.                     }
    206.                     .data td {
    207.                         background:#363636 none repeat scroll 0%;
    208.                         border-left:4px solid #4C4C4C;
    209.                         color:#A8B9CE;
    210.                         width:78px;
    211.                         padding: 7px 10px !important;
    212.                     }
    213.                     .data td, .data th {
    214.                         padding: 7px 0pt 4px 6px;
    215.  
    216.                     }
    217.                     .data th {
    218.                         background:#424242 none repeat scroll 0% 50%;
    219.                         color:#F2F1F1;
    220.                         font-weight:normal;
    221.                         text-align:left;
    222.                     }
    223.                     </style>
    224.             ';
    225.  
    226.             foreach ($results as $result) {
    227.                 echo "
    228.                         <table width=\"100%\">
    229.                         <tr valign=\"top\">";
    230.  
    231.                 if($result->img != '')
    232.                     echo "      <td>
    233.                                     <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"200px\">
    234.                                     <a href=\"".str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])."&delFlag=".$result->id."\">удалить товар</a>
    235.                                 </td>";
    236.                 else
    237.                     echo "      <td>
    238.                                     <a href=\"".str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])."&delFlag=".$result->id."\">удалить товар</a>
    239.                                 </td>";
    240.  
    241.                 echo "          <td height=\"100%\" width=\"100%\">
    242.                                 <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    243.                                     <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    244.                                     <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    245.                                     <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    246.                                     <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    247.                                    
    248.                                 </table>
    249.                             </td>
    250.                         </tr>
    251.                       </table>";
    252.             }
    253.         ?>
    254.     </div>
    255.     <div style="clear: both;"></div>
    256.     </div>
    257.  
    258.     <?php
    259. }
    260.  
    261. function bPortfolio() {
    262.  
    263.     global $wpdb;
    264.  
    265.     $table_name = $wpdb->prefix . "bPortfolio";
    266.     $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    267.     $results = $wpdb->get_results( $sql );
    268.  
    269.  
    270.  
    271.  
    272.     foreach ($results as $result)
    273.  
    274.  
    275.         {
    276.        
    277.         echo "
    278.         <br>
    279.                 <table width=\"100%\">
    280.                 <tr valign=\"top\">
    281.                     <td><a href=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"400px\" rel=\"lightbox[roadtrip]\">
    282.                     <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"150px\">
    283.                     </a>
    284.                     </td>
    285.                     <td height=\"100%\" width=\"100%\">
    286.                         <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    287.                             <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    288.                             <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    289.                             <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    290.                             <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    291.                            
    292.                         </table>
    293.                     </td>
    294.                 </tr>
    295.               </table>";
    296.     }
    297.  
    298.  
    299.  
    300. ?>
     
  7. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    что-то типа такого (при условии, что таблица $table_name содержит поле tools:

    Код (Text):
    1.  
    2. global $wpdb;
    3.  
    4. $table_name = $wpdb->prefix . "bPortfolio";
    5. $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    6. $results = $wpdb->get_results( $sql );
    7.  
    8. echo '<select name="tools" onchange="this.form.submit();">';
    9. echo '<option value="0">Не имеет значения</option>';
    10.  
    11. foreach($results as $result){
    12.   echo '<option value="'.$results->tools.'">'.$results->tools.'</option>';
    13. }
    14.  
    15. echo "</select>";
     
  8. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Gromo
    любишь ты в большом коде покопаться
     
  9. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    спасибо большое тебе сейчас попробую!
     
  10. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    не получилось....
    меню пустое на нажатие не реагирует
    [​IMG]
    вставил вот так вот
    Код (Text):
    1.  
    2. function bPortfolio() {
    3.  
    4.    
    5. global $wpdb;
    6.  
    7. $table_name = $wpdb->prefix . "bPortfolio";
    8. $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    9. $results = $wpdb->get_results( $sql );
    10.  
    11. echo '<select name="tools" onchange="this.form.submit();">';
    12. echo '<option value="0">Не имеет значения</option>';
    13.  
    14. foreach($results as $result){
    15.   echo '<option value="'.$results->tools.'">'.$results->tools.'</option>';
    16. }
    17. echo "</select>";
    18.  
    19.     foreach ($results as $result) {
    20.        
    21.         echo "
    22.         <br>
    23.                 <table width=\"100%\">
    24.                 <tr valign=\"top\">
    25.                     <td><a href=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"400px\" rel=\"lightbox[roadtrip]\">
    26.                     <img src=\"../wp-content/plugins/bPortfolio/imgs/".$result->img."\" width=\"150px\">
    27.                     </a>
    28.                     </td>
    29.                     <td height=\"100%\" width=\"100%\">
    30.                         <table class=\"data\" width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\">
    31.                             <tr><td height=\"20%\">Наименование</td><th>".$result->name."(".$result->date.")</th></tr>
    32.                             <tr><td height=\"20%\">Цена:</td><th>".$result->client."</th></tr>
    33.                             <tr><td height=\"20%\">Описание</td><th>".$result->description."</th></tr>
    34.                             <tr><td height=\"20%\">Бренд:</td><th>".$result->tools."</th></tr>
    35.                            
    36.                         </table>
    37.                     </td>
    38.                 </tr>
    39.               </table>";
    40.     }
    41.  
    42. }
    43.  
    44. ?>
     
  11. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
     
  12. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    используется специфический класс для работы с базой данных.
    ничего конкретно сказать не могу, потому как не знаю как он работает.
    У меня два предположения - или запрос ничего не возвращает (пустая таблица/неправильный запрос),
    либо мы неправильно обращаемся к возвращаемым полям.

    сделай так:
    Код (Text):
    1.  
    2. echo '<select name="tools" onchange="this.form.submit();">';
    3. echo '<option value="0">Не имеет значения</option>';
    4. echo "</select>";
    5.  
    6. echo '<pre>'.print_r($results, true).'</pre>';
    7. exit();
    и покажи вывод
     
  13. VItalijs

    VItalijs Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия
    if($results->tools == $results->tools) $selected = "selected";

    :DDD код веселый походу
     
  14. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    Если следовать по логике... Запрос возвращает правильное количество элементов( в базе сейчас содержится 3 пункта, возвращает на выбор 3 пустых) из этого всего следует, что скорее всего мы просто неправильно обращаемся.
    вот что я нарыл:
    C помощью методов $wpdb можно управлять произвольными таблицами в Базе Данных, не обязательно только теми которые были созданы WordPress. Например, у нас, среди прочих таблиц WP, есть таблица "newtable" и нам нужно выбрать все поля id из нее. Реализовать это можно таким SQL запросом через $wpdb:
    $newtable = $wpdb->get_results( "SELECT id FROM newtable" );
     
  15. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Между прочим полезно для закрепления скила "деббаггинг" и раскачки скила "телепат" :)
     
  16. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
  17. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    вставил
    вывел массив
    [​IMG]
     
  18. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Код (Text):
    1.  
    2. global $wpdb;
    3.  
    4. $table_name = $wpdb->prefix . "bPortfolio";
    5. $sql = "SELECT * FROM " . $table_name . " ORDER BY id DESC";
    6. $results = $wpdb->get_results( $sql );
    7.  
    8. echo '<select name="tools" onchange="this.form.submit();">';
    9. echo '<option value="0">Не имеет значения</option>';
    10.  
    11. foreach($results as $result){
    12.   echo '<option value="'.$result->tools.'">'.$result->tools.'</option>';
    13. }
    14.  
    15. echo "</select>";
     
  19. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    все выглядит как и должно, но выбор не происходит
    [​IMG]
     
  20. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Че за код латентного педофила
     
  21. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    DarkGuy
    во-первых, что-то не вижу формы, которая бы отправлялась.
    во-вторых, наверно стоит использовать айдишки в селекте.
    ну, а в третьих, дальше можешь и сам ;)
     
  22. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    Спасибо за помощь!
     
  23. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0
    готов заплатить за доработку кода
     
  24. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    DarkGuy
    рисовать и верстать умеешь?)
     
  25. DarkGuy

    DarkGuy Активный пользователь

    С нами с:
    9 янв 2011
    Сообщения:
    40
    Симпатии:
    0