Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не могу создать запрос

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
root-php
Отправлено: 21 Декабря, 2008 - 08:34:45
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Дек. 2008  


Помог: 0 раз(а)

[+]


Создаю такой запрос который должен вывести из поля logintime результат на экран при поверке есть ли такой логин(username) и пароль(pass) Таблица unauth: но выдает ошибку Warning: Wrong parameter count for mysql_result() in /home/www/public_html/eddb/l.php on line 16

И сам код:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?
  4. $hostname = "localhost";
  5. $username = "user";
  6. $password = "1234";
  7. $dbName = "dbname";
  8. /* Таблица MySQL, в которой хранятся данные */
  9.  
  10. /* создать соединение */
  11. MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");
  12. mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");
  13.  
  14. /* Проверить если есть Login: admin и Pass: 123456  то вывести значение его Logintime */
  15. $sql= mysql_query("SELECT logintime FROM `unauth` WHERE `pass`=\'123456\' AND `username`=\'admin\'");
  16.  
  17.  
  18. $name = mysql_result('$sql');
  19. PRINT " $name ";
  20.  
  21.  
  22.  
  23. ?>
  24.  
  25.  


Подскажите пожалйуста что я делаю не правильно в запросе? Через PhpMyAdmin запрос проходит на ура.
 
 Top
Champion Супермодератор
Отправлено: 21 Декабря, 2008 - 09:28:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




1-СНАЧАЛА прочитайте описание функции. Ей необходимо ДВА обязательных параметра.
2-потом почитайте про работу со строковыми значениями и узнайте, что обозначает то, что вы написале в качестве параметра
 
 Top
valenok Модератор
Отправлено: 21 Декабря, 2008 - 09:48:08
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А потом про строки и переменные в php вообще


-----
Truly yours, Sasha.
 
My status
 Top
root-php
Отправлено: 21 Декабря, 2008 - 16:53:47
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Дек. 2008  


Помог: 0 раз(а)

[+]


Да уж. форум интересный и люди на нем тоже. Я же говорю что запрос MyPHPAdmin проходит нормально и отображает корректно после чего я и запрос перевел в MyPHPAdmin в PHP код но запрос в программе не проходит спрашиваю что делаю не правильно каждый пытается что свое не по теме сказать.
 
 Top
Champion Супермодератор
Отправлено: 21 Декабря, 2008 - 18:12:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




root-php,
-синтаксически запрос составлен верно
-ошибка в PHP-коде
-вам подсказали в чем ошибка
-вам сказали, в какой области знаний у вас недостатки, судя по вашему коду.
-напоминаете анекдот:
Цитата:
Блондинка покупает принтер, подсоединяет к компу, включает и видит сообщение "Устройство не будет работать корректно, т.к. не найден подходящий драйвер. Вставьте диск, прилагаемый к устройству". Она отсоединяет принтер, подсоединяет заново. Та же история: "вставьте диск". После Нескольких раз она звонит фирме-производителю и говорит, мол, принтер ваш не работает. Голос в трубке спрашивает: "Ошибка какая-то? Что пишет?". Она отвечает: "Пишет вставить диск". В трубке: "И вы вставляли?" Она: "Ой, а я как-то и не додумалась!"


Вот так же и вы. И обвинять здесь, что мы пишем не по теме, не уместно
 
 Top
root-php
Отправлено: 21 Декабря, 2008 - 19:26:41
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Дек. 2008  


Помог: 0 раз(а)

[+]


Ладно ребята сори малость погорячился составил вот я тот запрос который мне нужно было, прочитав ту литературу которую вы мне дали, запрос работает все ок, только хотел узнать что в нем можно оптимизировать что бы сильно сервер не грузил или в нем все ок.
И можете сказать какие минусы такого запроса:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?
  4. /* Скрипт выводит данные по двум условиям
  5. 1. Есть ли пользователь в базе с именем Admin и с паролем 12345
  6. если есть то выводим его полное имя Fullname  из  MYSQL  */
  7. $hostname = "localhost";
  8. $username = "root";
  9. $password = "123456";
  10. $dbName = "dbname";
  11. /* создать соединение */
  12. MYSQL_CONNECT($hostname,$username,$password) OR DIE
  13. ("Не могу создать соединение ");
  14. mysql_select_db("$dbName") or die
  15. ("Не могу выбрать базу данных ");
  16. /* Создаем запрос в базу данных если в базе есть User 'Admin' и Pass '12345'
  17.  то выводим на экран полное имя Fullname  */
  18. $zapros= mysql_query
  19. ("SELECT `fullname` FROM `table1` WHERE username='admin' AND pass='12345'");
  20. $fullnam = mysql_fetch_array($zapros);
  21. $otvet = $fullnam['fullname'];
  22. PRINT " $otvet ";
  23. ?>
  24.  
  25.  

(Отредактировано автором: 21 Декабря, 2008 - 19:29:21)

 
 Top
modobaks
Отправлено: 21 Декабря, 2008 - 20:26:45
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Дек. 2008  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. $fullnam = mysql_fetch_array($zapros);
  3. $otvet = $fullnam['fullname'];
  4.  


правильнее, было бы наверно так, $zapros = $r

PHP:
скопировать код в буфер обмена
  1.  
  2. if ( mysql_num_rows( $r ) > 0 )
  3. {
  4. $fullnam = mysql_fetch_array($zapros);
  5. $otvet = $fullnam['fullname'];
  6. PRINT " $otvet ";
  7. }
  8.  


а лучше написать маленький класс для управление этим делом, поверь плюсы в этом есть


-----
Разработка ( сайтов || скриптов ) Продаю CMS: EASY, ULTRA, ENGINE, ENIMA - для любых задач.
 
 Top
maslcs
Отправлено: 22 Декабря, 2008 - 05:39:56
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




root-php пишет:
$fullnam = mysql_fetch_array($zapros);
$otvet = $fullnam['fullname'];
PRINT " $otvet ";

mysql_fetch_array возвращает многомерный массив.
 
 Top
Champion Супермодератор
Отправлено: 22 Декабря, 2008 - 08:53:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




modobaks пишет:
правильнее, было бы наверно так, $zapros = $r

что за $r?
modobaks пишет:
написать маленький класс для управление этим делом

Может быть.
maslcs пишет:
mysql_fetch_array возвращает многомерный массив.

Правда? Я немножко удивился. По-моему, одну строку он возвращает.

Теперь мое мнение.
-вы ушли от проблемы с функцией mysql_result(). Почему? - не разобрались или решили, что такое решение эффективнее?
-Много комментариев.
-После выполнения запроса можно бы проверить не вернул ли он ноль строк. Плюс к этому, если строк больше одной, то $fullnam = mysql_fetch_array($zapros) делаеть надо в цикле.
-Писать "$переменная" лучше не надо, особенно, если кроме переменной ничего больше
нету в строке.
-У вас в коде присутствует непостоянство: то вы пишете названия функций большими, то маленькими буквами; названия столбцов то берете в ``, то не берете.

Все, конечно не по существу, но все-таки.
 
 Top
valenok Модератор
Отправлено: 22 Декабря, 2008 - 10:55:02
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




root, купи учебник или чьи то услуги. За тебя все сделаеют, наладят и поставят на производство. Нервы себе съэкономишь.


-----
Truly yours, Sasha.
 
My status
 Top
root-php
Отправлено: 24 Декабря, 2008 - 12:23:21
Post Id



Новичок


Покинул форум
Сообщений всего: 29
Дата рег-ции: Дек. 2008  


Помог: 0 раз(а)

[+]


Спасибо за ответы, учебник есть такого великого писателя как Д.Котеров ПРОГРАММИРОВАНИЕ НА PHP-4 но он пишет сам не знает что один только пример работает это вызов Hello Word.
 
 Top
valenok Модератор
Отправлено: 24 Декабря, 2008 - 12:50:48
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Это во первых потому что там 1200 страниц.. я такие библии обхожу за 1200 метром
а во вторых, потому что надпись гласит php 4


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB