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

Форум MySQL

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

 

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

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

тема: Обработка после выборки из таблицы
 
 автор: Mesm   (14.08.2006 в 13:57)   письмо автору
 
 

Уважаемые гуру подскажите правильно ли я делаю? Может есть способ удобней и быстрее чем приведенный ниже?

$query=mysql_query("SELECT 'name_group' FROM 'info_group' WHERE id_group='".$result['id_info_group']."'");
$row_cat=mysql_fetch_assoc($query);
echo $row_cat['name_group'];

   
 
 автор: cheops   (14.08.2006 в 16:48)   письмо автору
 
   для: Mesm   (14.08.2006 в 13:57)
 

Можно поступить следующим образом
<?php
  $query
=mysql_query("SELECT name_group FROM info_group WHERE id_group='".$result['id_info_group']."'"); 
  if(!
$query) exit(mysql_error())
  if(
mysql_num_rows($query)) echo mysql_result($query,0); 
?>

Он не быстрее, но надёжнее в плане контроля за ошибками.

   
 
 автор: Vitas   (14.08.2006 в 18:21)   письмо автору
 
   для: Mesm   (14.08.2006 в 13:57)
 

<?php

// исключаем инъекцию
$query mysql_query("SELECT name_group FROM info_group WHERE id_group='" addslashes ($result['id_info_group']) . "'");
$row_cat=mysql_fetch_assoc($query);
echo 
$row_cat['name_group']; 

?>

А чтобы использовать другой способ, посмотрите на сайте у Дмитрия Котерова (http://dklab.ru/lib/Database_Placeholder/)

   
 
 автор: Mesm   (15.08.2006 в 17:37)   письмо автору
 
   для: Vitas   (14.08.2006 в 18:21)
 

т.е. если у меня заведомо известно что в базе есть только одна строка с номером $result['id_info_group']) и мне надо только значение столбца (name_group) мне всегда надо делать fetch_assoc ?

Идельано будет так? :

<?php 
  
if ($query=mysql_query("SELECT name_group FROM info_group WHERE id_group='"addslashes ($result['id_info_group'])."'")) 
       {
        
$row_cat=mysql_fetch_assoc($query); 
         echo 
$row_cat['name_group'];  
        }
else exit();
?>  

   
 
 автор: cheops   (15.08.2006 в 18:59)   письмо автору
 
   для: Mesm   (15.08.2006 в 17:37)
 

Вы можете использовать mysql_result в этом случае, но лучше подстраховаться и добавить LIMIT 1
<?php  
  
if ($query=mysql_query("SELECT name_group FROM info_group 
WHERE id_group='"
addslashes ($result['id_info_group'])."' LIMIT 1"))  
       { 
         echo 
mysql_result($query0);  
       } 
else exit(); 
?>  

   
 
 автор: Mesm   (16.08.2006 в 10:50)   письмо автору
 
   для: cheops   (15.08.2006 в 18:59)
 

А что будет работать быстрее?

   
 
 автор: cheops   (16.08.2006 в 11:49)   письмо автору
 
   для: Mesm   (16.08.2006 в 10:50)
 

Выборка одного значения будет работать примерно одинаково в любом случае - здесь слишком мало вычислений, чтобы можно было ощутить какую-то разницу.

   
Rambler's Top100
вверх

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