PDA

Показать полную графическую версию : [решено] not null не срабатывает


Страниц : 1 [2]

dima1981
16-09-2008, 13:19
$error = '';
if ( empty( $login ) ) $error = $error.'<li>не заполнено поле "Имя"</li>'."\n";
else
$query = "INSERT INTO ".TABLE_USERS."

не так? )

dmitryst
17-09-2008, 15:51
dima1981, ссылка (http://www.javaportal.ru/javascript/examples/testdata.html) на java-script-овый вариант проверки форм (может, понадобится :) )

dima1981
18-09-2008, 17:23
http://www.whatis.ru/razn/razn12.shtml Это кстати отлично подходит не представлял, что на столько обычный способ есть, только про качество не скажу не знаю но для 5php самое то )
Благодарю dmitryst, только java для меня атас совсем даже и не пробывал ни разу, мне рнр хватает скоро вопросы во сне видеть начну )

timon4ik
19-09-2008, 11:36
dima1981,
я когда-то приводил пример JavaScript-валидатора, посмотрите тут (http://forum.oszone.net/post-748541-19.html) , еще несколько полезных приемов в есть в той же теме.

dima1981
19-09-2008, 17:50
Понял, спасиб за переход, только во первых там у меня почти все сделанно на php пробелы отсекаются, не нужные знаки убераются, только вот для емеил формы не могу проверку сделать, но думаю раздобуду код потихоньку ) и во вторых если скрипт не поддерживается у заполняющего форму на машине, то, что тогда, как быть, конечно это побыстрее на jave в смысле, но на php попрактичней походу, хотя не знай не силен по этим да и вообщем остальным направлениям, так копирую коды, которые требуется для сайта, который создаю где придется, тем и рад, вообщем вот так )

Кстати если не затруднит, что с этим кодом взял отсюда http://www.internet-technologies.ru/articles/article_701.html для построчного вывода данных из таблицы, подредактировал под то, что требуется, мне в основном в плане дизайна, получилось так

<?
ini_set('display_errors',1);
error_reporting(E_ALL);
function page()
{
if(empty($_post["page"])){
$page = 0;
} else {
if(!is_numeric($_post["page"])) die("Неправильный формат номера страницы!");
$page = $_post["page"];
}
return $page;
}


function sql_query($onpage, $page, $table)
{
$begin = $page*$onpage; // откуда начинать
$sql = "SELECT * FROM ".$table." where m_o='".$_POST['m_o']."' and m_d='".$_POST['m_d']."' limit ".$begin.", ".$onpage;
$result = mysql_query($sql) or die(mysql_error());
return $result;
}


function navigation($onpage, $page, $table)
{
$return = null;
$count = mysql_query("SELECT COUNT(*) FROM rg where m_o='".$_POST['m_o']."' and m_d='".$_POST['m_d']."'");
$count = mysql_fetch_array($count);
$count = $count[0];
$pages = $count/$onpage;
if($page!==0){
$prev= "<A HREF=?page.=".($page-1).">&lt;</A>";
} else {
$prev = "<";
}
if($page<round($pages-1)){
$next = "<A HREF=?page=".($page+1).">&gt;</A>";
} else {
$next = ">";
}
for($i=0;$i<$pages;$i++)
{
if($i==$page){
$return.="[".($i+1)."]";
} else {
$return.="<A HREF=?page='".$i."'>[".($i+1)."]</A>";
}
}
return $prev.$return.$next;
}
$onpage = 5;
$table = "rg";
$db = mysql_connect("localhost","root","***");
mysql_select_db("rp", $db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$page = page(); // определяем страницу
$result = sql_query($onpage, $page, $table); // sql - запрос
echo ("<center><table bgcolor='#ecddca' BORDERCOLOR='black' border='1' style='border-collapse: collapse'>");
echo ("<tr bgcolor='white'><td align='center'>поле0</td><td>Поле1</td><td>Поле2</td><td align='center'>Поле3</td></tr>");
while($abc = mysql_fetch_row($result))
{
echo("<tr><td>$abc[1]</td><td align='center'>$abc[2]</td><td align='center'>$abc[3]</td><td>$abc[4]</td></tr>");
echo("<tr><td bgcolor='white' colspan='12'><font color='white'>$abc[0]</font></td></tr></td></tr>");
}
echo "</table></center>";
$navigation = navigation($onpage, $page, $table); // определим навигацию
echo $navigation; // выведем ее
?>
в итоге показывает данные нормально в еолличестве определенном в onepage подсчет страниц в базе по заданным критериям поиска осуществляется хорошо т.е. навигация работает, но когда перехожу на вторую и т.д. страницу, переход есть но таблицу не отображает, мне кажется он данные запроса не получает с первой страницы, пол дня седня проэксперементировал но т.к. не рублю в этом то вот результат/
Хоть узнать вообщем подходит эт код к mysql 6 и php5 или узнать, что с этим кодом не так, походу все )

dima1981
21-09-2008, 23:59
Подскажите пожалуйста, выполняю этот код по постраничному выводу данных, отображает нормально первую страницу в четыре поля, навигацию определяет хорошо т.е. подсчет полей в базе по этому запросу совершает праильно, но перехожу на вторую страницу пишет

Notice: Undefined index: m_o in C:\apache\localhost\www\zg.php on line 32

Notice: Undefined index: m_d in C:\apache\localhost\www\zg.php on line 32

Поле0 Поле1 Поле2 Поле3


Notice: Undefined index: m_o in C:\apache\localhost\www\zg.php on line 41

Notice: Undefined index: m_d in C:\apache\localhost\www\zg.php on line 41

т.е. про эти строки $sql = "SELECT * FROM ".$table." where m_o='".$_POST['m_o']."' and m_d='".$_POST['m_d']."' limit ".$begin.", ".$onpage; и $count = mysql_query("SELECT COUNT(*) FROM rg where m_o='".$_POST['m_o']."' and m_d='".$_POST['m_d']."'");

Delirium
22-09-2008, 01:36
"SELECT * FROM ".$table."Я вам уже писал, никогда не пишите такие запросы. PHP может тупо не понять, какие поля надо выводить. Пишите список полей, необходимых для вывода на экран, т.е.
SELECT name, family, surname, date_in FROM rg where......
То же самое и с
SELECT COUNT(*) FROM
Напишите select count(1) from ...., или имя поля вместо 1.

dima1981
22-09-2008, 03:23
это не подходит )
мне кажется все или из за того, что
$begin = $page*$onpage;
$sql = "SELECT * FROM ".$table."
где бегин постоянно равен нулевому числу т.к. пейдж=0 умноженный на онпейдж=5 равно ноль отсюда он и стартует

или $count потому, что фиксирован на нуле вообщем трудно это что то совсем

или раз Notice: Undefined index: m_o in » то он скорее всего не может не то получить не то обработать данные m_o='".$_POST['m_o']."' »
тогда получается, что с передачей данных, что то не так потому, что на первой странице данные нормально показываются и количество данных подсчитывается точно, только понять, что тут такое не могу и все тут, подскажите

dmitryst
22-09-2008, 15:03
PHP может тупо не понять, какие поля надо выводить. »
не знаю, как там у вас на РНР, а на perl-е у меня тысячи таких запросов, и ничего...

$sql = "SELECT * FROM `.$table.` where m_o='".$_POST['m_o']."' and ... и далее по тексту.

Delirium
23-09-2008, 01:35
dmitryst, я не спорю, что это не будет работать.
Просто сейчас вы помните, что за этой * лежит, а через полгода открываешь код, смотришь тупо на select * from table и думаешь, а что ж там за поля то? Гораздо проще написать 1 раз нужные поля через запятую, и радоваться.

К модераторам: тема переросла из MySql (Not Null) в решение проблем по PHP. Считаю, что тему надо переименовать и перенести в программирование, mysql уже не обсуждается.

dima1981
23-09-2008, 12:38
Да может там она половчее начнет смотреться )
только почему вот вторую страницу не отображает, навигацию показывает, поля таблицы в которой размещаются полученные из базы данные отображаются, но нет данных, как в первой странице, тут не от сесий зависит, как вы думаете, потому что я что мог передумал тут? )

dima1981
24-09-2008, 04:51
Вообщем отмечаю тему решенной, хотя она совсем не решенная, короче бывает :oszone:

dmitryst
24-09-2008, 13:08
dima1981, ну так применяйте javascript-проверку - ИМХО, это проще, даже страницу перегружать не надо (т.е. поле не заполнено - кнопка отправки вообще блокируется)

dima1981
25-09-2008, 00:18
dmitryst, например java на крмпьютере запрашивающего не включенно, что дополнительно пару проверок включать и php дополнительно, не могу тут разобраться, подскажи пожалуйста?

dima1981
25-09-2008, 05:52
Вообщем решено, но данные из базы постранично выведу )
И на счет java спасибо dmitryst, посмотрел на эту тему повнимательнее, хороший способ для такой задачи, как проверка на заполнение.
И вот понять не могу, почему все таки у меня так темы на форуме разростаются, но вот кпд практически постоянно у них обратно пропорционален колличеству ответов, но это другая история, спасибо и Делириуму, скоро появлюсь если не погибну или не умру )




© OSzone.net 2001-2012