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
Форумы портала PHP.SU :: Версия для печати :: Выборка строки
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Выборка строки

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

1. vladvk - 02 Июля, 2007 - 00:27:19 - перейти к сообщению

Зашел в тупик при выборки.Помогите советом.
Суть: есть таблица с полями
________________________________ _
id_komp ! name ! cena ! id_main !
-------------------------------- ---------------------
1 HP 100 1
2 YH 110 1
3 AP 120 2
-------------------------------- ---------------------
Вопрос: Как выбрать одну строку по индификатору id_main=1
Мои действия:
$tet=mysql_query("SELECT name FROM sborka_komp WHERE id_main = '1'");
while ($bar = mysql_fetch_array($tet)) {
print_r($bar);

Вот что мне он выводит:
Array ( [0] => HP [name] => HP ) Array ( [0] => YH [name] => YH)

Что мне надо: вывести строку 1 или 2 но не все сразу.
2. evgenijj - 02 Июля, 2007 - 08:51:13 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $tet=mysql_query("SELECT name FROM sborka_komp WHERE id_main = 1");
  4. while ($bar = mysql_fetch_array($tet))
  5. {
  6.     echo "Имя: ".$bar["name"]."<br/>";
  7. }
  8. ?>
  9.  


А прочитать описание функции mysql_fetch_array() и print_r так трудно? Надо обязательно на форум зайти и попросить, чтобы кто-нибудь объяснил?
http://php.su/functions/?mysql-fetch-array
http://php.su/functions/?print-r
3. vladvk - 02 Июля, 2007 - 13:45:38 - перейти к сообщению
Почему ты такой злой ,ведь я только учусь.Тогда понять немогу зачем вообще форумы.
Если здесь нельзя найти помощь и понимание.
4. evgenijj - 02 Июля, 2007 - 13:54:50 - перейти к сообщению
vladvk пишет:
Почему ты такой злой ,ведь я только учусь.Тогда понять немогу зачем вообще форумы.
Если здесь нельзя найти помощь и понимание.

Да потому, что фактически ты пришел и сказал - "учебник и руководство мне читать лениво - вы мне тут объясните быстренько и доходчиво". Обычно на форумах ответ на такие посты - RTFM. Ответ на твой вопрос - в ЛЮБОМ учебнике по PHP.

http://softtime[dot]ru/bookphp/gl12_10.php
5. vladvk - 02 Июля, 2007 - 14:03:48 - перейти к сообщению
Да моей библиотеки может любой позавидовать.
Ну ладно дело не в этом, может я неправильно вопрос задал.
Я специально выделил(Что мне надо: вывести строку 1 или 2 но не все сразу.).
Спосибо за помощь но все равно выводит две строки а мне надо чтобы одну выводил.
Надо чтобы получилось чтото подобное:
Array ( [0] => HP [name] => HP ) Array ( [0] => YH [name] => YH) ноль выделен там должно быть 1.
6. evgenijj - 02 Июля, 2007 - 14:57:04 - перейти к сообщению
Совсем плохо. Ладно, давай разбираться (ложечку за "папу", ложечку за "маму").

Итак, есть таблица:
PHP:
скопировать код в буфер обмена
  1.  
  2. id | name | email         | password
  3. -------------------------------------
  4. 1  | Миша | misha@mail.ru | 123
  5. 3  | Саша | sasha@mail.ru | 456
  6. 5  | Маша | masha@mail.ru | 789
  7.  

Мы выбираем две записи
SELECT name, email, password FROM users WHERE id IN ( 1, 3 ) ORDER BY id;
Получаем результат запроса
PHP:
скопировать код в буфер обмена
  1.  
  2. Миша | misha@mail.ru | 123
  3. Саша | sasha@mail.ru | 456
  4.  

отсортированный по возрастанию id (т.е. сначала запись "Миша", потом "Саша")
Обрабатываем этот результат
PHP:
скопировать код в буфер обмена
  1.  
  2. $res = mysql_query("SELECT name, email, password FROM users WHERE id IN ( 1, 3 ) ORDER BY id");
  3. echo "<table border='1'>";
  4. echo "<tr><th>Имя</th><th>E-mail</th><th>Пароль</th>";
  5. while ($user = mysql_fetch_array($res))  
  6. {
  7.   echo "<tr><th>".$user["name"]."</th><th>".$user["email"]."</th><th>".$user["password"]."</th></tr>";
  8. }
  9. echo "</table>";
  10.  

Или так
PHP:
скопировать код в буфер обмена
  1.  
  2. $res=mysql_query("SELECT name, email, password FROM users WHERE id IN ( 1, 3 ) ORDER BY id");
  3. echo "<table border='1'>";
  4. echo "<tr><th>Имя</th><th>E-mail</th><th>Пароль</th>";
  5. while ($user = mysql_fetch_array($res))  
  6. {
  7.   echo "<tr><th>".$user[0]."</th><th>".$user[1]."</th><th>".$user[2]."</th></tr>";
  8. }
  9. echo "</table>";
  10.  

Или так
PHP:
скопировать код в буфер обмена
  1.  
  2. $res=mysql_query("SELECT name, email, password FROM users WHERE id IN ( 1, 3 ) ORDER BY id");
  3. echo "<table border='1'>";
  4. echo "<tr><th>Имя</th><th>E-mail</th><th>Пароль</th>";
  5. while ($user = mysql_fetch_row($res))  
  6. {
  7.   echo "<tr><th>".$user[0]."</th><th>".$user[1]."</th><th>".$user[2]."</th></tr>";
  8. }
  9. echo "</table>";
  10.  

Или так
PHP:
скопировать код в буфер обмена
  1.  
  2. $res = mysql_query("SELECT name, email, password FROM users WHERE id IN ( 1, 3 ) ORDER BY id");
  3. echo "<table border='1'>";
  4. echo "<tr><th>Имя</th><th>E-mail</th><th>Пароль</th>";
  5. while ($user = mysql_fetch_assoc($res))  
  6. {
  7.   echo "<tr><th>".$user["name"]."</th><th>".$user["email"]."</th><th>".$user["password"]."</th></tr>";
  8. }
  9. echo "</table>";
  10.  

При желании можем получить доступ к отдельным полям результата запроса
PHP:
скопировать код в буфер обмена
  1.  
  2. echo mysql_result( $res, 0, 0 ); // выводит Миша
  3. echo mysql_result( $res, 0, 2 ); // выводит 123
  4. echo mysql_result( $res, 1, 1 ); // sasha@mail.ru
  5.  
7. vladvk - 02 Июля, 2007 - 15:31:43 - перейти к сообщению
Вау,НИЗКИЙ ТЕБЕ ПОКЛОН, сейчас буду пробывать все варианты.
Меня не ждите буду не скоро.
8. vladvk - 02 Июля, 2007 - 19:02:28 - перейти к сообщению
Тему можно закрыть вопрос исчерпан.
evgenijj тебе спасибо, вся фишка была в том что я неправильно вопрос задал.
Сам допетрил.!!!!!!!!!!!!!
9. Wolk - 13 Октября, 2007 - 12:08:38 - перейти к сообщению
Всем привет,значит,есть mssql,создал базу,табличку,в php делаю вывод данных из таблички,в табличкуУлыбкавсё выводится как надо,но нето что надо,если пытаюсь вернуть то что написано Русскими буквами,то получаю в виде левых символов,то что англицкими то нормально.
проблема в кодеровке скорей всего,дайте пожалуйсто ссылку ,где можно про это почитать.
И ещо вопрос,чего так долго всё грузится?Улыбканесколько секунд надо на то чтобы подконектится к серверу (локальному ) выполнить простейший запрос,создать табличку в html,и вывести данные,или это так и должно быть?но если база чуть по больше,и запрос помудрёней,то этож ваще будет вах вах просто как долго.
10. valenok - 13 Октября, 2007 - 12:23:56 - перейти к сообщению
Псем привет.
Тут есть кнопочка -> Новая тема
Жмём на неё и дальше как интуиция подсказывает.

 

Powered by ExBB FM 1.0 RC1