За последние 24 часа нас посетили 18785 программистов и 1705 роботов. Сейчас ищут 702 программиста ...

Не работает запрос

Тема в разделе "MySQL", создана пользователем Dare, 8 ноя 2009.

  1. Dare

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

    С нами с:
    8 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    Вопрос. У меня есть бд bd в ней таблица name с ячейкой nam. Вот часть скрипта:
    PHP:
    1. $con = mysqli_connect("localhost", "root", "", "bd");
    2. if (!$con) {
    3.     echo "db doesnt exist";
    4.     exit();
    5. } else {
    6.    echo "database exists <br>";
    7. }
    Подключились к базе.
    Далее игнорируя name создаем таблицу
    PHP:
    1. if (mysqli_query($con, "CREATE TABLE abc (bcd VARCHAR(20))")) {
    2.   echo "";
    3. } else {
    4.    echo "";
    5. }
    Вроде тоже норм эхами проверял работает или нет. Но при попытке
    PHP:
    1. if (mysqli_query($con, "INSERT INTO abc VALUES ('abc','dfgl')"))
    2. {
    3.    echo "1";
    4. } else {
    5.    echo "2";
    6. }
    Выдает 2 и не хочет заносить данные. Может мне кто обьяснит?
     
  2. akrinel

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

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    1:
    [sql]INSERT INTO abc VALUES ('abc','dfgl')[/sql]
    Некорректный синтаксис. У Вас в таблице abc Один столбец а Вы в нее пытаетесь впихнуть кортеж с 2-мя параметрами.
    Попробуйте ввести так:
    [sql]INSERT INTO `abc` VALUES ('abc'), ('dfgl');[/sql]

    2:
    Вряд ли этот вопрос вообще появился, если бы Вы воспользовались функцией вывода ошибок mysqli_error.

    P.S.
    Вопрос ко всем, уже не первый раз вижу процедурный вариант использования mysqli. Это чем-то оправдано или же люди просто не знают про старые добрые mysql_query и иже с ними?
     
  3. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Если пользуешься биндингами - то да.
    В противном случае - по-барабану.
     
  4. Dare

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

    С нами с:
    8 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    И еще вопрос
    PHP:
    1. <?php
    2. $bdname = $_POST['bd'];
    3. $con = mysqli_connect("localhost", "root", "", $bdname);
    4. if (!$con) {
    5.     echo "db doesnt exist";
    6.     exit();
    7. } else {
    8.    echo "database exists <br>";
    9. }
    10.  
    11. if (mysqli_query($con, "CREATE TABLE abc (bcd CHAR(50))")) {
    12.   echo "";
    13. } else {
    14.    echo "";
    15. }
    16.  
    17. if (mysqli_query($con, "INSERT INTO `abc` VALUES ('bcd'), ('dfgl');"))
    18. {
    19.    echo "1";
    20. } else {
    21.    echo "2";
    22. }
    Этим я внес в bcd строку dfgl. А потом
    PHP:
    1.  
    2. $res = (mysqli_query($con, "SELECT * FROM abc"));
    3.     echo $res;
    И вот этот селект то и выводит ошибку
    Catchable fatal error: Object of class mysqli_result could not be converted to string in Z:\home\localhost\www\check\check.php on line 30

    Как вывести значение на страницу?
     
  5. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    см. mysqli_fetch_row

    akrinel
    если весь код процедурный - зачем туда примешивать объектный?)
     
  6. Dare

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

    С нами с:
    8 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    Я чтото плохо понимаю...... выдает, только выдает какую то фигню извините за выражение. Можете мне подробно обьяснить как занести в таблицу значение и вывести на страницу? К примеру имя занести а потом извлечь. А то чтото скл мне не дается точнее дается но обрывками)
     
  7. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    Dare
    функция mysqli_query() возвращает не значения из базы, а ресурс, из которого эти значения можно прочитать.

    в общем случае примерно таким способом:

    PHP:
    1. <?
    2. $q = mysqli_query($conn, "SELECT id FROM table");
    3.  
    4. while($row = mysqli_fetch_row($q)){
    5. echo $row[0];
    6. }
    7. ?>
     
  8. Dare

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

    С нами с:
    8 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    К примеру я создал в май админе базу bd в ней таблицу user и там ячейку name
    При регистрации (к примеру) мы отправляем имя в ячейку name. Пока я хочу понять хотя бы на примере одного пользователя как это работает. Чтобы занести информацию туда и вывести на страницу. Сразу. Можно попросить написать код?
     
  9. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    PHP:
    1.  
    2. $link = mysql_connect("localhost","root","")
    3.         or die("Could not connect: " . mysql_error());
    4. $db="db";
    5. mysql_select_db($db)  or  die("Не  могу  открыть  $db:  ".mysql_error());
    6. $name=$_POST['name']; //или $_GET['name']
    7. $query="insert into `user` values('$name')";
    8. mysql_query($query, $link);
     
  10. Dare

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

    С нами с:
    8 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    Это уже нубизм с моей стороны. Занесло оно значение а как вывести то? Или проверить к примеру если значение которое занесли в таблицу принять за $res
    PHP:
    1.  
    2. $nam = "Dare";
    3. if ($res=$nam)
    4.  
    ну и так далее так вот как занести именно в строку? Способом описанным выше он мне всю страницу зафлудил... а мне четко надо
     
  11. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    я не понял, тебе нужен скрипт регистрации\ авторизации чтоле ?
    или тебе надо заносить в таблицу значение и тут же его вызывать и показывать?
    Просто напиши в чем задача конкретно
     
  12. Dare

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

    С нами с:
    8 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    я на примере. мне никак не дается муксл будь он неладен. я так для примера говорю в будущем надеюсь см до этого дойти. как заносить данные в таблицу я понял а как выводить то?
     
  13. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    вот смотри у тебя допусти есть таблица user с 3-мя полями login name password
    допустим нам надо получить имя чела с login'ом Vasia

    PHP:
    1. $link = mysql_connect("localhost","root","")
    2.          or die("Could not connect: " . mysql_error());
    3.  $db="db";
    4.  mysql_select_db($db)  or  die("Не  могу  открыть  $db:  ".mysql_error());
    5. $login="Vasia"; // определяем переменную, по ней искать будем
    6. $query ="SELECT * from `user` WHERE login = '$login'"; //выбираем строку где логин =Vasia
    7. $result = mysql_query($query,$link);  // получаем адрес этой строки в переменную результ
    8. $resulttoarray = mysql_fetch_array($result); //типа разбиваем строку на массив где индекс это имена столбцов
    9. $name=$resulttoarray['name'];   //присваиваем из массива в переменные
    10. $password=$resulttoarray['password'];
    11. echo 'Логин: ',"$login",' Имя: ',"$name",' Пароль: ',"$password";
    я сам нуб правда
     
  14. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    а можно было тупо
    $query ="SELECT * from `user` WHERE login = 'Vasia'";
     
  15. Dare

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

    С нами с:
    8 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    Кстати чтобы не надоедать форуму у тебя есть аська/скайп? Если конечно ты можешь и у тебя есть натроение еще помогать мне нубу) Если есть пришли тогда в лс плз
     
  16. Padaboo

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

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    могу дать, тока я сам нуп и запрос это не совсем правильный, меня 20минут назад ругали за него в другой теме)
     
  17. Dare

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

    С нами с:
    8 ноя 2009
    Сообщения:
    37
    Симпатии:
    0
    давай, не такой уж ты и нуб раз говоришь умные вещи) я нубее
     
  18. running-frag

    running-frag Активный пользователь

    С нами с:
    4 сен 2008
    Сообщения:
    65
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. function search_getOptionList()
    4. {
    5.     $_sql =  "*******************";
    6.     $_qry = mysql_query($_sql);
    7.     $_num = mysql_num_rows($_qry);
    8.    
    9.     if ($_qry && $_num != 0)
    10.     {
    11.         // тут $i служит счётчиком, в другом случае можно проще, через while
    12.         for ($i=0; $i < $_num; $i++)
    13.         {
    14.             $_row = mysql_fetch_assoc($_qry);
    15.             $_opt[$i]["categoryID"] = $_row["categoryID"];
    16.             $_opt[$i]["categoryName"] = $_row["categoryName"];
    17.            
    18.             if ($_row["categoryShow"] == NULL)
    19.             {
    20.                 $_opt[$i]["checkbox"] = FALSE;
    21.             }
    22.             else
    23.             {
    24.                 $_opt[$i]["checkbox"] = TRUE;
    25.             }
    26.            
    27.         }
    28.         return $_opt;
    29.     }
    30.     else
    31.     {
    32.         return FALSE;
    33.     }
    34.  
    35. }
    36. ?>
    37.