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

Форум MySQL

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

 

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

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

тема: Warning: mysql_fetch_row()
 
 автор: spyder   (09.03.2006 в 18:45)   письмо автору
 
 

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in W:\www\Veling\page10.php on line 11


<?

require_once("config.php");
$i=0;
$Data_Sub=0;
$DataPrice="";
$db mysql_connect($dbhost$dbuser$dbpass$dbname);

$query "SELECT currency_id as currs FROM currency_rate GROUP BY currency_id";
$rs mysql_query($query$db);
while(
$dc mysql_fetch_row($rs))
{
    
$rs1 mysql_query("SELECT max(date) AS date FROM currency_rate WHERE currency_id = " $dc[0], $db);
    
$dc1 mysql_fetch_row($rs1);
    
$rs2 mysql_query("SELECT rate FROM currency_rate WHERE currency_id=" $dc[0] . " AND date = '" $dc1[0] . "'"$db);
    
$dc2 mysql_fetch_row($rs2);
    
$Cost[$dc[0] - 1] = $dc2[0];
}
function 
GetDataPrice ($Line,&$Data)    #Get the header
{
    global 
$db;
    
#$db = mysql_connect($dbhost, $dbuname, $dbpass);
    
$result=mysql_query("select name from price where id_major='$Line'"$db);
    
$data mysql_fetch_row($result);
    
#while ($data = mysql_fetch_row($result))
      #    {
           
echo $DataHead="<center><font class='option_head'><b>$data[0]</font></b></center><br>";
       
# }
}

function 
GetDataSubPrice ($Line)     #Get the data from sub_level
{
  global 
$db;
    
$Line_Sub=$Line."__";
    
#$db = mysql_connect ($dbhost,$dbuname,$dbpass);
    
$SQL "SELECT name, id_major, price, currency_id, comment, id_item_producer, isFolder, ceiling, infolink, price.qty, transit.qty FROM price LEFT JOIN transit ON price.id_base = transit.kbs4id WHERE id_major like '$Line_Sub' ORDER BY id_major";
#$SQL = "SELECT name, id_major, price, currency_id, comment, id_item_producer, isFolder, ceiling, infolink, qty FROM price WHERE id_major like '$Line_Sub' ORDER BY posit";
#echo $SQL;
    
$result mysql_query($SQL$db);
    
$Data_SubPrice "";
    while (
$data mysql_fetch_row($result))
    {
        
$sub substr($data[1], 04);
        if( 
$sub == '0101' || $sub == '0104' )
            
$data[9] = '&nbsp;';
        else
            
$data[9] = (($data[9] > 0) ? 'На складе' : (($data[10] > 0) ? 'В транзите' 'Под заказ'));
        
$Data_SubPrice[]=$data;
    }

    return 
$Data_SubPrice;
}


function 
PrintDataSubPrice ($Root,&$DataPrice)
{
global 
$Cost;

    
$Cost_value=0;
    
$i=0;
    
$bgc "#FFFFFF";
    
$Data_Sub GetDataSubPrice($Root);
    while (
$Data_Sub[$i])
    {

    if(
$Data_Sub[$i][2] != '0.0000')
    {
        
$Cur $Data_Sub[$i][3] - 1;

        if (
$Data_Sub[$i][7] == 0) { $Data_Sub[$i][7] = 0.1; } //  По дефолту

        
$Cost_value $Price = ((int)($Data_Sub[$i][2] * $Cost[$Cur] / $Data_Sub[$i][7] + 0.5)) * $Data_Sub[$i][7];
    }


        if (
$Data_Sub[$i][6] != '1')
    {
        
$DataPrice $DataPrice "<tr bgcolor=".$bgc."><td>";
        if(
$Data_Sub[$i][8] != "")
        {
        
$DataPrice $DataPrice "<a target=ItemRef href=" $Data_Sub[$i][8] . ">";
        }
        
$DataPrice $DataPrice $Data_Sub[$i][0];
        if(
$Data_Sub[$i][8] != "")
        {
        
$DataPrice $DataPrice "</a>";
        }
        
$DataPrice .= "</td><td align='center'>&nbsp;" $Data_Sub[$i][5] . " </td><td align='right'> " $Cost_value " р.</td>";
        
$DataPrice .= "<td align=\"center\">&nbsp;".$Data_Sub[$i][9]."&nbsp;</td></tr>\n";
    }
        else
    {
            
$G dechex (strlen ($Data_Sub[$i][1]));
            
$DataPrice=$DataPrice."<tr bgcolor=".$bgc."><td align='center' colspan='4' bgcolor='#F3F1FF'><b>".$Data_Sub[$i][0]."</b></td></tr>";
    }
    
PrintDataSubPrice($Data_Sub[$i][1], &$DataPrice);
    
$i++;
    
$Cost_value=0;
    if(
$bgc == "#FFFFFF")    { $bgc "#EEEEEE"; }
    else            { 
$bgc "#FFFFFF"; }
    }
}


