[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как отправить данные на сервер и занести в базу
SoMeOnE
Просто написанный на php такой скрипт работает

$uid = 222256;
$name = "Jonny";
$game = 0;
$points =0;


$res = "INSERT INTO `pz_statistics` (`uid`, `name`, `game`, `points`) VALUES ('$uid', '$name', '$game', '$points')
ON DUPLICATE KEY UPDATE
`name`=VALUES(`name`),
`game`=VALUES(`game`),
`points`=VALUES(`points`)"
;

mysql_query($res);




А когда из js вызываю conroller.php

$.ajax({
type: "POST",
url: "controller.php",
data: {
this_points : this_points
},
success: function(data){
$('#result').html(data);
alert('ok');
},
error: function() {
alert( "Data not Saved" );
}
}
);


и в нем такой код не србатывает

conroller.php
require_once 'class/DB.class.php';
DB::connect();

if (isset($_POST['this_points'])) {
$uid = 222256;
$name = "Jonny";
$game = 0;
$points = 1000;

$res = "INSERT INTO `pz_statistics` (`uid`, `name`, `game`, `points`) VALUES ('$uid', '$name', '$game', '$points')
ON DUPLICATE KEY UPDATE
`points`=VALUES(`points`)"
;
mysql_query($res);
}


Непонимаю еще зачем он требует подключиться к базе. К этому времени она уже подключена.

Допустим такой простой код, который просто возвращет, что то, работает без проблем

conroller.php
$x = $_POST['this_points'];
$x = $x + 1;
echo $x;


Кто подскажет в чем проблема?




Спустя 5 минут, 8 секунд (5.05.2011 - 14:06) nugle написал(а):
попробуй так
$.ajax({
type: "POST",
url: "controller.php",
data:'this_points='+this_points,
success: function(msg){
$('#result').html(msg);
alert('ok');
},
error: function() {
alert( "Data not Saved" );
}
}
);

Спустя 4 часа, 30 минут, 55 секунд (5.05.2011 - 18:37) SoMeOnE написал(а):
Сейчас вот так
$('#play234').click(function() {
var test1 = 1;
alert (test1);
$.ajax({
type: "POST",
url: "controller.php",
data: ({
test1name: test1
}),
success: function(msg){
$('#result').html(msg);
alert('Data Saved')
},
error: function() {
alert( "Data not Saved" );
}
}
);
});


require_once 'class/DB.class.php';
DB::connect();

$uid = 8888899;
$name = "Jonny";
$game = 0;
$points = 1000;

$res = "INSERT INTO `pz_statistics` (`uid`, `name`, `game`, `points`) VALUES ('$uid', '$name', '$game', '$points')
ON DUPLICATE KEY UPDATE
`points`=VALUES(`points`)"
;
mysql_query($res);


при нажатии на play. Все работает alert(Data Saved) срабатывает из
success: function(msg) {
$('#result').html(msg);
alert('Data Saved')

Но база не обновляется.
В чем может быть проблема.

Спустя 1 час, 30 минут, 19 секунд (5.05.2011 - 20:07) nugle написал(а):
попробуй так
$('#play234').click(function() {
var test1 = 1;
alert (test1);
$.ajax({
type: "POST",
url: "controller.php",
data: ({
test1name: test1
}),
success: function(msg){
$('#result').html(msg);
alert('Data Saved')
},
error: function() {
alert( "Data not Saved" );
}
}
);
});

require_once 'class/DB.class.php';
DB::connect();

$test1name = !empty($_POST['test1name']) ? $_POST['test1name'] : null;
$uid = 8888899;
$name = "Jonny";
$game = 0;
$points = 1000;

$sql = "INSERT INTO `pz_statistics` (`uid`, `name`, `game`, `points`) VALUES ('".$uid."', '".$name."', '".$game."', '".$points."')
ON DUPLICATE KEY UPDATE
`points`=VALUES('points')"
;
$res = mysql_query($sql) or die(mysql_error().'<br />'.$sql);

я думаю ошибка в sql

Спустя 2 часа, 42 минуты, 6 секунд (5.05.2011 - 22:49) SoMeOnE написал(а):
Вся равно не помагает.
Никаких ошибок не выдает. Только пишет Data Saved.

С самим запросом вроде бы проблем нет. Распечатал занес напрямую в базу без проблем. Если этот скрипт просто вызывать из index.php тоже все работает.
А через js не срабатывает.

Спустя 10 минут, 1 секунда (5.05.2011 - 22:59) SoMeOnE написал(а):
Методом научного тыка такая вещь получается...

когда я просто пишу в controllere
Если через js вызывать
echo 5;
работает

а вот это уже на работает

require_once 'class/DB.class.php';
echo 5;


Получается, что он перестает работать после подключения класса DB
Что происходит вообще?

Спустя 14 минут, 47 секунд (5.05.2011 - 23:14) SoMeOnE написал(а):
После издевательства над контроллером я вручную прям в этом файле подключился к базе.
И после все работает правильно
Почему он не видит базу изначально.

В файле index.php
подключается класс DB и после cmsApi
Вот кусок кода

require_once 'class/DB.class.php';
require_once 'class/cmsApi.class.php';
require_once 'class/utils.class.php';

$api = new cmsApi();


В конструкторе cmsApi происходит подключения к базе через DB::connect();
В том же котроллере если его подключить сразу из index.php можно сразу обращаться к базе.

Но при вызове контроллера из js. Он требует опять подключения. Почему так происходит?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.