Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Обновление в БД msql (https://javascript.ru/forum/jquery/34455-obnovlenie-v-bd-msql.html)

Q012 05.01.2013 17:49

Обновление в БД msql
 
Здравствуйте. Прошу подсказки, кому не сложно. Есть php скрипт вывода картинок из БД и кнопка типа "лайк" под каждой картинкой. Всё в цикле.
$sql = mysql_query("SELECT link FROM cat LIMIT 4  ");
echo "<table border ='1'>";
echo "<tr>";
while ($myrow = mysql_fetch_array($sql))
{
$path = "img/";

echo "<td>";
echo "<img src=\"".$path.$myrow['link']."\">";
echo "<br />";
echo "<img src=\"img/add.png\" id=\"plus\">";
echo "</td>";

}
echo "</tr>";
echo "</table>";

При нажатии на кнопку echo "<img src=\"img/add.png\" id=\"plus\">";
происходит следующее
$(document).ready(function () {
		
			$("#plus").click(function () {
				var parentId = $(this).parent().parent().attr('id');
				editRating(parentId);
			});

			function editRating (funct, element) {
				
						$.ajax({
							url: "saverating.php",
							type: "POST",
							data: {id: element, funct: 1},
							error: function () {alert("error");},
							success: function () {alert("ok");}

				});
			
			}
		});

а вот самый файл обработки
include("connect.php"); 
$id = $_POST["id"];

$new_rating = $_POST["funct"];

mysql_query("UPDATE cat SET rating = {$new_rating} WHERE id = {$id}");

success: function () {alert("ok");} выдаёт "ок" но в БД колонка rating не обновляется. если из запроса убрать WHERE id = {$id} тогда обновляются все записи, но нужно по айди картинки. Сразу скажу, взял из какого то урока и переделал под себя. Все переделки прошли норм, а вот это последняя загвоздка..Подскажите начинающему плиз.

mullih 05.01.2013 18:01

поинтересуйтесь пожалуйста что к вам приходит на POST-е в качестве значения для $id и собственно по чем вы делаете выборку :)

Q012 05.01.2013 18:16

Цитата:

Сообщение от mullih (Сообщение 225468)
поинтересуйтесь пожалуйста что к вам приходит на POST-е в качестве значения для $id и собственно по чем вы делаете выборку :)

Вот и я понимаю что мне в $id ничего не приходит. echo $id; на проверку ничего не выводит. Я так понимаю что проблема в
var parentId = $(this).parent().parent().attr('id');

Выбрать id родителя..т.е. картинки .я вроде как вижу проблему в целом, но не могу найти где точно...

mullih 05.01.2013 18:19

отлично, раз есть понимание, тогда поехали

где вы оставляете (рендерите в html) id значение по которому будет выполняться выборка?

Deff 05.01.2013 18:21

Цитата:

Сообщение от Q012
$(this).parent().parent().attr('id');

:) А чо нужно получить (словами) ?, - чичас Вы пытаетесь получить ID 03 echo "<tr>";
У которого его нет

Q012 05.01.2013 18:42

словами нужно получить айди картинки на которой находится кнопка лайк, и по этому айди поднять картинке рейтинг в БД. т.к. картинок 4, кнопка одна и выводится в цикле. у кнопки есть свой айди = "plus" , значит мне надо при нажатии на лайк, получить айди родителя кнопки. я так понял что это и есть картинка на которой кнопка...не знаю понятно ли объяснил)

Q012 05.01.2013 18:47

Цитата:

Сообщение от mullih (Сообщение 225473)
отлично, раз есть понимание, тогда поехали

где вы оставляете (рендерите в html) id значение по которому будет выполняться выборка?

$id = $_POST["id"];

если я вас правильно понял...

Deff 05.01.2013 18:51

Цитата:

Сообщение от Q012
значит мне надо при нажатии на лайк, получить айди родителя кнопки. я так понял что это и есть картинка на которой кнопка...не знаю понятно ли объяснил)

Запишите пример итогового(Без PHP) HTML в Браузере и выделите цветом тег у которого нужно узнать ID

mullih 05.01.2013 20:40

Цитата:

Сообщение от Q012 (Сообщение 225476)
словами нужно получить айди картинки на которой находится кнопка лайк, и по этому айди поднять картинке рейтинг в БД. т.к. картинок 4, кнопка одна и выводится в цикле. у кнопки есть свой айди = "plus" , значит мне надо при нажатии на лайк, получить айди родителя кнопки. я так понял что это и есть картинка на которой кнопка...не знаю понятно ли объяснил)

для меня в полне понятно было и вашего первого объяснения, вопрос понятли это для вас) не сочтите за труд, напишите что Deff постом выше попросил


Часовой пояс GMT +3, время: 01:30.