Помогите плиз!

   
 
 автор: Artemy   (09.03.2006 в 18:49)   письмо автору
 
   для: spyder   (09.03.2006 в 18:45)
 

Возможно у Вас ошибка в одном из запросов запросе к БД, проверьте все запросы!
Скорей всего в этом
SELECT currency_id as currs FROM currency_rate GROUP BY currency_id

   
 
 автор: cheops   (09.03.2006 в 19:43)   письмо автору
 
   для: spyder   (09.03.2006 в 18:45)
 

После строк
<?php
$query 
"SELECT currency_id as currs FROM currency_rate GROUP BY currency_id"
$rs mysql_query($query$db);
?>

поставьте проверку
<?php
  
if(!$rs) exit(mysql_error());
?>

Что выводится?

   
 
 автор: spyder   (10.03.2006 в 10:23)   письмо автору
 
   для: cheops   (09.03.2006 в 19:43)
 

No database selected

   
 
 автор: elenaki   (10.03.2006 в 10:31)   письмо автору
 
   для: spyder   (10.03.2006 в 10:23)
 

после команды
$db = mysql_connect($dbhost, $dbuser, $dbpass, $dbname);
надо вставить
$db_select = mysql_select_db ($db_database) or die(mysql_error());

   
 
 автор: spyder   (10.03.2006 в 10:33)   письмо автору
 
   для: elenaki   (10.03.2006 в 10:31)
 

Попрежнему пишет No database selected

   
 
 автор: Trianon   (10.03.2006 в 10:34)   письмо автору
 
   для: spyder   (09.03.2006 в 18:45)
 

Червертый параметр mysql_connect - это вовсе не имя базы, как Вы пытаетесь писать:
$db = mysql_connect($dbhost, $dbuser, $dbpass, $dbname);

Имя базы указывается вызовом отдельной функции mysql_select_db():

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

$db = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname, $db);

   
 
 автор: spyder   (10.03.2006 в 10:45)   письмо автору
 
   для: Trianon   (10.03.2006 в 10:34)
 

все получилось.
Всем огромное СПАСИБО!!!

   
 
 автор: spyder   (10.03.2006 в 12:26)   письмо автору
 
   для: spyder   (10.03.2006 в 10:45)
 

У меня ещё ошибка появилась
Notice [PHP]: Uninitialized string offset: 0 in file W:\www\Final\html\modules\tinyd0\content\comp.php line 67
И ещё подскажите пожалуйста почему из базы текст который на русском показывает ????????? ????????? ? ??????????

   
 
 автор: Trianon   (10.03.2006 в 12:38)   письмо автору
 
   для: spyder   (10.03.2006 в 12:26)
 

1. К сожалению, здесь не видно, что именно творится в Вашем файле comp.php в райное 66-67 строки.

2. Вероятно, потому, что следует указывать параметры кодировок для соединения с MYSQL
<?
    mysql_query 
("set character_set_client='cp1251'");
    
mysql_query ("set character_set_results='cp1251'");
    
mysql_query ("set collation_connection='cp1251_general_ci'");
?>

   
 
 автор: spyder   (10.03.2006 в 12:42)   письмо автору
 
   для: Trianon   (10.03.2006 в 12:38)
 

спасибо за кодировку.
А как быть с ошибкой?
он ругается вот на эту строку while ($Data_Sub[$i])

   
 
 автор: Trianon   (10.03.2006 в 13:49)   письмо автору
 
   для: spyder   (10.03.2006 в 12:42)
 

Может быть имелось в виду while (isset($Data_Sub[$i]) )?

PS.
Между прочим, на PHP так с массивами не работают.
вместо
<?
while (isset($Data_Sub[$i]) )
{
  if(
$Data_Sub[$i][2] != '0.0000'
  .... 
  
$i++;
}
?>
пишут
<?
foreach($Data_sub as $i => $data)
{
   if(
$data[2] != '0.0000'
        ......



?>

   
Rambler's Top100
вверх

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