Форумы портала PHP.SU » » Работа с СУБД » не создается таблица

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

1. foozzi - 22 Августа, 2011 - 03:27:35 - перейти к сообщению
подскажите что не правильно в коде? открывается страница без ошибок белая а таблица не создается.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define("SQL_HOST", "localhost");
  3. define("SQL_DATABASE", "gallery");
  4. define("SQL_USER", "root");
  5. define("SQL_PASSWORD", "");
  6.  
  7. $link = mysql_connect(SQL_HOST,SQL_USER,SQL_PASSWORD) or die("Не могу подключиться к базе данных");
  8. mysql_select_db(SQL_DATABASE); // Выбираем БД.
  9. mysql_query('SET NAMES UTF-8'); // Устанавливаем кодировку данных
  10.  
  11. $str_sql_query =
  12. "CREATE TABLE gallery(
  13. img_id INT(5) NOT NULL AUTO_INCREMENT,
  14. img_file VARCHAR(60) NOT NULL,
  15. img_descr VARCHAR(200) NOT NULL,
  16. img_date DATETIME NOT NULL,
  17. PRIMARY KEY(img_id)) TYPE = MYISAM";
  18.  
  19. if (!mysql_query($str_sql_query,  $link)
  20. {
  21. echo "<br />He могу выполнить запрос<br />";
  22. exit();
  23. }
  24. echo "<br />Таблица создана успешно<br />";
  25. // закрытие соединения с сервером базы данных
  26. mysql_close($link);
  27. ?>
  28.  
2. PATCH - 22 Августа, 2011 - 04:27:18 - перейти к сообщению
if (!mysql_query($str_sql_query, $link))
{
echo "<br />He могу выполнить запрос<br />";
exit();
}
echo "<br />Таблица создана успешно<br />";


скобку забыл)

хотя помойму лучше так

PHP:
скопировать код в буфер обмена
  1. mysql_query($str_sql_query,  $link) or die('Ошибка запрос не может быть выполнен');
  2. echo "Таблица создана успешно<br />";
походу так можно)

кстати в exit не обязательно указывать кавычки кавычки надо указывать в тех случаях када хочеш вывести сообщение типо замест

PHP:
скопировать код в буфер обмена
  1. echo "<br />He могу выполнить запрос<br />";
  2. exit();


можно

PHP:
скопировать код в буфер обмена
  1. exit("<br />He могу выполнить запрос<br />");
