Hallo allemaal,

Weet iemand hoe ik het beste een id(nummer) kan veranderen ofzo want ik heb nu een soort knop en als je dan daarop klikt dan moet die pagina omhoog schuiven en die andere omlaag schuiven dus dan moeten de id nummers van elkaar veranderen. HOe kan ik dat het beste maken.

Dus pagina (naam=test1) heeft als id nummer 1
pagina (naam =test2) heeft als id nummer 2.

Maar ik wil als je op een knop druk dat pagina2 dan id nummer 1 krijgt en andersom.
Ja oke een nieuwe kolom maar nog iets hoe kan ik dan maken met een pagina toevoegen dat als op toevoegen klikt dat de kolom sorteer id een waarde krijgt welke waarde en hoe moet ik die invullen?

En die kolom moet toch geen autoincrement krijgen?
martin schreef op 16.08.2006 23:15
Hallo allemaal,

Weet iemand hoe ik het beste een id(nummer) kan veranderen ofzo want ik heb nu een soort knop en als je dan daarop klikt dan moet die pagina omhoog schuiven en die andere omlaag schuiven dus dan moeten de id nummers van elkaar veranderen. HOe kan ik dat het beste maken.

Dus pagina (naam=test1) heeft als id nummer 1
pagina (naam =test2) heeft als id nummer 2.

Maar ik wil als je op een knop druk dat pagina2 dan id nummer 1 krijgt en andersom.

Wonderlijk. Ik heb echt geen idee wat je bedoelt. Je hebt "een soort" knop en als je daarop klikt moet "die pagina" omhoog schuiven en "die andere" omlaag.
De meeste snappen het wel.
@jan:hij heeft een menu en sorteerd die volgens id,
wij raden hem dat af en stellen voor om een sortering te geven met een ander nummer 'sorteerid' ofzo.

nu is zijn probleem enkel dit voor elkaar te krijgen dat het werkt + admin
Hoe kan ik dan maken met een pagina toevoegen dat als iemand op toevoegen klikt dat de kolom sorteer id een waarde krijgt welke waarde en hoe moet ik die invullen? Want ik kan niet het sorteerid koppelen aan het id toch of wel?

En die kolom moet toch geen autoincrement krijgen?
Eigenlijk was ik te druk, maargoed.. je bent moderator of je bent het niet natuurlijk.

Dit is wat ik nu gemaakt heb voor je:



En dit is de bijbehorende code:


<?php
define('BR',"\r\n");

$db_host = '';
$db_user = '';
$db_pass = '';
$db_name = '';
					  
mysql_connect($db_host, $db_user, $db_pass) or die('Er kon geen verbinding met de server worden gemaakt.');
mysql_select_db($db_name) or die('Ik kon de juiste database niet vinden.');

if(isset($_GET['actie']) && !empty($_GET['actie']))
{
	$acties = array('verhogen','verlagen');
	
	if(in_array($_GET['actie'],$acties))
	{
		$actie = mysql_real_escape_string($_GET['actie']);
		
		if(isset($_GET['volgordeid']) && !empty($_GET['volgordeid']))
		{
			if(is_numeric($_GET['volgordeid']))
			{
				$volgordeid = mysql_real_escape_string($_GET['volgordeid']);

				switch($actie)
				{
					case 'verhogen':
						$query = "SELECT menuid, volgordeid FROM menu WHERE volgordeid <= ".$volgordeid." ORDER by volgordeid DESC LIMIT 2";
						$resultaat = mysql_query($query);
					break;
					
					case 'verlagen':
						$query = "SELECT menuid, volgordeid FROM menu WHERE volgordeid >= ".$volgordeid." ORDER by volgordeid DESC LIMIT 2";
						$resultaat = mysql_query($query);
					break;	
				}
				
				if($resultaat && mysql_num_rows($resultaat) == 2)
				{
					$menuid = array();
					$volgordeid = array();
					
					while($rij = mysql_fetch_array($resultaat))
					{
						$menuid[] = $rij['menuid'];
						$volgordeid[] = $rij['volgordeid'];
					}			
	
					$query = "UPDATE menu SET volgordeid = ".$volgordeid[0]." WHERE menuid = ".$menuid[1]."";
					$resultaat = mysql_query($query);
					
					$query = "UPDATE menu SET volgordeid = ".$volgordeid[1]." WHERE menuid = ".$menuid[0]."";
					$resultaat = mysql_query($query);
									
				}else{
					echo '<p>Sorry, deze kan ik niet verhogen of verlagen!</p>'.BR;
				}
			}else{
				echo '<p>Sorry, de variabele volgordeid hoort numeriek te zijn!</p>'.BR;
			}
		}else{
			echo '<p>Sorry, ik verwacht op zijn minst iets van een volgordeid!</p>'.BR;
		}
	}
}

$query = "SELECT naam, menuid, volgordeid FROM menu ORDER BY volgordeid";
$resultaat = mysql_query($query);

if($resultaat && mysql_num_rows($resultaat) > 1)
{
	while($rij = mysql_fetch_array($resultaat))
	{
		$menuid 	= $rij['menuid'];
		$naam 	= $rij['naam'];
		$volgordeid	= $rij['volgordeid'];
		
		echo '<a href="?actie=verhogen&amp;volgordeid='.$volgordeid.'" class="geenlijntje"><img src="arrow_up.png" title="verhogen"></a> <a href="?actie=verlagen&amp;volgordeid='.$volgordeid.'" class="geenlijntje"><img src="arrow_down.png" title="verlagen"></a> <a href="?item='.$menuid.'">'.$naam.'</a><br>'.BR;
	}
}
?>


Je database zou er zo uit moeten zien:


CREATE TABLE menu (
  menuid int(11) NOT NULL auto_increment,
  volgordeid int(11) NOT NULL,
  naam varchar(255) NOT NULL,
  PRIMARY KEY  (menuid)
);


Het menu ID blijft altijd ongewijzigd. Dat zal wat zijn als opeens je paginas niet meer goed linken :P.

Ik ben er met mijn hoofd op dit moment niet helemaal bij dus wellicht zijn er simpelere oplossing, maar deze werkt wel goed :).
OKe super bedankt het werkt goed:)
Nog 1 ding hoe kan ik het beste elke pagina een sorteer id meegeven met mijn pagina toevoeg systeem? Want dat is nog mijn enigste probleem!

Ik snap de vraag niet... kollom aanmaken, random nummertje en ze vervolgens op de goede volgorde plaatsen.
als je een nieuwe item toevoegd;

sorteerid bekom je
met de phpfunctie: mysql_insert_id();
of met mysq:l MAX(sorteerid) + 1(in je querry)

Reageren