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

Форум MySQL

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

 

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

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

тема: Запрос к БД
 
 автор: Akira   (21.11.2004 в 17:56)   письмо автору
 
 

Взято с вашего сайта.

<?php
include "config.php";
$ath = mysql_query("select * from authors;");
if(
$ath)
{
  
// Определяем таблицу и заголовок
  
echo "<table border=1>";
  echo 
"<tr><td>имя</td><td>пароль</td><td>e-mail</td><td>url</td></tr>";
  
// Так как запрос возвращает несколько строк, применяем цикл
  
while($author = mysql_fetch_array($ath))
  {
    echo 
"<tr><td>".$author['name']."&nbsp;</td><td>".$author['passw']."
    &nbsp </td><td>"
.$author['email']."&nbsp;</td><td>".  
    
$author['url']."]&nbsp;</td></tr>";
  }
  echo 
"</table>";
}
else
{
  echo 
"<p><b>Error: ".mysql_error()."</b><p>";
  exit();
}
?>


Написал сам
<?
$db_host 
= "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "test";
$dbc = mysql_connect($db_host, $db_user, $db_pass); // Коннект к бд
$dbs = mysql_select_db($db_name); // Выбор бд
$page = $PHP_SELF;
$ip = $REMOTE_ADDR;
$forw = getenv(HTTP_X_FORWARDED_FOR);
if ((
$forw != NULL) && ($forw != $REMOTE_ADDR)) $ip = $ip.'/'.$forw;
$query = "SELECT * FROM host LIMIT 1;";
if (!
$query) echo mysql_error();
$result = mysql_query($query);
if (!
$result) echo mysql_error();
  while(
$ra = mysql_fetch_array($result))
  {
    echo 
$ra ['id_host'];
    echo 
'|';
    echo 
$ra ['ip_host'];
    echo 
'|';
    echo 
$ra ['self'];
  }

?>

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

   
 
 автор: cheops   (21.11.2004 в 18:05)   письмо автору
 
   для: Akira   (21.11.2004 в 17:56)
 

Хм... а в таблице host что? Сколько там значений...

PS Небольшое уточнение: выводится одна запись или только одно из трёх значений в цикле?

   
 
 автор: Akira   (21.11.2004 в 18:27)   письмо автору
 
   для: cheops   (21.11.2004 в 18:05)
 

Их больше 2-х =)
<?
######################### config.php
$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "test";
$dbc = mysql_connect($db_host, $db_user, $db_pass); // Коннект к бд
$dbs = mysql_select_db($db_name); // Выбор бд
$max_mess = 3;
########################

######################################################### Считаем общее кол-во хостов
$count_query = 'select count(*) from host where 1 ;';
$total_mess = mysql_query ($count_query);
$total_count = mysql_fetch_array ($total_mess);
$count = $total_count ['count(*)'];
##########################################################
// Листинг вывода хостов
$query = "SELECT * FROM host LIMIT ".$page.", ".$max_mess." ;";
if (!
$query) echo mysql_error();
$result = mysql_query($query);
if (!
$result) echo mysql_error();
while (
$i < $max_mess) # Цикл проверки кол-ва строк для вывода их
{
$row_id = mysql_result($result, $i, "id_host");
$row_ip = mysql_result($result, $i, "ip_host");
$row_self = mysql_result($result, $i, "self");
if (empty(
$row_id) && empty($row_ip) && empty($row_self)) break;
echo 
'<td align="center"><strong>'.$row_id.'</strong></td>';
echo 
'<td align="center"><strong>'.$row_ip.'</strong></td>';
echo 
'<td align="center"><strong>'.$row_self.'</strong></td>';
echo 
'<tr align="center">';
$i++; # Добавление к $i  единицу
}

?>


Вот так у меня получаеться и не как иначе , если честно то меня это слегка напрягает =(

   
 
 автор: cheops   (21.11.2004 в 18:34)   письмо автору
 
   для: Akira   (21.11.2004 в 18:27)
 

Хм... попробуйте вывести содержимо ассоциативных массивов в цикле
<?php
 
while($ra = mysql_fetch_array($result)) 
  { 
    
print_r($ra); 
    echo 
'<br><br>'; 
  } 
?>

Есть ли в $ra какие-либо значения и если есть какие у них ключи? Может так статься, что они имеют другое название - так часто бывает если используются встроенные фукнции MySQL (правда их здесь нет) - в любом случае стоит посмотреть что в $ra.

   
 
 автор: Akira   (21.11.2004 в 19:27)   письмо автору
 
   для: cheops   (21.11.2004 в 18:34)
 

Было =)

<? while ($i < $max_mess) # Цикл проверки кол-ва строк для вывода их
{
$row_id = mysql_result($result, $i, "id_host");
$row_ip = mysql_result($result, $i, "ip_host");
$row_page = mysql_result($result, $i, "page");
if (empty(
$row_id) && empty($row_ip) && empty($row_self)) break;
echo 
'<td align="center"><strong>'.$row_id.'</strong></td>';
echo 
'<td align="center"><strong>'.$row_ip.'</strong></td>';
echo 
'<td align="center"><strong>'.$row_page.'</strong></td>';
echo 
'<tr align="center">';
$i++; # Добавление к $i  единицу
}?>


Стало

<? while($otvet = mysql_fetch_array($result)) 
  { 
    
print_r('<td align="center"><strong>'.$id = $otvet ['id_host'].'</strong></td>'); 
    
print_r('<td align="center"><strong>'.$id = $otvet ['ip_host'].'</strong></td>'); 
    
print_r('<td align="center"><strong>'.$id = $otvet ['page'].'</strong></td>'); 
    echo 
'<tr>';
      } 
?>

   
 
 автор: cheops   (21.11.2004 в 21:15)   письмо автору
 
   для: Akira   (21.11.2004 в 19:27)
 

Хм... после этого заработало?! Вообще-то предполагалась проверка
<?php
  
while($otvet = mysql_fetch_array($result)) 
  { 
    
print_r($otvet); 
  }
?>

   
Rambler's Top100
вверх

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