Показать полную графическую версию : [решено] Опять с выборкой и все с тем что и раньше
dima1981
04-09-2008, 14:31
Вообщем, кто может посмотреть и сказать, чем эти два файла отличаются
<?
$db = mysql_connect("localhost","root","...");
mysql_select_db("rp" ,$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
echo $HTTP_POST_VARS['cd'];
$sql = mysql_query ("SELECT * FROM og", $db);
while ($abc = mysql_fetch_row($sql))
{
echo("$abc[1]|$abc[2]|$abc[3]|$abc[4]");
}
mysql_close($db);
?>
в этом всё клёво показывает данные из базы на отлично, теперь этот
<?
$db = mysql_connect("localhost","root","...");
mysql_select_db("rp" ,$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$HTTP_POST_VARS['cd'];
echo $HTTP_POST_VARS['cd'];
$sql = mysql_query ("SELECT * FROM og 'og' where co='$co', and cd='$cd', $db", $db);
while ($abc = mysql_fetch_row($sql)
{
echo("$abc[1]|$abc[2]|$abc[3]|$abc[4]");
}
mysql_close($db);
?>
как и первый только не показывает базу, суда приходят переменные или как то так это называется нормально, прописываю тут $HTTP_POST_VARS['co']; $HTTP_POST_VARS['cd']; и перед ними echo для примера и чтоб показал, что с приходом получается, браузер показывает, то что передаю, но вот как дальше по коду идти так онлине и всё тут
timon4ik
04-09-2008, 15:42
но вот как дальше по коду идти так онлине и всё тут »
Уже в который раз вы жалуетесь на ошибку в коде а саму ее не приводите, говорите только о каком-то онлине, хотя в вашем случае - это лишь указатель на строку кода в которой у вас ошибка.
Например:
Fatal error: _здесь_сообщение_об_ошибке_ in _имя_файла_с_ошибкой_ on line номер_строки_с_ошибкой
Так приведите же сообщение об ошибке а не только "онлине"
timon4ik
04-09-2008, 16:00
dima1981,
А ошибка у вас вот:
$sql = mysql_query ("SELECT * FROM og 'og' where co='$co', and cd='$cd', $db", $db);
Подчеркнутое - убрать.
dima1981
04-09-2008, 16:01
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\apache\localhost\www\zg.php on line 8
это по второму коду timon4ik,
это с while что то, дальше него не выполняет
timon4ik
04-09-2008, 16:04
dima1981,
Ответ уже дал :)
это с while что то »
Это не с while, приблизительный перевод ошибки: "Используемый аргумент функции mysql_fetch_row() не является корректным MySQL-запросом"
dima1981
04-09-2008, 16:27
про что и разговор, какие он может воспринимать аргументы не могу понять в упор, подскажите, родной вы к нам timon4ik, очень нужно...
на гугле перевод делал и он мне так перевел, что некоректно мол так к mysql или к php я так вообщем и не понял к кому но обращаться, повторите говорит попытку позднее )
только запарился в хлам и что удивительно в форумах и в интернете по этому такое ощущение, что информации совсем нет, обычно, там какая то тема лбычная т.е. распостраненная, везде и во многих экземплярах, но это как будто все знают, или как будто только пара видов запросов всех интересует, в полном недоумении я короче.
timon4ik
04-09-2008, 16:40
Вы присваиваете значению переменной - запрос:
$sql = mysql_query ("SELECT * FROM og 'og' where co='$co', and cd='$cd', $db", $db);
Дальше используете переменную $sql в качестве аргумента функции mysql_fetch_row()
while($abc = mysql_fetch_row($sql)) - тут кстати вы забыли закрыть вторую скобку
Выполнение программы доходит до вызова функции mysql_fetch_row(), видит что её аргументом является некорректный запрос (тот что в значении переменной $sql), и естественно возвращает ошибку.
Исправить нужно следующее:
Неверно:
$sql = mysql_query ("SELECT * FROM og 'og' where co='$co', and cd='$cd', $db", $db);
Верно:
$sql = mysql_query ("SELECT * FROM og where co='$co', and cd='$cd'", $db);
Неверно:
while($abc = mysql_fetch_row($sql)
Верно:
while($abc = mysql_fetch_row($sql))
Вроде все объяснил, понятнее уже некуда :)
dima1981
04-09-2008, 16:57
не получается короче
чего трудно так, вот говорю если сделать как вы говорите timon4ik, т.е. взять второй код и тех двух вначале, переставить там те строки, которые вы уважаемый говорите, что не верны и прописать там те, которые вы говорите верны, браузер покажет Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\apache\localhost\www\zg.php on line 8
timon4ik
04-09-2008, 17:12
Еще раз приведите получившийся код с учетом моих исправлений.
dima1981
04-09-2008, 17:22
<?
$db = mysql_connect("localhost","root","123");
mysql_select_db("rp" ,$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$HTTP_POST_VARS['cd'];
$sql = mysql_query ("SELECT * FROM og where co='$co', and cd='$cd', $db");
while ($abc = mysql_fetch_row($sql))
{
echo("$abc[1]|$abc[2]|$abc[3]|$abc[4]");
}
echo "</table>";
mysql_close($db);
?>
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\apache\localhost\www\zg.php on line 8
timon4ik
04-09-2008, 17:26
dima1981,
Вы написали
$query = mysql_query ("SELECT * FROM og where co='$co', and cd='$cd', $db");
А я говорил так:
$query = mysql_query ("SELECT * FROM og where co='$co', and cd='$cd'", $db);
Закрывающие двойные кавычки на на своем месте были.
dima1981
04-09-2008, 17:29
Выполнение программы доходит до вызова функции mysql_fetch_row(), видит что её аргументом является некорректный запрос (тот что в значении переменной $sql), и естественно возвращает ошибку. »
каким образом он тут корректно воспринимает
mysql_query("SET CHARACTER SET 'utf8'");
echo $HTTP_POST_VARS['cd'];
$sql = mysql_query ("SELECT * FROM og", $db);
while ($abc = mysql_fetch_row($sql))
?
$query = mysql_query ("SELECT * FROM og where co='$co', and cd='$cd'", $db); »
и так Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\apache\localhost\www\zg.php on line 8
timon4ik
04-09-2008, 17:35
dima1981,
хорошо, тогда попробуйте вместо
$sql = mysql_query ("SELECT * FROM og where co='$co', and cd='$cd'", $db);
написать
$sql = mysql_query ("SELECT * FROM og where co='".$_POST['co']."', and cd='".$_POST['cd']."'", $db);
Так должно заработать.
dima1981
04-09-2008, 17:38
и произойдет выборка из базы, ура!
щас попробую )
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\apache\localhost\www\zg.php on line 8
Вот вы пишете в коде:
$HTTP_POST_VARS['cd'];
echo $HTTP_POST_VARS['cd'];
$sql = mysql_query ("SELECT * FROM og 'og' where co='$co', and cd='$cd', $db", $db); »
А для чего первые две строки? Ну да, выводит, хорошо. А переменные $co и $cd откуда берутся?
Из приведённого кода видно, что они нигде не инициализируются, а значит равны NULL.
Попробуйте составить запрос в переменной, а потом его отправить. Примерно так:
$query = "SELECT * FROM og where co='$co', and cd='$cd'";
echo $query;
$sql = mysql_query($query);
Полагаю, что echo $query выведет такую строку: SELECT * FROM og where co='', and cd=''.
Такой запрос вряд ли можно назвать корректным.
timon4ik
04-09-2008, 17:43
А переменные $co и $cd откуда берутся? »
Вот именно, на это я сначала и не обратил внимание, поэтому нужно так:
$sql = mysql_query ("SELECT * FROM og where co='".$_POST['co']."', and cd='".$_POST['cd']."'", $db);
dima1981
04-09-2008, 17:49
от того что эти переменные увижу я в браузере, после прописывания $query = "SELECT * FROM og where co='$co', and cd='$cd'";
echo $query; обработчику станет не чуть не легче их воспринимать и это не значит что функция станет фосприниматься как корректная и т.д.
dima1981, повторяю свою просьбу еще раз: оформляйте куски кода тэгами [ CODE ], [ HMTL ] и [ PHP ] (см. кнопки на текстбоксом), ибо читать Ваши вопросы и пытаться помочь - очень сложно.
dima1981
04-09-2008, 17:51
<?
$db = mysql_connect("localhost","root","123");
mysql_select_db("rp" ,$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$HTTP_POST_VARS['cd'];
$query = "SELECT * FROM og where co='$co', and cd='$cd'";
echo $query;
$abc = mysql_query($query)
echo("$abc[1]|$abc[2]|$abc[3]|$abc[4]");
echo "</table>";
mysql_close($db);
?>
Parse error: syntax error, unexpected T_ECHO in C:\apache\localhost\www\zg.php on line 11
от того что эти переменные увижу я в браузере, после прописывания $query = "SELECT * FROM og where co='$co', and cd='$cd'";
echo $query; обработчику станет не чуть не легче их воспринимать и это не значит что функция станет фосприниматься как корректная и т.д. »
Естественно! Вы увидите, что составляется некорректный запрос и сможете исправить его (добавлением $_POST[co] и $_POST[cd]).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.