@bbbbb123654

Почему данные не сохраняются в базе данных?

Делал сайт test-answ.online и вроде всё хорошо и правильно написал, но метки пропадают после перезагрузки страницы. Они не сохраняются в базе данных. Где моя ошибка?

bd.php
<?php

$sdb_name = "localhost";
$user_name = "name";
$user_password = "pasword";
$db_name = "name";

// ���������� � �������� ���� ������
if(!$link = mysql_connect($sdb_name, $user_name, $user_password))
{
  echo "<br>�� ���� ����������� � �������� ���� ������<br>";
  exit();
}

// �������� ���� ������
if(!mysql_select_db($db_name, $link))
{
  echo "<br>�� ���� ������� ���� ������<br>";
  exit();
}

mysql_query('SET NAMES utf8');

?>

addmetki.php
<?php

header('Content-Type: text/html; charset=utf-8');

include("bd.php");

require_once "html_filter_class.php";
		
	$tags_set = array(
		
		'h1'		=> array('id', 'class'),
		'h2'		=> array('id', 'class'),
		'h3'		=> array('id', 'class'),
		'h4'		=> array('id', 'class'),
		'h5'		=> array('id', 'class'),
		'h6'		=> array('id', 'class'),
		
		'p'			=> array('id', 'class'),
		'span'		=> array('id', 'class'),
		'a'			=> array('id', 'class', 'href'),
		'img'		=> array('id', 'class', 'src', 'alt', FALSE),
		'br'		=> array(FALSE),
		'hr'		=> array(FALSE),
		
		'strong'		=> array('id', 'class'),	
		'div'		=> array('id', 'class', 'style'),		
		
		
		'ul'		=> array('id', 'class'),
		'ol'		=> array('id', 'class'),
		'li'		=> array('id', 'class'),
		
		'table'		=> array('id', 'class'),
		'tr'		=> array('id', 'class'),
		'td'		=> array('id', 'class'),
		'th'		=> array('id', 'class'),
		'thead'		=> array('id', 'class'),
		'tbody'		=> array('id', 'class'),
		'tfoot'		=> array('id', 'class')	
		
	);
	
	
	$html_filter = new html_filter();
	$html_filter->set_tags($tags_set);

$iconText = htmlspecialchars($_POST['icontext']);
$hintText = htmlspecialchars($_POST['hinttext']);
$balloonText = $html_filter->filter($_POST['balloontext']);
$stylePlacemark = $_POST['styleplacemark'];
$lat = $_POST['lat'];
$lon = $_POST['lon'];

$sql = "INSERT INTO ymapapiv2_markers (`id`, `iconText`, `hintText`, `balloonText`, `stylePlacemark`, `lat`, `lon`) VALUES (NULL, '$iconText', '$hintText', '$balloonText', '$stylePlacemark', '$lat', '$lon');";

$result = mysql_query($sql) or die("Ошибочный запрос: " . mysql_error());

?>

vivodpointsmap.php
<?php
header('Content-Type: text/html; charset=utf-8');
 
require ("bd.php");
 
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
 
$result = mysql_query("SELECT * FROM ymapapiv2_markers");
if(mysql_num_rows($result)>0)
{
while ($mar = mysql_fetch_array($result))
{
$json =  array(icontext=>$mar['iconText'], hinttext=>$mar['hintText'], balloontext=>$mar['balloonText'], styleplacemark=>$mar['stylePlacemark'], lat=>$mar['lat'], lon=>$mar['lon']);
$markers[] = $json;
}
 
}
$points = array(markers=>$markers);
 
echo json_encode($points);
 
}
 
 
?>
  • Вопрос задан
  • 773 просмотра
Пригласить эксперта
Ответы на вопрос 1
Alexanevsky
@Alexanevsky
Любительская web-разработка
Попробуйте вообще убрать из запроса 'id', и соответственно null, то есть чтобы получилось так:

$sql = "INSERT INTO ymapapiv2_markers (`iconText`, `hintText`, `balloonText`, `stylePlacemark`, `lat`, `lon`) VALUES ('$iconText', '$hintText', '$balloonText', '$stylePlacemark', '$lat', '$lon');";


На столбце id скорее всего стоит автоинкремент и он его проставит, а вот передача туда NULL возможно ломает логику и он не может выполнить запрос, потому как передавать туда можно либо только integer (да ещё и уникальный), либо не передавать вообще.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы