Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Проблемма MySQL с выбором таблиц из базы данных


Автор: sanchos14931 9.3.2009, 16:34
Здравствуйте. Прошу вас помочь мне с одной проблеммой. Может она для вас легкая но у меня че то не выходит. Я составил код страницы 
Код

<?php 
include ("blocks/db.php"); /*Cоединяемся с базой*/
$result = mysql_query ("SELECT title,meta_d,meta_k,text FROM setting WHERE page='index'",$db);
$myrow = mysql_fetch_array ($result);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="description" content="<?php echo $myrow['meta_d'];?> ">
<meta name="keywords" content="<?php echo $myrow ['meta_k']; ?> ">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title><?php echo $myrow ['title']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body alink="#0000FF" link="#0000FF" vlink="#0000FF">
<table align="center" width="1000" border="1" cellspacing="0" cellpadding="0">
  <? include("blocks/header.php"); ?>
  <? include("blocks/mane.php"); ?>
  <tr>
    <td><table width="1000" border="1" cellspacing="0" cellpadding="0">
      <tr>
        <th class="table_border_all" width="730" scope="col"><?php echo $myrow['text']; ?></th>
        <? include ("blocks/lefttd.php"); ?>
      </tr>
    </table></td>
  </tr>
</table>
</body>
</html>



Проверил на сервере на компе все работает, загрузил на хостинг пишет ошибку: 
Код


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/swsarumi/public_html/new versions/index.php on line 4


че делать, заранее СпАсИбО

Автор: NLspieler 9.3.2009, 16:53
Попробуй перекодировать файл со скриптом в кодировку ANSI

Автор: sanchos14931 9.3.2009, 17:05
ничего не изменилось  smile 

Автор: skyboy 9.3.2009, 17:30
Цитата(sanchos14931 @  9.3.2009,  15:34 Найти цитируемый пост)
$result = mysql_query ("SELECT title,meta_d,meta_k,text FROM setting WHERE page='index'",$db);

очень интересно, а где же объявлена загадочная переменная $db?

Автор: NLspieler 9.3.2009, 17:38
Цитата(skyboy @  9.3.2009,  17:30 Найти цитируемый пост)
очень интересно, а где же объявлена загадочная переменная $db?


наверное здесь
Код

include ("blocks/db.php"); /*Cоединяемся с базой*/


Могу посоветовать, поиграть с кодировками. 
Только часа два назад, у самого была такая ошибка. Поэкспериментировал с кодировками и теперь все заработало. 

Автор: sanchos14931 9.3.2009, 17:46
skyboy, 
NLspieler ПРАВ!!! у меня же не одна страница, а подключение идет к одной базе, я и вынес отдельно.


Цитата(NLspieler @  9.3.2009,  17:38 Найти цитируемый пост)
Могу посоветовать, поиграть с кодировками. Только часа два назад, у самого была такая ошибка. Поэкспериментировал с кодировками и теперь все заработало. 


а ты поставил ANSI и у тебя заработало???


Автор: NLspieler 9.3.2009, 22:15
Ты точно ничего не забыл при подключении к базе данных?

Я использую для подключения такую функцию.

Код

//Соединение с базой данных. Выбор базы данных.
function MySQL_connection($host, $user, $db_name, $pass)
{
    $link = mysql_connect($host, $user, $pass)  or die('Ошибка при подключении к БД') ;
    mysql_select_db($db_name)                         or die('Ошибка при выборе БД') ;
    
    return $link ;
}



Причин ошибки может быть много.
1. Неправильные реквезиты базы данных: название, пользователь, пароль, хост, юзернейм.
2. Забыто использование функции выбора базы данных. mysql_select_db($db_name).
3. База данных не пашет по другой, не зависящей от тебя причины - такое тоже бывает.
4. Составлен неправильный SQL запрос. 
5. Хостинг настроен таким образом, что файл blocks/db.php не инклюдится (и соответствующая ошибка не отображается). У меня например на хостинге, инклюдятся файлы только с расширением .inc


А насчет кодировок, это я перепутал.
С неправильной кодировкой таких ошибок возникать не может. Но это уже совсем другая тема. 
 





Автор: bars80080 10.3.2009, 01:10
В который раз стучась об стену головой,
Мы повторяем словно заклинанье
Уж коли выбрали язык какой
Используйте подсветку по приданью


смотрим запрос в sql подсветке:

Код

SELECT title, meta_d, meta_k, text FROM setting WHERE page='index'

и видим, как подсветка выделяет слово text, которое является служебным

а надо так:
Код

SELECT `title`, `meta_d`, `meta_k`, `text` FROM setting WHERE page='index'

а вообще, товарищи, есть такая штука, как mysql_error(), которая сразу бы указала на ошибку

Автор: sanchos14931 12.3.2009, 18:18
bars80080, можно ли привести пример как использовать mysql_error() 
я просто с ним не связывался

Автор: enof 12.3.2009, 18:29
sanchos14931, 
Код

echo mysql_error();


Добавлено через 3 минуты и 59 секунд
на будущее:
подставляем к адресу http://pnp.net/ название функции, например так -> http://php.net/mysql_error и узнаем много нового smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)