Mysql промяна на ID

sle

Registered
Здр. Имам 2 таблици които са пълни. В всяка таблица имам ID което започва от 1.. Как мога да направя едната таблица ID да ми започва от по голяма цифра при положение ,че вече всичко е вътре? Просто да променя да не е от 1 а от 20 примерно ?
 
Искаш ли да дадеш структурата на таблиците, и да посочиш желания резултат. Питам, понеже не си казал има ли някаква релация между двете таблици примерно, и само в едната ли таблица ще се променят резултатите (тоест ID-тата) :idea:
 
Ами в едната таблица имам клипове и в другата. Искам да направя така ,че някой ако иска да може да добави желаният клип в любими като се саздава бисквитка с ИП адреса и ИД номерата на клиповете. Обаче в 2те таблици като започват от номер на ИД 1 ... се дублират..
 
На мене ли ми се струва, или логиката ти е съвсем грешна? Какво става ако видео клиповете в едната таблица станат повече, от ид-то от което почват видео клиповете в другата таблица (т.е. същата операция, пак ще сменяш ид-та?).
Просто ти трябва една проста релация, едно към много, или иначе казано друга таблица, от сорта на [sql]CREATE TABLE `users_fav` (
`id` INT(10) NULL,
`id_user` INT(10) NULL,
`id_clip` INT(10) NULL
);[/sql] като естествено, според нуждите можеш да си я доразвиеш.
 
Вижте сега.. имам 2 таблици с линкове на клипове в тях.. в едната таблица са мотори в другата коли. И в 2те таблици ИД започва от 1 и завършва до колкото клипа имам. Целта ми е потребителите да имат възможност да добавят клиповете в 'Любими' и тези 'Любими' ще се съхраняват в бисквитка по ИД. Обаче някой ако добави клип от коли и клип от мотори с ИД 1 ще стане грешка сигурно.
Ще ги вкарам на ново едната категория клипове като започне с ИД от края на другата...

Но сега да ви питам КАК да направя бисквитка която да не се трие никога и която при всяко натискане на клип ДОБАВИ В ЛЮБИМИ да се добавя в бисквитката новото ИД. И как да извадя от базата данни всички клипове от ИД-тата в бисквитката?
 
Ами не сам го мислил ,но в момента с

<a href="?add='.$rows['id'].'">Добави в Любими</a>

Съм направил да ми искарва от таблиците. А всичките таблици съм ги съединил с UNION.


И мисля когато имам $_GET['add'] да ми прави бисквитка с това с това ИД... и при всяко натискане на различен клип да ми добавя ИД в същатата бисквитка..

Как да го фурмолирам обаче не зная
 
В такъв случай, просто си сложи един тип, към коя таблица да води
[sql]ALTER TABLE `таблицата`
ADD COLUMN `type` ENUM('koli','motori') NOT NULL DEFAULT 'koli' [/sql] и си решаваш проблема, записваш си в бисквитката типа и ид-то и това е. Това да сменяш ID-тата е крайно безмислено (според мене).
 
Добре ,а как да направя при всяко натискане на клип да го довабя в същата бисквитка и след това как от бисквитката да изваждам всички вкарани ИД и тип ?
 
Ами защото няма да има регистраций... а който иска да си ги сложи в бисквитка която да си му седи.

Но как да стане номера като при всяко посещение по отделно ако се добавят ?

Направил съм така да записва:
Код:
<?php
if (isset($_GET['add']) && $_GET['type'])
{
	$value=$_GET['add'] + $_GET['type'];
	setcookie("TestCookie",	$value, time()+3600);
}
?>
Обаче ми дава грешка
Notice: Undefined index: type in C:\xampp\htdocs\index.php on line 2

А ето така давам този гет:
Код:
<a href="?add='.$rows['id'].'?type='.$rows['type'].'"><img src="images/star.png" />Add to Favorites</a>
Как да го направя ?
 
