учусь, поэтому может быть чего то недопонимаю.
<?php
$query_str="SELECT proizv.name pn, tovar.name_tov tn, tovar.type, tovar.info, tovar.price, tovar.pict FROM proizv, tovar WHERE tovar.id_proizv = proizv.id and proizv.id = ".$_GET['proizv'];
$query=mysql_query($query_str,$connect);
$query_count=mysql_num_rows($query);//Выводит ошибку в этих строках.
$query_row=mysql_fetch_assoc($query); //Выводит ошибку в этих строках.
$proizv=$query_row_['id'];
if(isset($_GET['proizv']))
{
$proizv=$_GET['proizv'];
}
for ($i=1;$i<=$query_count;$i++)
{
$query_row=mysql_fetch_assoc($query);
echo "<tr><td width='20%'>";
$img="img/".$query_row['pn']."_".$query_row['tn'].".jpg";
if(file_exists ($img))
echo '<img src="'.$img.'" width="40" height="100">';
echo "</td><td><b>Название товара:</b></br>".$query_row['tn']."<b>Тип товара:</b></br>".$query_row['tovar.type']."<b>Информация о товаре:</b></br>".$query_row['tovar.dop_info']."<b>Цена товара:</b></br>".$query_row['tovar.price']."</td></tr>";
}
?>
текст ошибки:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in X:\home\localhost\www\site01\katalog.php on line 22
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in X:\home\localhost\www\site01\katalog.php on line 23
полагаю не получается выдернуть информацию из базы данных, но в чем именно проблема ну не понимаю =(
30 марта 2010 в 21:04
if($connect==FALSE){
$err_array=array();
$err_array["error"]="ERROR:".mysql_error($connect)." ".mqsql_errno($connect);
$err_array["status"]=FALSE;
return $err_array;
}
таки знаем про эти функции))
30 марта 2010 в 20:04
1. Народ нафлудивший все предыдушие две страницы, вы про
print mysql_error(); знаете? Он вам все скажет и покажет где ошибки и че не так с запросами илибазой данных.
2.Павел Воевода – вполне вероятно Вы скачали Денвер поставили на комп и от туда, как правильно заметил Андрей Фам, пытаетесь заупскать ваш скрипт. Поглядите папку denwer/user/mail (или как то так). Денвер никуда не посылает писаьма он их в папке сохраняет. Когда зальете на сервер – ваш скрипт начнет посылать писаьма.
И еще, а вдруг $_POST['name'] или какой нить из них не скрипту не передадут? Че делать будите?
29 марта 2010 в 5:02
а где ты запускаешь этот код?
27 марта 2010 в 17:03
Подскажите пожалуйста с формой обратной связи. Вот код, но он почему-то не работает
<?php
if (isset($_POST['$name'])) {$name = $_POST['$name'];}
if (isset($_POST['$email'])) {$email = $_POST['$email'];}
if (isset($_POST['$message'])) {$message = $_POST['$message'];}
$address = 'radon39@mail.ru';
$sub = "Пожелания и предложения по работе сайта";
$mes = $message;
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true')
{
echo "<p>Сообщение отправлено";
}
else
{
echo "<p>Сообщение не отправлено";
}
?>
17 марта 2010 в 20:02
Написал правильно:)) Просто не внимательно читаешь маны по SQL
17 марта 2010 в 16:03
44 я не правильно написал, да? ))) Ну я тоже начинаюший, но ошибок в этом месте у меня ещё не было
16 марта 2010 в 22:05
#41
Что за ошибка?
#43 ))))))))))
16 марта 2010 в 22:01
—————-
<?php
$query_str="SELECT
——————-
А где тут вначале команда mysql_query которая выбирает из базы данные?
Попробуй так…
————-
<?php
$query_str = mysql_query("SELECT/* Ну и т.д. */
————-
9 марта 2010 в 8:02
<?php
if(isset($_GET['proizv']))
{
$proizv=$_GET['proizv'];
$query_str="SELECT proizv.name pn, tovar.name_tov tn, tovar.type, tovar.info, tovar.price, tovar.pict FROM proizv, tovar WHERE tovar.id_proizv = proizv.id and proizv.id = ".$_GET['proizv'];
$query=mysql_query($query_str,$connect);
$query_count=mysql_num_rows($query);
$query_row=mysql_fetch_assoc($query); \\удалила строку
$proizv=$query_row['proizv.id'];\\переменную перенесле вверх в if
$count=5;
$query_count_tovar=mysql_num_rows($query);\\удалила
$count_pages=ceil($query_count_tovar/$count);
$page=1;
if(isset($_GET['page']))
{$page=$_GET['page'];
}
$lim=" LIMIT ".$count*($page-1).",".$count;
$query_str="SELECT proizv.name pn, tovar.name_tov tn, tovar.type, tovar.info, tovar.price, tovar.pict FROM proizv, tovar WHERE tovar.id_proizv = proizv.id and proizv.id = ".$_GET['proizv'].$lim;\\GET заменила на переменную $proizv
if(isset($_GET['proizv']))\\проверка уже сделана – удалила
{ $proizv=$_GET['proizv'];}\\проверка уже сделана – удалила
добавлила 2 строки:
$query_tovar=mysql_query($query_str_tovar,$connect);
$query_count_tovar=mysql_num_rows($query_tovar);
for ($i=1;$i<=$query_count;$i++)
{
$query_row=mysql_fetch_assoc($query_tovar);
echo "<tr><td width='20%'>";
$img="img/".$query_row['pn']."_".$query_row['tn'].".jpg";
if(file_exists ($img))
здесь нужно было убрать название таблиц в переменных query_row, ну и для себя сделала немного другую ссылку на картинку!
echo '<img src="'.$img.'" width="40" height="100">';
echo "</td><td><b>Название товара:</b></br>".$query_row['tn']."<b>Тип товара:</b></br>".$query_row['tovar.type']."<b>Информация о товаре:</b></br>".$query_row['tovar.dop_info']."<b>Цена товара:</b></br>".$query_row['tovar.price']."</td></tr>";
}
?>
в этом все мои ошибки =)
9 марта 2010 в 8:02
Ps: файл connect остался не тронутым
8 марта 2010 в 17:05
а каких, если не секрет и где?
8 марта 2010 в 16:04
всем большое спасибо! ситуация разрешилась! =) просто нужно было пару строчек поменять
8 марта 2010 в 15:01
resource mysql_query ( string $query [, resource $link_identifier ] )
mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier .
8 марта 2010 в 15:01
это, а так же мой код говорит о том, что тут таки может быть "Соединение"
8 марта 2010 в 14:04
$connect=mysql_pconnect($server,$user,$password); //соединение с сервером
$db = mysql_select_db($baza,$connect); //выбор базы данных
$query_proiz=mysql_query($query_str_proiz,$db);
В последней строке последний параметр именно выделенная БД, а не Соединение. Проверь.
6 марта 2010 в 17:01
да пробовала, мне целесообразнее оставить как есть-несколько страниц к ней конектятся, все кроме этой работают…..
я скорее всего что то прописать забыла
6 марта 2010 в 17:01
тебе целесообразней разобраться в том, как это работает, а не передирать код из книг и тогда все получится, возьми мой пример, целиком, все 3 страницы и запусти, изменив запрос, базу данных и пароль, получишь результат, изучи код, посмотри логику, посмотри что делает та или иная функция, потом напиши свой код, который бы заменил мой и после этого посмотри тот, который ты содрала, мб найдешь ошибку
6 марта 2010 в 17:00
так, ну сейчас пойду пытаться
6 марта 2010 в 17:00
ситуация поменялась….теперь ворнинги во всех колонках!
полагаю в моем случае connect.php лучше не трогать, буду искать дальше ошибку….
6 марта 2010 в 17:00
стоооой, ты данные-то, в смысле, пароль и базу данных-то сменила?
6 марта 2010 в 16:05
connect.php
<?php
function get_connection_to_db(){
$user="root";
$password="pass";
$server="localhost";
$connect=mysql_pconnect($server, $user, $password);
if($connect==FALSE){
$err_array=array();
$err_array["error"]="ERROR:".mysql_error($connect)." ".mqsql_errno($connect);
$err_array["status"]=FALSE;
return $err_array;
}
else{
$db="test4";
mysql_select_db($db,$connect);
return $connect;
}
}
?>
6 марта 2010 в 16:05
model.php
<?php
include "connect.php";
$connect=get_connection_to_db();
if( is_array($connect) ){
if( $connect["status"]==false ){
echo $err_array["error"];
}
}
else {
$query="SELECT * FROM employees";
$result=mysql_query($query, $connect);
$count_row_at_result=mysql_num_rows($result);
for($i=0;$i<$count_row_at_result;++$i){
$rows=mysql_fetch_assoc($result);
foreach($rows as $key=>$value){
echo $key." ".$value;
}
echo "</br>";
}
}
?>
6 марта 2010 в 16:05
index.php
<?php
include "model.php";
?>
6 марта 2010 в 16:05
все сделал как у тебя, все работает
6 марта 2010 в 16:02
сейчас, дай пару минут
6 марта 2010 в 16:01
нет..без закрытия должно получится
ничего не происходит, только ошибку выдает на строку с закрытием соединения
6 марта 2010 в 16:01
скинь сюда ссылки на весь твой код
6 марта 2010 в 16:01
<table width="100%" cellspacing="20">
<tr>
<td width="100" valign="top"><p>
<?php
include("conect.php");
$query_str_proiz="SELECT proizv.id, proizv.name, count(tovar.id) kol FROM proizv, tovar WHERE tovar.id_proizv = proizv.id GROUP BY proizv.id";
$query_proiz=mysql_query($query_str_proiz,$connect);
$query_count_proiz=mysql_num_rows($query_proiz);
//mysql_data_seek($query_proiz,0);
for ($i=1;$i<=$query_count_proiz;$i++)
{
$query_row_proiz=mysql_fetch_assoc($query_proiz);
echo "<a href='?tip=6&".$query_row_proiz['name']."=".$query_row_proiz['id']."'>".$query_row_proiz['name']." (".$query_row_proiz['kol'].")</a></br>";
}
?>
</td>
<td valign="top">
<table border=1 width="100%">
<?php
$query_str="SELECT proizv.name pn, tovar.name_tov tn, tovar.type, tovar.info, tovar.price, tovar.pict FROM proizv, tovar WHERE tovar.id_proizv = proizv.id and proizv.id = ".$_GET['proizv'];
$query=mysql_query($query_str,$connect);
$query_count=mysql_num_rows($query);
$query_row=mysql_fetch_assoc($query);
$proizv=$query_row['proizv.id'];
echo $_GET['proizv'];
if(isset($_GET['proizv']))
{
$proizv=$_GET['proizv'];
}
for ($i=1;$i<=$query_count;$i++)
{
$query_row=mysql_fetch_assoc($query);
echo "<tr><td width='20%'>";
$img="img/".$query_row['pn']."_".$query_row['tn'].".jpg";
if(file_exists ($img))
echo '<img src="'.$img.'" width="40" height="100">';
echo "</td><td><b>Название товара:</b></br>".$query_row['tn']."<b>Тип товара:</b></br>".$query_row['tovar.type']."<b>Информация о товаре:</b></br>".$query_row['tovar.dop_info']."<b>Цена товара:</b></br>".$query_row['tovar.price']."</td></tr>";
}
?>
</table></td>
</tr>
</table>
6 марта 2010 в 16:01
так, это все в одном файле?
6 марта 2010 в 16:01
include("conect.php"); еще код этго файла скинь
6 марта 2010 в 16:01
да это все один файл! он инклудится в index.php с шапкой и прочим
6 марта 2010 в 16:01
Это conect.php
<?php
$server="localhost";//имя сервера
$user="root"; //имя пользователя
$password="";//пароль
$baza="base95"; //имя базы данных
$connect=mysql_pconnect($server,$user,$password); //соединение с сервером
mysql_select_db($baza,$connect); //выборбазыданных
?>
6 марта 2010 в 16:00
проверь $_GET['proizv'], что он содержит, выведи себе через echo $query целиком, до отправления запроса на соединение
6 марта 2010 в 16:00
и в первом запросе закрой соединение и перед выполнением второго запроса создай снова
6 марта 2010 в 16:00
соединение закрыть mysql_data_seek?
6 марта 2010 в 16:00
google?
6 марта 2010 в 16:00
mysql_close(int $connection_id)
6 марта 2010 в 15:05
отдельно инклудила в этот кусок рнр, результат тот же
6 марта 2010 в 15:05
тогда сделай запрос типа SELECT * FROM "какая-нибудь таблица" и смотри, если не выполнится, то проблема в соединении, если выполнится, то в запросе, как сделаешь, пиши и будем думать дальше
6 марта 2010 в 15:05
запрос в sql проверяла, все работает – все выводится! С запросом все впорядке.
6 марта 2010 в 15:05
ну значит какой вариант остается?
6 марта 2010 в 15:05
проблема в соединении? я вроде по аналогии все сделала
совсем запуталась
6 марта 2010 в 15:05
$_GET['proizv'] возвращает например NULL
6 марта 2010 в 15:04
конект инклудила перед этим в другом запросе
6 марта 2010 в 15:04
без строк
$query_count=mysql_num_rows($query);
$query_row=mysql_fetch_assoc($query);
ничего не выводится.
Запрос проделанный выше этого вполне работает и выводится, как нужно. А с этим проблемы
6 марта 2010 в 15:04
ты точно уверена, что область видимости $connect распространяется и на этот участок кода?
6 марта 2010 в 15:03
$connect = mysql_connect("localhost","root");
mysql_select_db("db");
db-назва твоєї бази даних
6 марта 2010 в 15:02
попробуй в mysql_query без $connect
6 марта 2010 в 15:02
$query=mysql_query($query_str,$connect);
$connect ты создал где?