Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: выборка данных из БД на страницу
 
 автор: frisst   (15.09.2009 в 18:30)   письмо автору
 
 

Здравствуйте! Мне на днях уже помог очень хороший человек, но... есть ещё один вопрос!
сперва приведу код!
<?php 
  
include("config.php"); 
  
$query "SELECT * FROM table_1 LIMIT 1"
  
$tbl mysql_query($query); 
  if(!
$tbl) exit("Ошибка выполнения запроса ".mysql_error()); 
  
$result mysql_fetch_array($tbl);
  echo 
$result['url']; 
    
?> 


код выводит записи из поля! Теперь нужно чуть-чуть другое! Что дописать, чтобы на страницу выводилась определённая строка из поля?

например поле TEXT
первая запись : я на форуме
вторая запись : я в чате

так вот мне допустим нужно вывести на страницу только "я в чате"

  Ответить  
 
 автор: cheops   (15.09.2009 в 18:38)   письмо автору
 
   для: frisst   (15.09.2009 в 18:30)
 

Нужно поставить условие в SQL-запросе при помощи конструкции WHERE. Например
<?php  
  
include("config.php");  
  
$query "SELECT * FROM table_1
            WHERE `text` = 'я в чате'
            LIMIT 1"
;  
  
$tbl mysql_query($query);  
  if(!
$tbl) exit("Ошибка выполнения запроса ".mysql_error());  
  
$result mysql_fetch_array($tbl); 
  echo 
$result['url'];  
?>

  Ответить  
 
 автор: frisst   (15.09.2009 в 18:42)   письмо автору
 
   для: cheops   (15.09.2009 в 18:38)
 

Ну а допустим я не знаю что написано во второй строчке в первом поле? Можно воспользоваться например полем "id"?

Например я знаю только номер(id) срочки, можно вывести?
или заместо
WHERE `text` = 'я в чате'

нужно поставить
WHERE `id` = 'номер строчки'

и на страницу выйдет вся строчка?
Правильно я говорю или нет?

  Ответить  
 
 автор: cheops   (15.09.2009 в 18:44)   письмо автору
 
   для: frisst   (15.09.2009 в 18:42)
 

>Правильно я говорю или нет?
Да, совершенно верно. Если это число, то можно его указывать без одиночных кавычек.

  Ответить  
 
 автор: frisst   (15.09.2009 в 18:51)   письмо автору
 
   для: cheops   (15.09.2009 в 18:44)
 

тогда теперь ещё одна у меня ошибка получилась!
сейчас поястню
у меня 3 поля: "id" "name" "url"

использую код:

<?php 
include("config.php"); 
$query "SELECT * FROM table_1 WHERE `id` = '2' LIMIT 1"
$tbl mysql_query($query); 
if(!
$tbl) exit("Ошибка выполнения запроса ".mysql_error()); 
 
$result mysql_fetch_array($tbl);
 echo 
$result['url']; 
?> 


но выводит мне информацию только поля "url"
видимо виной всему строка
 echo $result['url']; 

на что мне её поменять, чтобы выводилась информация из всех полей?

  Ответить  
 
 автор: cheops   (15.09.2009 в 18:54)   письмо автору
 
   для: frisst   (15.09.2009 в 18:51)
 

Дело в том, что $result - это ассоциативный массив, если вы хотите вывести значение id - используйте $result['id'], если name - $result['name'], если url - $result['url']. Если появится ещё одно поле - оно будет доступно по своему имени в массиве $result. Например вывести гиперссылку с названием name и ссылкой url можно так
<?php  
include("config.php");  
$query "SELECT * FROM table_1 WHERE `id` = '2' LIMIT 1";  
$tbl mysql_query($query);  
if(!
$tbl) exit("Ошибка выполнения запроса ".mysql_error());  
 
$result mysql_fetch_array($tbl); 
 echo 
"<a href='$result[url]'>$result[name]</a>";
?>

  Ответить  
 
 автор: frisst   (15.09.2009 в 18:57)   письмо автору
 
   для: cheops   (15.09.2009 в 18:54)
 

а вот например мне нужно вывести поле name и subname
мне нужно $result[name] и $result[subname] разделять запятой?

  Ответить  
 
 автор: cheops   (15.09.2009 в 19:03)   письмо автору
 
   для: frisst   (15.09.2009 в 18:57)
 

Да. Только вместо запятой лучше использовать точку - традиционный символ объединения строк в PHP
<?php
  
echo $result['name'].$result['subname'];
?>

или вписать элементы массива в строку (т.е. выполнить так называемую интерполяцию переменных в строку)
<?php
  
echo "$result[name] $result[subname]";
?>

