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

Форум MySQL

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

 

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

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

тема: переменаая в запросе к базе данных
 
 автор: gers   (08.01.2007 в 00:04)   письмо автору
 
 

Здравствуйте! вот писал скрипт и столкнулся как одну переменную вставить в запрос к бд, вот вобщем код:

<?php 
  
require_once("security.php");
  require_once(
"config.php"); 

  
$query "SELECT * FROM User WHERE FIO='".$_SERVER['PHP_AUTH_USER']."'"
  
$tbl mysql_query($query); 
  if(!
$tbl) exit(mysql_error());
  
// Если имеется хоть одна запись - выводим
  
if(mysql_num_rows($tbl))
  {
    while(
$table mysql_fetch_array($tbl))
    {
       echo 
$table['Client_ID']."<br>";   #<--эту переменную необходимо вставить в след. запрос
    
}
  }

  
$query1 "SELECT * FROM Client WHERE ID='"[b]$table['Client_ID']."'[/b]";  # вот здесь проблема...
  
$bal mysql_query($query1);
  if(!
$bal) exit(mysql_error());
  if(
mysql_num_rows($bal))
  {
    while(
$bl mysql_fetch_array($bal))
    {
       echo 
$bl['Credit']."<br>"
    }
  }
    
?> 


код работает полностью работает если вставить в запрос реальное число а не переменную, например: $query1 = "SELECT * FROM Client WHERE ID='4'";

   
 
 автор: Бамси   (08.01.2007 в 00:27)   письмо автору
 
   для: gers   (08.01.2007 в 00:04)
 

[Исправил]
Извините, не правлиьно понял.

   
 
 автор: Саня   (08.01.2007 в 00:34)   письмо автору
 
   для: gers   (08.01.2007 в 00:04)
 

Перепишите так: $query1 = "SELECT * FROM Client WHERE ID=".intval($table['Client_ID']);
intval я для пущей уверенности вставил, хотя он будет лишним, если колонка Client_ID имеет числовой тип.

   
 
 автор: Gers   (08.01.2007 в 01:04)   письмо автору
 
   для: Саня   (08.01.2007 в 00:34)
 

да Client_ID имеет числовой вид, чтото это исправление не дало результата
может код сократить можно? необходимо из первой таблицы добыть Client_ID и вторым запросом извлеч из второй таблицы поле Credit

   
 
 автор: AlexelA   (08.01.2007 в 01:20)   письмо автору
 
   для: gers   (08.01.2007 в 00:04)
 

С точки зрения синтаксиса, запрос должен выглядеть так:

$query1 = "SELECT * FROM Client WHERE ID='".$table['Client_ID']."'";

Но с точки зрения логики, не понятно, почему вы используете в запросе 'b' и '/b'.
Подставляя значение - '4', вы их не используете.
По поводу объединения запросов, попробуйте так:

$query = "select u.FIO,c.Credit from User u,Client c
where u.FIO = '".$_SERVER['PHP_AUTH_USER']."' and c.ID = u.Client_ID";

   
 
 автор: Gers   (08.01.2007 в 01:37)   письмо автору
 
   для: AlexelA   (08.01.2007 в 01:20)
 

'b' и '/b' я использовал чтобы подчеркнуть момент... в основном коде этого нету :)
Спасибо всем за помощь! почитал пока форум сократил код и получилось намного проще...

$query = "SELECT * FROM User WHERE FIO='".$_SERVER['PHP_AUTH_USER']."'"; 
  $tbl = mysql_query($query); 
  if(!$tbl) exit(mysql_error());
  if(mysql_num_rows($tbl))
  {
    $table = mysql_fetch_array($tbl);
    $se =$table['Client_ID'];
    echo "$se";    
  }
?><P>
<?
  $query1 
"SELECT * FROM Client WHERE ID='$se'"
  
$bal mysql_query($query1);
  if(!
$bal) exit(mysql_error());
  if(
mysql_num_rows($bal))
  {
    
$bl mysql_fetch_array($bal);
    
$cred =$bl['Credit'];
       echo 
"$cred"
   }

   
Rambler's Top100
вверх

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