3. foozzi - 22 Августа, 2011 - 07:37:17 - перейти к сообщению
спасибо с базой разобрался, теперь вот код, тупо белая страница, что за фигня:
PHP:
скопировать код в буфер обмена
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  2. <?PHP //admin.php
  3. //Подключим файл конфигураций
  4. include_once("config.php");
  5.  
  6. //Файл со вспомогательными функциями.
  7. include_once("funcs.php");
  8.  
  9. //Файл подключения к Б,Д,
  10. include_once("connect_db.php");
  11.  
  12. if(!isset($_GET['action']) || $_GET['action'] == '') // Действие не установлено
  13. {
  14.    echo '<tr><td align=center> <a href="?action=new" style="color: black;">
  15.   <h3>Загрузка картинки</h3></a></td></tr>';
  16.  
  17.    if($q = mysql_query("Select img_file, img_descr, img_date From gallery"))
  18.    {
  19.       while($res = mysql_fetch_array($q))
  20.       {
  21.          echo '<tr><td align="center"><img src="gallery/'.$res['img_file'].'">
  22.         <a href="?action=edit&id='.$res['id'].'"> [e] </a>
  23.         <a href="?action=del&id='.$res['id'].'">[x]</a></td></tr>';      }
  24.    }
  25.    else
  26.    {
  27.       die( mysql_error() );
  28.    }
  29. }
  30. else
  31. {
  32.    echo "<h1>Операции с новостями</h1>";
  33.    if($_GET['action'] == 'new')
  34.    {
  35.       echo '<h2>Добавление новости</h2>';
  36.       if(!isset($_POST['new_do']))
  37.       {
  38.          echo '<form name="frm_new" enctype="multipart/form-data" method="post" action="">
  39.         <table>
  40.         <tr>
  41.         <td>Заголовок:</td> <td><input type="text" name="title" size="60" value="">
  42.                  </td></tr>
  43.         <tr>
  44.         <td>Дата:</td><td><input type="text" name="date_1" size="2" value="">
  45.         <input type="text" name="date_2" size="2" value="">
  46.         <input type="text" name="date_3" size="4" value=""></td></tr>
  47.         <tr>
  48.         <td>Картинка:</td> <td><input type="file" name="img"></td></tr>
  49.         <tr>
  50.         <td>Содержимое:</td>
  51.                  <td><textarea name="text" rows=5 cols=20 wrap="off"></textarea></td></tr>
  52.         <tr>
  53.         <td colspan="2"><input type="submit" name="new_do" value="Принять"></td></tr>
  54.         </table></form>';
  55.       }
  56.       else
  57.       {
  58.          $title = clear($_POST['title']);
  59.          $date = clear($_POST['date_3'])."-".clear($_POST['date_2']).
  60.                  "-".clear($_POST['date_1']);
  61.          $text = clear($_POST['text']);
  62.                        
  63.          if(upload($_FILES, $url))
  64.          {
  65.             $img_file = basename($_FILES['img']['name']);
  66.          }
  67.          if(!mysql_query("Insert Into ".SQL_TABLE_PREFIX."news (title, text, date,
  68. img_file, views) Values('".$title."', '".$text."', '".$date."', '".$img_file."', 0)"))
  69.          {
  70.             die( echo mysql_error() );
  71.          }
  72.        
  73.       }
  74.       echo ' <br><br><a href="?">&laquo; Back</a>';  
  75.  
  76.    }
  77.        
  78.    if($_GET['action'] == "edit")
  79.    {
  80.       $id = clear($_GET['id']);
  81.                
  82.       if(!isset($_POST['do_edit']))
  83.       {
  84.          $ed_sel_q = mysql_query("Select title, text, date,
  85. img_file From ".SQL_TABLE_PREFIX."news Where id=".$id." Order By id Desc");
  86.                        
  87.          while($ed_sel_res = mysql_fetch_array($ed_sel_q))
  88.          {
  89.             // здесь фильтрация не обязательно - выборка данных ведется
  90.                         Прямо Из БД. и способа вставить опасные данные - пиндык! нема..
  91.             $dy = substr($ed_sel_res['date'], 0, 4);
  92.             $dm = substr($ed_sel_res['date'], 5, 2);
  93.             $dd = substr($ed_sel_res['date'], 8, 2);
  94.                        
  95.                
  96.         echo '<form name="ed_frm" action="" method="post" enctype="multipart/form-data">
  97.  
  98.        <table>
  99.        <tr>
  100.        <td>Заголовок:</td> <td><input type="text" name="title"
  101.                 size="60" value="'.$ed_sel_res['title'].'"></td></tr>
  102.        <tr>
  103.        <td>Дата:</td><td><input type="text" name="date_1" size="2" value="'.$dd.'">
  104.        <input type="text" name="date_2" size="2" value="'.$dm.'">
  105.        <input type="text" name="date_3" size="4" value="'.$dy.'"></td></tr>
  106.        <tr>
  107.        <td>Содержимое:</td><td>
  108.        <textarea name="text" name="text" rows=5 cols=20 wrap="off">'.$ed_sel_res['text'].'
  109.        </textarea></td></tr>
  110.        <tr><td>Картинка:</td> <td><input type="file" name="img" ></td></tr>
  111.        <tr><td colspan="2"><img src="imgs/LD_imgs/'.$ed_sel_res['img_file'].'"
  112.                             alt="Picture"></td></tr>
  113.        <tr><td><input name="url" type="hidden" value="'.$ed_sel_res['img_file'].'">
  114.        <input type="submit" name="do_edit" value="Принять"></td></tr></form>
  115.        </form>';  
  116.  
  117.          }
  118.       }
  119.       else
  120.       {
  121.          $title = clear($_POST['title']);
  122.          $date = clear($_POST['date_3'])."-".clear($_POST['date_2']).
  123.                  "-".clear($_POST['date_1']);
  124.          $text = clear($_POST['text']);
  125.          $img = basename($_FILES['img']['name']);
  126.          $oldurl = clear($_POST['url']);
  127.                  
  128.          if(upload($_FILES, $url))
  129.          {
  130.             if($_FILES['img']['name'] != $oldurl)
  131.             {
  132.                @unlink($url."/".$oldurl);
  133.             }
  134.                        
  135.             if (!mysql_query("Update ".SQL_TABLE_PREFIX."news Set title='".$title."',
  136. text='".$text."', date='".$date."', img_file='".$img."' Where id=".$id))
  137.             {
  138.                echo "Ошибка изменения данных : ".mysql_error();
  139.             }
  140.            
  141.          }
  142.          else
  143.          {
  144.             if (!mysql_query("Update ".SQL_TABLE_PREFIX."news Set title='".$title."',
  145. text='".$text."', date='".$date."'Where id=".$id))
  146.             {
  147.                echo "Ошибка изменения данных: ".mysql_error();
  148.             }
  149.            
  150.          }
  151.       }
  152.    }
  153.        
  154.    if($_GET['action'] == "del")
  155.    {
  156.       $id = clear($_GET['id']);
  157.       $del_sel_q = mysql_query("Select img_file From ".
  158.           SQL_TABLE_PREFIX."news where id=".$id);
  159.       $del_img_res = mysql_fetch_array($del_sel_q);
  160.                
  161.       if (!mysql_query("Delete from ".SQL_TABLE_PREFIX."news Where id=".$id))
  162.       {
  163.          echo "Ошибка удаления данных!";
  164.       }
  165.       else
  166.       {
  167.          @unlink($url."/".$del_img_res['img_file']);
  168.          
  169.       }
  170.    }
  171. }
  172.  
  173. ?>
4. PATCH - 22 Августа, 2011 - 08:14:47 - перейти к сообщению
1. может научимся разделять код html от php хотяб большые куски) (дать бы ваш самописный сайт обычному дизайнеру он голову сломает капаясь в php скриптах в поиске что за html тэги вы подставляли)
2. в вашем скрипте че та я невижу начало тэга <html><head><body> как эт у вас тэг meta лежит вне тэга <head>? нету как и начало так и конца тэгов
3. хотяб про коментировали я смотря на код вижу пор***у
что я вижу в начале: если не существует переменой гет экшин или он пустой (проверка на пустоту empty() ) выводим заголовок загрузка картинки, а так же снизу заголовка после в этом же логическом выражении выводим с бд 3 поля img_file, img_descr, img_date и загоняем в массив здесь же в цикле while картинку и под картинкой выводим ссылки на редактирование и удаление картинки самое интересное тут есть у нас параметр id который пренадлежит переменой $res['id'] Отсюда как я и говорил порн***а мы вывели с бд 2 лишних поля img_descr, img_date но не вывели поле id о чем это говорит? вы не внимательно писали. за имя edit и delete как я понел выступает bbcode . вот это я счас подробно расписал первые 30 строк (я кстати не описал что мы еще инклудим 3 файла)
мне интересно причем здесь заголовок ЗАГРУЗКА картинки к ВЫВОДУ картинки и ее редактированию?))

пролистал,
откудо то там функции clear, upload таких я даже незнаю) да и php.su каталог функций не выдает их)

предлагаю в самом начале скрипта сделать error_reporting(2047); и прокоментировать хотяб самое основное.

и бо капатся в коде без коментов и смотреть на функции которые не существует) эт реально порн***а
5. foozzi - 22 Августа, 2011 - 08:49:08 - перейти к сообщению
разобрался, дело было не в html коде а в том что я не правильно die( echo mysql_error() ); прописал
надо так die( 'echo mysql_error()' );

а функции которых ты не видел вот
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Функция очистки строк
  3. function clear($string)
  4. {
  5.    if(strlen($string)==0)
  6.    {
  7.       return FALSE;
  8.    }
  9.    else
  10.    {
  11.       return addslashes(trim(htmlspecialchars(strip_tags($string))));
  12.    }
  13. }
  14. //Ф-я загрузки картинки в папку
  15.  
  16. function upload($_FILES,$url,$maxsize = 1024)
  17. {
  18.    if($_FILES['img']['name'] !='')
  19.    {
  20.       //Проверяем размер файла
  21.       if($_FILES['img']['size'] > 0 AND $_FILES['img']['size']<=($maxsize*1024))
  22.       {
  23.          //Проверяем расширение файла
  24.          if($_FILES['img']['type'] == 'image/jpeg' ||
  25.                  $_FILES['img']['type'] == 'image/jpg' ||
  26.                  $_FILES['img']['type'] == 'image/pjpeg')
  27.          {
  28.             //Проверяем загрузился ли файл на сервер
  29.             if(is_uploaded_file($_FILES['img']['tmp_name']))
  30.             {
  31.                //Перемещаем загруженный файл в необходимую папку $url
  32.                if(move_uploaded_file($_FILES['img']['tmp_name'],
  33.                            $url."/".basename($_FILES['img']['name'])))
  34.                {
  35.                   return TRUE;
  36.                }
  37.                else
  38.                {
  39.                   /*Для разработчика*/
  40.                   die("move_uploaded_file | ".$_FILES['img']['error']);
  41.                   /*Для пользователя*/
  42.                   return FALSE;
  43.                }
  44.             }
  45.             else
  46.             {
  47.                /*Для разработчика*/
  48.                die( "is_uploaded_file | ".$_FILES['img']['error'] );
  49.                /*Для пользователя*/
  50.                return FALSE;
  51.             }
  52.          }
  53.          else
  54.          {
  55.             /*Для разработчика*/
  56.             die( "type | ".$_FILES['img']['error'] );
  57.             /*Для пользователя*/
  58.             return FALSE;
  59.          }
  60.       }
  61.       else
  62.       {
  63.          /*Для разработчика*/
  64.          die( "size | ".$_FILES['img']['error'] );
  65.          /*Для пользователя*/
  66.          return FALSE;
  67.       }
  68.    }
  69. }
  70.  
  71. ?>
6. PATCH - 22 Августа, 2011 - 08:59:16 - перейти к сообщению
не пугай меня
зачем двойной вывод информации? die и exit аналогичные функции и при написании скобок вы уже можете выводить информацию т.е
PHP:
скопировать код в буфер обмена
  1. кстати насчет clear  ты проверь ее на работо способность через exit к примеру в title напиши типо <a> /заголовок); </a>
  2.  
  3. и после $title = clear($_POST['title']);
  4.  
  5. сделай exit($title);

ибо я уже пытался написать функцию на обработку текста) однако как мне сказали из функции значение не передается т.е у вас не уберет теги html и не экранирует слеш) попробуйте)
насчет html тегов лучше повставляйте а то как то криво может страница генерироватся).
и еще в первых 30 строках у вас нормально выводит?) а то вы указываете параметр id не выводя его с базы)
7. foozzi - 22 Августа, 2011 - 09:01:53 - перейти к сообщению
да вроде все норм, но одна печаль, никак не хочет utf-8 отображатся, meta прописал да и файл сохранен как надо, и все равно....

вот http://lineage-foozzi[dot]ru/gallery/index.php

 

Powered by ExBB FM 1.0 RC1