Обратите внимание, что в этом случае не нужно указывать одиночные кавычки.

  Ответить  
 
 автор: frisst   (15.09.2009 в 19:04)   письмо автору
 
   для: cheops   (15.09.2009 в 19:03)
 

спасибо вам огромное! Но я всётаки не могу одного понять!...
как мне вывести все поля при помощи индекса строки?(id)

  Ответить  
 
 автор: cheops   (15.09.2009 в 19:08)   письмо автору
 
   для: frisst   (15.09.2009 в 19:04)
 

Не очень понятно, что вызывает затруднение, данный скрипт вам что отображает
<?php   
include("config.php");   
$query "SELECT * FROM table_1 WHERE `id` = '2' LIMIT 1";   
$tbl mysql_query($query);   
if(!
$tbl) exit("Ошибка выполнения запроса ".mysql_error());   
 
$result mysql_fetch_array($tbl);  
 echo 
"$result[id] $result[name] $result[url]"
?>

И что должен выводить нужный вам скрипт?

  Ответить  
 
 автор: frisst   (15.09.2009 в 19:12)   письмо автору
 
   для: cheops   (15.09.2009 в 19:08)
 

Нет, вы меня не правильно поняли,Просто у меня таблице есть где более 300 полей, и не буду ведь я все поля перечислять в скрипте!.... :-)
Ведь есть возможность выводить все поля по одному полю ID? (тип поля int(11), auto_increment)
Очень срочно нужно, можете помочь?

  Ответить  
 
 автор: cheops   (15.09.2009 в 19:19)   письмо автору
 
   для: frisst   (15.09.2009 в 19:12)
 

Ясно. Вы можете просто обращаться по номерам полей
<?php    
include("config.php");    
$query "SELECT * FROM table_1 WHERE `id` = '2' LIMIT 1";    
$tbl mysql_query($query);    
if(!
$tbl) exit("Ошибка выполнения запроса ".mysql_error());    
 
$result mysql_fetch_array($tbl);   
 echo 
"$result[1] $result[2] $result[3]";  
?>

  Ответить  
 
 автор: frisst   (15.09.2009 в 19:23)   письмо автору
 
   для: cheops   (15.09.2009 в 19:19)
 

ну тогда мне всё равно придётся писать в скрипте
<?php    
include("config.php");    
$query "SELECT * FROM table_1 WHERE `id` = '2' LIMIT 1";    
$tbl mysql_query($query);    
if(!
$tbl) exit("Ошибка выполнения запроса ".mysql_error());    
 
$result mysql_fetch_array($tbl);   
 echo 
"$result[1] $result[2] $result[3] ........ $result[298] $result[299] $result[300]";  
?> 



:-( Жалко блин...
Ну придётся пока так!..
спасибо!

  Ответить  
 
 автор: cheops   (15.09.2009 в 19:26)   письмо автору
 
   для: frisst   (15.09.2009 в 19:23)
 

Почему... вы можете воспользоваться циклом
<?php     
include("config.php");     
$query "SELECT * FROM table_1 WHERE `id` = '2' LIMIT 1";     
$tbl mysql_query($query);     
if(!
$tbl) exit("Ошибка выполнения запроса ".mysql_error());     
$result mysql_fetch_array($tbl);    
for(
$i 1$i <= 300$i++) echo $result[$i]." ";
?>

Только лучше избегать такого количества столбцов - 300 это повод задуматься, чтобы поля превратить в записи (строки) ещё одной таблицы.

  Ответить  
 
 автор: frisst   (15.09.2009 в 19:27)   письмо автору
 
   для: cheops   (15.09.2009 в 19:26)
 

ОЙ! Спасибо вам огромное!...

  Ответить  
 
 автор: frisst   (15.09.2009 в 19:30)   письмо автору
 
   для: cheops   (15.09.2009 в 19:26)
 

Ну я об этом тоже задумался, скоро буду переделывать!
:-)

  Ответить  
 
 автор: Trianon   (15.09.2009 в 20:05)   письмо автору
 
   для: frisst   (15.09.2009 в 19:12)
 

три сотни полей в таблице - явный признак, что структуру базы забыли спроектировать. Тем более, если хотя бы часть из них хранит однотипные данные.

  Ответить  
 
 автор: frisst   (15.09.2009 в 20:30)   письмо автору
 
   для: Trianon   (15.09.2009 в 20:05)
 

как раз она спроектирована!

база содержит полную информацию о человеке! Дата, имя.... ,соц.положение...,сост семьи,.... и многое другое!
Вообщето не я её создавал, а другой человек, а мне приходится все ошибки теперь разгребать! А я сам то не всё знаю... :-)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования