#1 2009.03.21 19:59

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Помогите! Не записывает в базу.

Всё перепробовал не чё не получется

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
case "cat":
 
if($ok=="1"){
if($uid==""){
$ins_str = "INSERT INTO cat VALUES ('','$name','$privat')";
if (sql($ins_str)) {
@sql("OPTIMIZE TABLE cat");
@sql("ANALYZE TABLE cat");
$uid="";
}else{
$msg = " ".mysql_error()." ";}
}else{
sql("Update cat set name='".$name."', pvt='".$privat."' where id='".$uid."'");
$uid="";}}
 
echo '<div class="bmenu">Список разделов для сайтов</div>';
$zend=20;
$query = "SELECT * FROM cat ORDER BY id";
$result = sql($query) or die("Query failed");
for ($i=0; $i <= mysql_num_rows($result) - 1; $i++) {
if (!mysql_data_seek($result, $i)) {
echo "Cannot seek to row $i\n";
continue;}
if(!($row = mysql_fetch_object($result)))
continue;
$zend--;
if($zend==0) break;
$idcat = $row->id;
$name = $row->name;
$pvt = $row->pvt;
if($pvt=="1")
$pvt="приватный раздел"; else $pvt="";
if($uid==$idcat) $nnn=$name;
$txt = '<div class="menu"><b>'.$idcat.'</b> - <a href="index.php?login='.$login.'&p='.$truepass.'&uid='.$idcat.'&act=cat">'.$name.'</a> '.$pvt.'</div>';
echo $txt;}
 
echo '<div class="menu">Новая категория:<br/>';
echo '<form action="index.php" method="get">';
echo '<b>Имя:</b><input type="text" name="name" value="'.$nnn.'"/>';
echo '<select size="1" name="privat">';
echo '<option value="0">Открытая</option>';
echo '<option value="1">Приватная</option>';
echo '</select><br/>';
echo '<input type="hidden" name="login" value="'.$login.'"/>';
echo '<input type="hidden" name="p" value="'.$truepass.'"/>';
echo '<input type="hidden" name="uid" value="'.$uid.'"/>';
echo '<input type="hidden" name="ok" value="1"/>';
echo '<input type="hidden" name="act" value="cat"/>';
echo '<input type="submit" value="Готово"/></form></div>';
echo '<div class="menu"><a href="index.php?login='.$login.'&amp;p='.$pass.'">Назад</a></div>';
echo '<div class="menu"><a href="/index.php">Top-100</a> | <a href="/category.php">Категории</a> | <a href="/stat_top.php">Статистика</a></div>';
echo $footer;
echo '<div align="center">SQL: <b>'.$sql_num.'</b> за <b>'.round($sql_time, 3).'</b> сек.</div>';
break;

Неактивен

#2 2009.03.21 20:18

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

говнокод.

Неактивен

#3 2009.03.21 20:30

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

Спасибо за помощь. sad

Неактивен

#4 2009.03.21 20:32

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

понимаешь, если писать красиво, то и отлаживать код намного проще, это же отличный пример говнокода, ковыряться в нем желания особо нет. попробуй переписать это все в нормальном виде.

Неактивен

#5 2009.03.21 20:34

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

Вот тут есть загвостка. Я не кодер, чтобы писать сам код. А с базой у меня вообще туговато.

Неактивен

#6 2009.03.21 20:50

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

т.е. не работает этот запрос?

Код:

1
$ins_str = "INSERT INTO cat VALUES ('','$name','$privat')";

напиши после этого кода echo $ins_str; что там? возможно кавычка какая-нибуь закралась, либо запрос не соответствует структуре таблицы.

Неактивен

#7 2009.03.21 20:55

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

Ссылка получается такого вида index.php?name=3213213&privat=0&login=WapStyle&p=e10adc3949ba59abbe56e057f20f883e&uid=&ok=1&act=cat
но запись в базу не идёт.

