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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как из Postgree вывести несколько строк результата?

Сообщения:  [1-6] 

 
 автор: elenaki   (20.07.2007 в 12:33)   письмо автору
 
   для: elenaki   (20.07.2007 в 12:21)
 


<? 
$num 
= pg_numrows($result); 
$col_num = pg_numfields($result); 
$i = 1;
for (
$k=0; $k<$num; $k++) { 

  
$line  = pg_fetch_array($result, $k, PGSQL_ASSOC); 
  
  
$sql="SELECT descr_en FROM epp.app_status WHERE status_id='".$line["status_code"]."'";
    
$result2=pg_query($db_conn,$sql) or die ("<h1>Database error</h1><br>".pg_last_error($db_conn). "<br> query=$sql");
    
$row2=pg_fetch_row($result2);
    
$status=$row2[0];
  
  print 
"<tr bgcolor=#ffffff>
  <td>
$i</td>"; 
   
// for ($j=0; $j<$col_num; $j++){ 
    //list($col_name, $col_value) = each($line); 
    
    
print "<TD>".$line["eppid"]."</TD>"; 
    print 
"<TD>".$line["cr_date"]."</TD>"; 
    print 
"<TD>".$line["name"].", <br>".$line["org"]."</TD>";     
    print 
"<TD>".$line["ex_date"]."</TD>"; 
    print 
"<TD>".$line["doc_date"]."</TD>"; 
    print 
"<TD>".$line["pname"]."</TD>"; 
    print 
"<TD>".$line["country"]."</TD>"; 
    print 
"<TD>".$status."</TD>"; 
    
//} 
  
echo "</tr>"; 
  
$i++;
  } 
?>


получилось вот так. спасибо всем! Trianon - гений.

   
 
 автор: elenaki   (20.07.2007 в 12:21)   письмо автору
 
   для: Trianon   (20.07.2007 в 10:48)
 

нет. не проходит. сработало вот это. только беда в том, что этот код выводит ВСЕ поля, а
мне нужны избранные и в другом порядке. это уже проблема массива.... ищу способ.


$num = pg_numrows($result); 
$col_num = pg_numfields($result); 
$i = 1;
for ($k=0; $k<$num; $k++) { 
  $line  = pg_fetch_array($result, $k, PGSQL_ASSOC); 
  print "<tr bgcolor=#ffffff>
  <td>$i</td>"; 
    for ($j=0; $j<$col_num; $j++){ 
    list($col_name, $col_value) = each($line); 
    
    print "<TD>$col_value</TD>"; 
        
    } 
  echo "</tr>"; 
  $i++;
  } 

   
 
 автор: Trianon   (20.07.2007 в 10:48)   письмо автору
 
   для: elenaki   (20.07.2007 в 10:17)
 

то есть код


<?

for($i = 0, $n = pg_num_rows($result); $i <  $n; )
{
    
$row = pg_fetch_array($result, $i++, PGSQL_ASSOC) 
     or die(
pg_result_error($result)) ;
   
print_r($row);
   echo 
"..." ;
}
?>

не проходит?

   
 
 автор: elenaki   (20.07.2007 в 10:17)   письмо автору
 
   для: Trianon   (20.07.2007 в 10:03)
 


<? 
$db_conn
=pg_connect($conn_string) or die ("<h1>Database error</h1><br>".pg_last_error());

$sql="SELECT * FROM epp.app_info WHERE domain='".$zapros.".co.gr'";

$result=pg_query($db_conn,$sql) or die ("<h1>Database error</h1><br>".pg_last_error($db_conn). "<br> query=$sql");
?>

<table cellpadding="2" cellspacing="1" border="0"  align="center" width=100% height="100%">
<tr bgcolor="#ffffff">
        <td align="center">Position</td>
        <td align="center">Queue <br>N<sup><u>o</u></sup></td>
        <td align="center">Applied</td>
        <td align="center">Applicant</td>
        <td align="center">Deadline <br>for<br>documents </td>
        <td align="center">Documents<br>received</td>
        <td align="center">Prior  Right</td>
        <td align="center">Country</td>
        <td align="center">Status</td>
</tr>

<? $i=1;
while (
$row = pg_fetch_array($result)) 
{ 

$epp_id = $row["eppid"];
$domain = $row["domain"];
$name = $row["name"];
$org = $row["org"];
$cr_date = $row["cr_date"];
$ex_date = $row["ex_date"];
$doc_date = $row["doc_date"];
$status_code = $row["status_code"];
$country = $row["country"]; 
$pname = $row["pname"]; 

?>

<tr>
        <td><?=$i?></td>
        <td align="center"><?=$epp_id?></td>
        <td align="center"><?=$cr_date?></td>
        <td align="center"><?=$name?>, <br><?=$org?></td>
        <td align="center"><?=$ex_date?></td>
        <td align="center"><?=$doc_date?></td>
        <td align="center"><?=$pname?></td>
        <td align="center"><?=$country?></td>
        <td align="center"><?=$status?></td>
</tr>
        
<?
$i
++;

}
?>

</table></td>

   
 
 автор: Trianon   (20.07.2007 в 10:03)   письмо автору
 
   для: elenaki   (20.07.2007 в 09:57)
 

привели бы чтоли Ваш фрагмент...

   
 
 автор: elenaki   (20.07.2007 в 09:57)   письмо автору
 
 

попросили написать скрипт вывода из базы Postrgre. базу я не вижу. скрипт, написанный по
аналогии с MySQL- овским, выводит только 1 строку, хотя меня уверяют, что их больше. да
я и сама вижу, что больше, потому что pg_num_rows($result) дает >1. искала на php.net, но
там дурацкие примеры, ничего непонятно. поняла только, что требуется счетчик строк. но
при использовании конструкции pg_fetch_array($result,$j) со счетчиком строк $j выдается
ошибка Cannot jump to row 0. помнится, меня жутко бесила эта ошибка в начале работы с
MySQL. но как я ее обходила, не помню.

как все-таки из Postgre вывести несколько строк результата? надо два цикла делать? первый
по строкам, второй по полям внутри строки? как тогда заставить ее "прыгать" по строкам,
если она мне постоянно ругается "не могу прыгнуть"?

   

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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