ugrás a tartalomhoz

Archívum - Júl 5, 2006 - Fórum téma

InnoDB foreign key - a törlést hogyan propagáljam más táblákba?

janoszen · 2006. Júl. 5. (Sze), 20.34
Sziasztok!

Egy eléggé érdekes kérdésem lenne. Lehetséges, hogy a fától nem látom az erdőt és halál RTFM lesz, de ez merül fel bennem:

Távoli kulcsokkal lehet olyat csinálni, hogy ON DELETE CASCADE. No de, ez csak akkor működik, ha a másik tábla változik. Lehetséges valahogyan, implicit módon az aktuális táblából propagálni egy törlést a behivatkozott táblába?

A tárolt eljárások nem megoldás, mert ha jól olvastam, csak MySQL 5-től vannak és a szerveren csak 4-es fut, valamint a táblahivatkozás megfordítása sem lehetséges, mert arra az egy táblára többen hivatkoznak.

Köszi

János
 

Többdimenziós tömb elemének érték dinamikusan

Dualon · 2006. Júl. 5. (Sze), 19.48
Config változókat többdimenziós tömbben szeretnék tárolni. Ezt a tömböt adott esetben futásidőben kell bővíteni, ez viszont nem akar sikerülni.
function cfg_set($s_var_path, $m_var_value)
{
	// CONFIGVALTOZOK
	static $CFG = array(
		'db' => array(
			'tbl' => array(
				'users' => 'felhtabla',
				'forum' => 'forumtabla'
			)
		)
	);

	// CFG SET/GET
	$a_cfg_nodes = explode(':', $s_var_path);

	$s_last_node = $a_cfg_nodes[count($a_cfg_nodes)-1];
	$s_node_path = 'CFG';
	
	foreach($a_cfg_nodes as $node) {
		if ($node==$s_last_node) { // utolso node -> beallitjuk az erteket
			$var = $s_node_path."['$node']";
			${$var} = $m_var_value;
		} else { // egyebkent felepitjuk a node-hoz a tombben vezeto utat
			$s_node_path .= "['$node']";
		}
	}
	
	print_r($CFG);
}
$s_var_path: 'db:tbl:users' jellegű string
$m_var_value: az érték, amit szeretnék beállítani

Az elgondolásom az, hogy végigjárom az $s_var_path-ban megadott útvonalat a tömb adott eleméig (node), ezt az utat stringben rögzítem ($s_node_path), majd $$var-ként változóvá "konvertálva" gyorsan értéket adok neki.

Ami a fenti kódon kívül még eszembe jutott/próbáltam:
  • Referenciaként visszaírni $CFG-be (${$var} &= $m_var_value;) - Undefined variable: CFG['db']['tbl']['users'] a válasz, ráadásul ez új configváltozó esetén nem járható út
  • array_push(), array_walk() - egyikben sem láttam a számomra megfelelő megoldást. Az array_walk()-nál olvastam, hogy a callback függvényben nem lehet módosítani az eredeti tömböt, mert annak megjósolhatatlan lesz az eredménye... nem tudom eldönteni, ez vonatkozik-e rám. :)
  • Google, WL kereső (create dinamic(ally) array +PHP, tömb +dinamikus +PHP, stb...)


Már kellően sokat harcolásztam vele ahhoz, hogy lassan át sem látom. Örömmel fogadnék minden tanácsot akár a fenti megvalósítással, akár egy teljesen új megközelítéssel kapcsolatban!

PHP Aktivacio kod

zoliky · 2006. Júl. 5. (Sze), 18.51
Sziasztok!
Van egy PHP szkript amely segitsegevel egy felhasznalo regisztralja magat egy adatbazisba.

Regisztracio utan a felhasznalo kap egy e-mailt, egy link-el. Csak akkor lesz aktiv a felhasznalo ha meglatogatja ezt a linket.

Ez a link tartalmaz egy random generalt kodot :

Pl:

www.mydomain.com/userval.php?key=b026a66879c2690575bc7e3c56edc60e353d8d06


Ez a hosszu kod bent van egy mySQL mezoben, amelynek a neve "validate".
Amiutan a felhasznalo meglatogatja a linket a hosszu kod helyet egy 0 lesz beirva a validate mezobe.

A gond az, hogy eleg ha csak a kod egyik kissebb reszet irom be, mert kiirja, hogy a regisztracio sikeresen tortent:

Pl.

www.mydomain.com/userval.php?key=b026a66879


Persze o kiirja de nem fog atvaltani 0-ra !

Itt van a userval.php kodja:

$key = $_GET['key'];

if (@mysql_query("UPDATE register SET validate='0' WHERE validate='". $_GET['key'] . "'")) {
print "<b>Aktivalodott<br />";
} else {
print "<b>Nem aktivalodott</b>";
}

Mielott megjelenik az "Aktivalodott" sor le kene elenorizem ha tenyleg atirta azt az erteket 0-ra.

Sajnos nem tudom milyen parancsokkal vegezem el ezt az elenorzest. Ha tudtok segiteni, nagyon halas lennek !

Koszonom !
 

A hozzászólásoknál egyéb bbcode használata colorer elemen belül

Balogh Tibor · 2006. Júl. 5. (Sze), 13.01
Meg lehet oldani, hogy a hozzászólásoknál előbb fusson le a colorer és utána a bbcode? Ti. most fordítva van, és így biztosan nem lehet plusz színezést vagy kiemelést alkalmazni a [colorer] elemen belül.