[sql] Вопросы по БД

Discussion in 'PHP' started by FraiDex, 25 Feb 2008.

Thread Status:
Not open for further replies.
  1. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    Привет, перенес базу с локала на серв, база сравнения и т.п. совпадают..
    Вопрос: почему выводит ??? ведь все совпадает, в базе все написано нормально, на выводе х-ня. Что это за кодировка N‹N‹N‹N‹N‹N‹ - это по русски ыыыыы
     
  2. ++Norton++

    ++Norton++ Elder - Старейшина

    Joined:
    20 Nov 2006
    Messages:
    167
    Likes Received:
    39
    Reputations:
    0
    Можно попробовать поменять кодировку базы с помощью:
    Code:
    charset имя_кодировки
    
    Или, если из базы выводятся данные в HTML страницу, то можно поменять кодировку на странице отображения.
     
  3. Zedi

    Zedi Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    316
    Likes Received:
    120
    Reputations:
    13
    Привет, всем! Нужно составить запрос: увеличить значение одного поля на +1, и найти все записи с полученным значением поля и уменьшить его на -1, помогите пожалуйста, в подзапросах не силен, с меня плюсы
     
  4. ++Norton++

    ++Norton++ Elder - Старейшина

    Joined:
    20 Nov 2006
    Messages:
    167
    Likes Received:
    39
    Reputations:
    0
    Немного не понятно.
    1) Нужно составить запрос, который увеличивает только одно какое-то поле на 1. Здесь все понятно, если так, то можно попробовать следующим образом:
    Code:
    UPDATE table SET id=id+1;
    
    где table - таблица в которой находится это значение, name='admin' - некоторое условие, по которому выбирается нужная строка.
    2) Найти все записи с полученным значением поля и уменьшить его на -1:
    Code:
    UPDATE table SET id=id-1 WHERE id=znach;
    
    Здесь table - это таблица с заданным значением, id - имя столбца содержащего это значение, znach - полученное значение поля.
    Если правильно понял вопрос, то вроде все так.
     
    #304 ++Norton++, 6 Nov 2008
    Last edited: 6 Nov 2008
    3 people like this.
  5. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Code:
    UPDATE table SET id = id+1 ....
    :)

    насчёт второй части вопроса тоже не понял...какая связь между этими запросами? И вторая часть должна проходить в той же таблице или в другой.
    Или это вообще два разных запроса? короче ничё не понятно =\
     
    3 people like this.
  6. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    Попонятнее опиши,а то не понятна суть вопроса
     
    1 person likes this.
  7. ++Norton++

    ++Norton++ Elder - Старейшина

    Joined:
    20 Nov 2006
    Messages:
    167
    Likes Received:
    39
    Reputations:
    0
    .:EnoT:.
    Спасибо за поправку! (на счет id=id+1. Голова уже не варила)) Исправил :)
     
  8. Zedi

    Zedi Elder - Старейшина

    Joined:
    6 Jun 2007
    Messages:
    316
    Likes Received:
    120
    Reputations:
    13
    всем спасибо,ссори, затупил
     
    1 person likes this.
  9. FIXERMAN

    FIXERMAN Banned

    Joined:
    7 Aug 2008
    Messages:
    6
    Likes Received:
    2
    Reputations:
    -5
    Помогите с MSSQL

    Привет
    Имеется коннект к MSSQL 2000 права юЗверя хранимые процедуры выключены (например xp_cmdshell) но ...
    Таким запросом список системные файлов можно посмотреть

    Code:
    $link = mssql_connect("192.168.0.1", "user", "passwords") or die("Could not connect to MsSQL server!");
       mssql_select_db("master",$link) or die("Could not select company database!");
       $query = "exec xp_dirtree 'c:\',0,1"; так с файлами 
     \\$query = "exec xp_dirtree 'c:\',1"; так только папки
       $result = mssql_query($query,$link);
    
       echo '<table cellpadding="2" cellspacing="1" width="100%">';
       echo "<tr><td>DIRECTORY</td></tr>";
       while($line=mssql_fetch_assoc($result)){
        echo
    
    "<tr><td>$line[subdirectory]</td></tr>";
    }
    echo "</table>";
    
       print "Total rows selected: ".mssql_num_rows($result);
       mssql_close($link);
    -------------------------------------------------------------------------
    но суть проблемы в том что надо прочитать системные файлы например autoexec.bat (редакт не объязателен можно даже только read only)

    ВОПРОС: как можно прочитать файлы если xp_cmdshell выключен или как импортировать в БД бинарный файл ? или как нить можно другими процедурами выполнить такое или создать хранимую процеду ? ...
     
  10. Ershik

    Ershik Elder - Старейшина

    Joined:
    7 Nov 2007
    Messages:
    301
    Likes Received:
    46
    Reputations:
    6
    Хочу скачать таблицу, но не могу.
    Выводится ошибка
    Как это исправить? "Не может найти файл ***"..сама таблица есть, но данных нет.
    Форум работает без изменений.
    Нашел решение. Удалить и создать заново таблицу.
    Будет ли функционировать форум. Он не мой. а эксперементировать ой как не хочется..
     
    #310 Ershik, 12 Nov 2008
    Last edited: 12 Nov 2008
  11. kalpsik

    kalpsik Elder - Старейшина

    Joined:
    10 Jan 2007
    Messages:
    58
    Likes Received:
    18
    Reputations:
    0
    Ershik, сделай дамп, и скачай дамп...
     
    1 person likes this.
  12. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Или просто тупо пропарсить нужную таблицу в базе через сокеты и рез-ты записать в файл. При нормальном соединении - вопрос ~ 1-2 минут если ~ 100 записей в таблице
     
  13. Ershik

    Ershik Elder - Старейшина

    Joined:
    7 Nov 2007
    Messages:
    301
    Likes Received:
    46
    Reputations:
    6
    Дамп не делается по причине ошибки.
    Как понять пропарсить через сокеты?С помощью PHP выдернуть из сервера Mysql нужную таблицу? Так прав нет..
     
  14. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    чото невогнал вообще - ты смотреть хоть как-то, хоть каким-то образом (посредством sql-inj) можешь хоть что-то в интересующей тебя таблице? Если нет - то нет.
     
    1 person likes this.
  15. Ershik

    Ershik Elder - Старейшина

    Joined:
    7 Nov 2007
    Messages:
    301
    Likes Received:
    46
    Reputations:
    6
    Я смотрел через phpmyadmin и mysql скрипт. Пишет одну и ту же ошибку.
    Скули нет. Есть подобие шелла.
    Смотреть? Конечно могу, но испорченна только эта таблица, из-за которой невозможно скачать дамп.
    Если только перезаписать.
    Это, впринципе не проблема, но я не знаю, какие там данные хранятся.
    Есть ли способ отремонтировать таблицу?
     
  16. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    REPAIR TABLE:
    http://dev.mysql.com/doc/refman/5.0/en/repair.html
    http://dev.mysql.com/doc/refman/5.0/en/repair-table.html
     
  17. kalpsik

    kalpsik Elder - Старейшина

    Joined:
    10 Jan 2007
    Messages:
    58
    Likes Received:
    18
    Reputations:
    0
    чето я ваще ниче не понимаю...
    если у тя доступ к PHPMyAdmin есть, как правильно сказал [Raz0r], сделай запрос repair table имя_таблицы;
    потом сделай дамп... или, на худой конец, скрипт пхпшный напиши, который результаты select * from bla bla bla будет тебе в файл писАть, и файл скачай...
     
  18. D1mka

    D1mka Elder - Старейшина

    Joined:
    2 Jan 2008
    Messages:
    123
    Likes Received:
    14
    Reputations:
    2
    только сильно не пинайте, я в этом новичок.
    при заходе на локалхост выдает ошибки:
    Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result
    сам пхп код
    PHP:
    <?php
    $DB 
    mysql_connect ("localhost","d1mka","123456");
    mysql_select_db ("my_base",$db);
    $result=mysql_query ("SELECT * FROM test1",$db);
    $num=mysql_num_rows($result);
    echo 
    $num;
    ?>
    база my_base и таблица test1 созданы, пользователь с правами рут.
    на локальной машине установлен Денвер-4.
     
  19. NuR

    NuR Elder - Старейшина

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    конект у тя идет или нет=)
    $DB = mysql_connect ("localhost","d1mka","123456");

    если не подключиться то $DB будет false. так что действуй=) проверь еще у тя сервачёк то мускульный запущен или нет.
    для наглядности можешь сделать так:
    $DB = mysql_connect ("localhost","d1mka","123456") or die( mysql_error());
     
  20. D1mka

    D1mka Elder - Старейшина

    Joined:
    2 Jan 2008
    Messages:
    123
    Likes Received:
    14
    Reputations:
    2
    $DB = mysql_connect ("localhost","d1mka","123456") or die( mysql_error());
    дописал теже самые ошибки
    хз когда денвер запускается он в окошке пишет "Запускуаем MySQL"
    так... в диспечере видно mysqld.exe*32
     
    #320 D1mka, 14 Nov 2008
    Last edited: 14 Nov 2008
Thread Status:
Not open for further replies.