Объркал си & с ? в линка, и ако предположим че го оправиш, аз бих ти предложил нещо такова
PHP:
if ( isset($_GET['add']) && isset($_GET['type']) ) { // Ако имаме нужните данни
	$aData = array();
	if ( isset($_COOKIE['TestCookie']) ) { // проверяваме дали имаме вече бисквтка
		$aData = unserialize($_COOKIE['TestCookie']); // и си вземаме данните от нея
		if ( empty($aData[$_GET['type']]) ) $aData[$_GET['type']] = array(); // разбира се, хубаво за всеки случай да се подсигурим с един празен масив
		$aData[$_GET['type']][$_GET['add']] = $_GET['add']; // и добавяш резултата
	} else {
		// Ако нямаме още бисквтка, просто си създаваме един масив, в който записваме
		$aData	= array( 
			$_GET['type']	=> array( 
				$_GET['add'] => $_GET['add']
			)
		);
	}
	// Ключа в масива, и стойност са все видеоклиповете, понеже така лесно избягваш повтарящи се стойности (т.к. няма да има два еднакви клипа, от една и съща категория
	setcookie('TestCookie',serialize($aData),time() + 3600);
}
Наслагах коментари, колкото да се ориентираш кое, какво прави и евентуално да си го нагодиш според твоите нужди.
 
Вкарах целия този код най-от горе на страництата ми и ИД винаги си стои на 18 който и клип на се опитам да вкарам :/ ..

Можеш да ли ми помогнеш този код да стане само с запазване на ИД без TYPE. И след това как да ги искарам от базата данни всички ИД-та от бисквитката?


Replace каза:
Объркал си & с ? в линка, и ако предположим че го оправиш, аз бих ти предложил нещо такова
PHP:
if ( isset($_GET['add']) && isset($_GET['type']) ) { // Ако имаме нужните данни
	$aData = array();
	if ( isset($_COOKIE['TestCookie']) ) { // проверяваме дали имаме вече бисквтка
		$aData = unserialize($_COOKIE['TestCookie']); // и си вземаме данните от нея
		if ( empty($aData[$_GET['type']]) ) $aData[$_GET['type']] = array(); // разбира се, хубаво за всеки случай да се подсигурим с един празен масив
		$aData[$_GET['type']][$_GET['add']] = $_GET['add']; // и добавяш резултата
	} else {
		// Ако нямаме още бисквтка, просто си създаваме един масив, в който записваме
		$aData	= array( 
			$_GET['type']	=> array( 
				$_GET['add'] => $_GET['add']
			)
		);
	}
	// Ключа в масива, и стойност са все видеоклиповете, понеже така лесно избягваш повтарящи се стойности (т.к. няма да има два еднакви клипа, от една и съща категория
	setcookie('TestCookie',serialize($aData),time() + 3600);
}
Наслагах коментари, колкото да се ориентираш кое, какво прави и евентуално да си го нагодиш според твоите нужди.
 
Не мисля, че идеята ти е добра, ама ако искаш така - твоя воля.
Кажи какво е това 18, което стои?
Иначе за да ги изкараш (по горе описаният начин), просто си ги вземаш от бисквитката и ги въртиш в масива
PHP:
$aData = unserialize($_COOKIE['TestCookie']);
 
Ами само ми остана не знам как да направя като вкарвам в таблицата данни да ми започва ИД от 4 например а не от 1 .

И как да направя по горе написаня код да работи само с ИД без TYPE .. и как да искарам от базата данни всички ИД от касива?
 
sle каза:
Ами само ми остана не знам как да направя като вкарвам в таблицата данни да ми започва ИД от 4 например а не от 1 .
[sql]ALTER TABLE таблицата AUTO_INCREMENT = 4;[/sql]
sle каза:
И как да направя по горе написаня код да работи само с ИД без TYPE .. и как да искарам от базата данни всички ИД от касива?
Просто махаш ключа (който е самия TYPE) и си записваш само ид-тата (т.е. масива става с едно ниво по-нагоре) :/
 

Back
Горе