katergória átnevezés, figyeli hogy van e már ilyen kategória, VAGY MÉGSE?
sziasztok!
csináltam egy kategória szerkesztőt (főkategória+alkategória)
amikor felveszek egy új főkategóriát akkor figyelem hogy van e már ilyen:eddig működik is szépen, nem engedi hogy két egyforma főkategória legyen.
na most, van egy átnevezés funckió minden fő és alkategória után, ez is müködik, de itt már nem veszi észre ha két egyforma főkategória van!
és azt se ha egy adott főkategóroán belül 2 azonos alkategória.
ellenőrőző kód:és a meghívás:érdekes hogy 2 egyforma főkategóriát sem veszi észre, pedig az előbb az még működött!
azt veszem észre hogy a meghívásban az első feltétel utáni rész nem fut le valamiért.
előre is köszönöm a segítséget!
■ csináltam egy kategória szerkesztőt (főkategória+alkategória)
amikor felveszek egy új főkategóriát akkor figyelem hogy van e már ilyen:
function fokategoriaEllenorzes( $nev ) //ellenőrzi hogy létezik e a nev főkategória, ha nem akkor visszatér false
{
global $kapcsolat;
$eredmeny = mysql_query( "SELECT nev FROM kategoriak
WHERE nev='$nev'", $kapcsolat );
if ( ! $eredmeny )
die ( "domnameEllenorzes hiba: ".mysql_error() );
if ( mysql_num_rows( $eredmeny ) )
return mysql_fetch_array( $eredmeny );
return false;
}
na most, van egy átnevezés funckió minden fő és alkategória után, ez is müködik, de itt már nem veszi észre ha két egyforma főkategória van!
és azt se ha egy adott főkategóroán belül 2 azonos alkategória.
ellenőrőző kód:
function kategoriaEllenorzes( $nev, $id, $fokategoria ) //ellenőrzi hogy létezik e a nev kategória AZ ADOTT FŐKATBAN, vagy ha főkat akkor létezik e
{
if ($fokategoria=="i") //ha főkat
{
fokategoriaEllenorzes( $nev );
}
elseif ($fokategoria=="n") //ha alkat
{
$alkategoriak = alkategoriakLekeres( $id );
if ( ! $alkategoriak )
{
}
else
{
foreach ( $alkategoriak as $sor2 )
{
if ($sor2['nev']==$nev)
{
return true;
}
}
}
}
return false;
}
if ( ( $sor_tomb = kategoriaEllenorzes($nev, $id, $fokategoria) ) ) //ha létezik a nev nevű alkat AZ ADOTT FŐKATBAN, vagy már a főkat létezik
{
header("Location: kategoria_atnevezes.php?a11=nem");
}
else //ha még nem létezik
{
$parancs = "UPDATE kategoriak SET nev='$nev' WHERE id = '$id'";
mysql_query( $parancs, $kapcsolat )
or die ( $uzenet1 .= "szerver hiba, próbálja újból<br>\n<br>\n" );
header("Location: admin_belepett.php?oldal=a1&a11=ok");
}
azt veszem észre hogy a meghívásban az első feltétel utáni rész nem fut le valamiért.
előre is köszönöm a segítséget!
Nem használod fel a return értéket
nem akarja
talán
ha én főkategóriát nevezek át akkor a fokategoriaEllenorzes -t hivja meg, de a fokategoriaEllenorzes funkció műküdik jól.
főkategória=ok
az alkategóriákat viszont továbbra sem ellenőrzi rendesen.
show
leírom elejétől a végéig: van egy kis progim, amivel lehet kreálni egy 2 szintű menüt (főmenü+almenü). azt szeretném, hogy egy főkategóriában ne legyen két egyforma almenü. viszont különböző főkategóriákban lehet (pl: főkategória1>alkatX,alkatY főkategória2>alkatX,alkatZ).
hogy könnyebb legyen megírteni itt a kategória táblám:
id nev főkategória hova_tartozik
1 főkat1 i
2 alkat1 n 1
na tehát, erre írtam egy ellenőrőző progit, ami úgy müködik, hogy:
1. lekéri az alkategória id-je szerint az alkategória hova_tartozik értékét
2. bepakolom egy tömbbe azoknak a kategóriák neveit aminek a hova_tartozik az előbb lekért érték
3. kiiratom a tömböt egyesével és közben figyelem hogy van e olyan érték ami az új alkategóriám neve lenne
kódok:
1.funkció
kérdés hol!
MySQL UNIQUE?
Üdv.
szerintem nem lehet úgy
pontosítás
azért nem, mert én ugy szeretném hogy két különböző főkategóriában lehessen egyforma nev (alkategória). és ha beállítom a nev oszlopot egyedinek akkor ezt nem fogja engedni.
done
csak újra át kellett gondolni az egészet, és nem is volt bonyolult, pár apró hiba volt csak.
Nem csak egy mező lehet...
Üdv!
köszi