echo $ins_str; - пусто
Добавлено спустя   3 минуты  46 секунд:

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
$result = sql("SELECT `pass` FROM `superadmin` WHERE `login`='$login';");
$row=mysql_fetch_row($result);
if(!empty($row)){
$truepass = $row[0];
if ($truepass == $pass || $truepass == md5($pass)){
// вход осуществлен
$today = date("Ymd");
//проверка ввода act
if (empty($_GET['act']))
$action = "";
else
$action=$_GET['act'];
 
switch ($action){
case "cat":
 
if($ok=="1"){
if($uid==""){
$ins_str = "INSERT INTO cat VALUES ('','$name','$privat')";
if (sql($ins_str)) {
@sql("OPTIMIZE TABLE cat");
@sql("ANALYZE TABLE cat");
$uid="";
}else{
$msg = " ".mysql_error()." ";}
}else{
sql("Update cat set name='".$name."', pvt='".$privat."' where id='".$uid."'");
$uid="";}}
 
echo '<div class="bmenu">Список разделов для сайтов</div>';
$zend=20;
$query = "SELECT * FROM cat ORDER BY id";
$result = sql($query) or die("Query failed");
for ($i=0; $i <= mysql_num_rows($result) - 1; $i++) {
if (!mysql_data_seek($result, $i)) {
echo "Cannot seek to row $i\n";
continue;}
if(!($row = mysql_fetch_object($result)))
continue;
$zend--;
if($zend==0) break;
$idcat = $row->id;
$name = $row->name;
$pvt = $row->pvt;
if($pvt=="1")
$pvt="приватный раздел"; else $pvt="";
if($uid==$idcat)
$nnn = $name;
echo '<div class="menu"><b>'.$idcat.'</b> - <a href="index.php?login='.$login.'&p='.$truepass.'&uid='.$idcat.'&act=cat">'.$name.'</a> '.$pvt.'</div>';}
 
echo '<div class="menu">Новая категория:<br/>';
echo '<form action="index.php" method="get">';
echo '<b>Имя:</b><input type="text" name="name" value="'.$nnn.'"/>';
echo '<select size="1" name="privat">';
echo '<option value="0">Открытая</option>';
echo '<option value="1">Приватная</option>';
echo '</select><br/>';
echo '<input type="hidden" name="login" value="'.$login.'"/>';
echo '<input type="hidden" name="p" value="'.$truepass.'"/>';
echo '<input type="hidden" name="uid" value="'.$uid.'"/>';
echo '<input type="hidden" name="ok" value="1"/>';
echo '<input type="hidden" name="act" value="cat"/>';
echo '<input type="submit" value="Готово"/></form></div>';
echo ''.$ins_str.' - fddfdffd';
echo '<div class="menu"><a href="index.php?login='.$login.'&amp;p='.$pass.'">Назад</a></div>';
echo '<div class="menu"><a href="/index.php">Top-100</a> | <a href="/category.php">Категории</a> | <a href="/stat_top.php">Статистика</a></div>';
echo $footer;
echo '<div align="center">SQL: <b>'.$sql_num.'</b> за <b>'.round($sql_time, 3).'</b> сек.</div>';
break;
}

вот весб код

Неактивен

#8 2009.03.21 20:59

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

пусто быть не может. ты же определил переменную. или скорее всего в этот case скрипт не попадает.

Неактивен

#9 2009.03.21 21:02

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

Когда нажимаю "готово" тупо обновляется страница и всё

Неактивен

#10 2009.03.21 21:08

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

Код:

1
span style="color: #0000BB"><?php$row = mysql_fetch_row(sql("SELECT `pass` FROM `superadmin` WHERE `login`='$login';"));$truepass = $row[0];if ($truepass != $pass && $truepass != md5($pass)){ echo 'Wrong Pass'; exit;}// вход осуществлен$today = date('Ymd');switch ($_GET['act']){case 'cat':if($_POST){if(!$uid){$ins_str = "INSERT INTO cat VALUES ('','$name','$privat')";if (sql($ins_str)) {@sql("OPTIMIZE TABLE cat");@sql("ANALYZE TABLE cat");$uid="";}else{$msg = " ".mysql_error()." ";}}else{sql("Update cat set name='".$name."', pvt='".$privat."' where id=".$uid);$uid='';}}echo '<div class="bmenu">Список разделов для сайтов</div>';$zend = 20;$query = "SELECT * FROM cat ORDER BY id";$result = sql($query) or die("Query failed");for ($i=0; $i <= mysql_num_rows($result) - 1; $i++) {if (!mysql_data_seek($result, $i)) {echo "Cannot seek to row $i\n";continue;}if(!($row = mysql_fetch_object($result)))continue;$zend--;if($zend==0) break;$idcat = $row->id;$name = $row->name;$pvt = $row->pvt;if($pvt==1)$pvt="приватный раздел"; else $pvt="";if($uid==$idcat)$nnn = $name;echo '<div class="menu"><b>'.$idcat.'</b> - <a href="index.php?login='.$login.'&p='.$truepass.'&uid='.$idcat.'&act=cat">'.$name.'</a> '.$pvt.'</div>';}echo '<div class="menu">Новая категория:<br/>';echo '<form action="index.php" method="get">';echo '<b>Имя:</b><input type="text" name="name" value="'.$nnn.'"/>';echo '<select size="1" name="privat">';echo '<option value="0">Открытая</option>';echo '<option value="1">Приватная</option>';echo '</select><br/>';echo '<input type="hidden" name="login" value="'.$login.'"/>';echo '<input type="hidden" name="p" value="'.$truepass.'"/>';echo '<input type="hidden" name="uid" value="'.$uid.'"/>';echo '<input type="hidden" name="act" value="cat"/>';echo '<input type="submit" value="Готово"/></form></div>';echo ''.$ins_str.' - fddfdffd';echo '<div class="menu"><a href="index.php?login='.$login.'&amp;p='.$pass.'">Назад</a></div>';echo '<div class="menu"><a href="/index.php">Top-100</a> | <a href="/category.php">Категории</a> | <a href="/stat_top.php">Статистика</a></div>';echo $footer;echo '<div align="center">SQL: <b>'.$sql_num.'</b> за <b>'.round($sql_time, 3).'</b> сек.</div>';break;}?>

но тут хз, по хорошему вообще все переписывать надо.

Неактивен

#11 2009.03.21 21:12

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

Я вот сделал так

Код:

1
2
3
if($ok==""){
$name = $_GET['name'];
$privat = $_GET['privat'];

Код:

1
2
3
4
echo '<input type="hidden" name="p" value="'.$pass.'"/>';
//echo '<input type="hidden" name="uid" value="'.$uid.'"/>';
echo '<input type="hidden" name="act" value="cat"/>';
echo '<input type="hidden" name="ok" value=""/>';

Но сейчас если просто обновить страницу добавляется копия ката.

Неактивен

#12 2009.03.21 21:13

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

зачем ты так сделал? сделай как написано у меня. и еще НИКОГДА не пиши с включенными глобальными переменными.

Неактивен

#13 2009.03.21 21:24

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

Сделал как написано. Просто стр. обновляет и всё.

Неактивен

#14 2009.03.21 21:31

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

блин, не обратил внимание, что ты данные через GET передаешь.

Код:

1
span style="color: #0000BB"><?php$row = mysql_fetch_row(sql("SELECT `pass` FROM `superadmin` WHERE `login`='$login';"));$truepass = $row[0];if ($truepass != $pass && $truepass != md5($pass)){ echo 'Wrong Pass'; exit;}// вход осуществлен$today = date('Ymd');switch ($_GET['act']){case 'cat':if(!$uid){$ins_str = "INSERT INTO cat VALUES ('','$name','$privat')";if (sql($ins_str)) {@sql("OPTIMIZE TABLE cat");@sql("ANALYZE TABLE cat");$uid="";}else{$msg = " ".mysql_error()." ";}}else{sql("Update cat set name='".$name."', pvt='".$privat."' where id=".$uid);$uid='';}echo '<div class="bmenu">Список разделов для сайтов</div>';$zend = 20;$query = "SELECT * FROM cat ORDER BY id";$result = sql($query) or die("Query failed");for ($i=0; $i <= mysql_num_rows($result) - 1; $i++) {if (!mysql_data_seek($result, $i)) {echo "Cannot seek to row $i\n";continue;}if(!($row = mysql_fetch_object($result)))continue;$zend--;if($zend==0) break;$idcat = $row->id;$name = $row->name;$pvt = $row->pvt;if($pvt==1)$pvt="приватный раздел"; else $pvt="";if($uid==$idcat)$nnn = $name;echo '<div class="menu"><b>'.$idcat.'</b> - <a href="index.php?login='.$login.'&p='.$truepass.'&uid='.$idcat.'&act=cat">'.$name.'</a> '.$pvt.'</div>';}echo '<div class="menu">Новая категория:<br/>';echo '<form action="index.php" method="get">';echo '<b>Имя:</b><input type="text" name="name" value="'.$nnn.'"/>';echo '<select size="1" name="privat">';echo '<option value="0">Открытая</option>';echo '<option value="1">Приватная</option>';echo '</select><br/>';echo '<input type="hidden" name="login" value="'.$login.'"/>';echo '<input type="hidden" name="p" value="'.$truepass.'"/>';echo '<input type="hidden" name="uid" value="'.$uid.'"/>';echo '<input type="hidden" name="act" value="cat"/>';echo '<input type="submit" value="Готово"/></form></div>';echo ''.$ins_str.' - fddfdffd';echo '<div class="menu"><a href="index.php?login='.$login.'&amp;p='.$pass.'">Назад</a></div>';echo '<div class="menu"><a href="/index.php">Top-100</a> | <a href="/category.php">Категории</a> | <a href="/stat_top.php">Статистика</a></div>';echo $footer;echo '<div align="center">SQL: <b>'.$sql_num.'</b> за <b>'.round($sql_time, 3).'</b> сек.</div>';break;}?>

Неактивен

#15 2009.03.21 21:35

WapStyle
Участник
Откуда: Ирбит
Зарегистрирован: 2008.03.26
Сообщений: 475
Карма: 3
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

Вот что пишет
echo $ins_str;
INSERT INTO cat VALUES ('','','')

Может так попробовать?
$ins_str = "INSERT INTO cat VALUES ('','".$_GET['name']."','".$_GET['privat']."')";

Неактивен

#16 2009.03.21 21:43

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Помогите! Не записывает в базу.

$ins_str = "INSERT INTO cat VALUES ('','".mysql_real_escape_string($_GET['name'])."','".mysql_real_escape_string($_GET['privat'])."')";

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.015 s