Adat duplikáció elkerülése mysql feltöltéskor
Üdv!
Fel szeretnék tölteni egy adatot az adatbázisba, viszont ha már szerepel akkor nevezze el másik néven és azt is ellenőrízze le egészen addig amíg olyan adatot nem töltök fel ami nincs a táblában.
pl:
fel akarom tölteni, hogy egy, ami már fent van az adatbázisban, ekkor változtassa meg egy-0-ra és ha nincs fent akkor töltse fel, ha van egy-0 akkor egy-1 stb
Egy ilyet szenvedtem össze de nem sikerült normálisra megoldani.
■ Fel szeretnék tölteni egy adatot az adatbázisba, viszont ha már szerepel akkor nevezze el másik néven és azt is ellenőrízze le egészen addig amíg olyan adatot nem töltök fel ami nincs a táblában.
pl:
fel akarom tölteni, hogy egy, ami már fent van az adatbázisban, ekkor változtassa meg egy-0-ra és ha nincs fent akkor töltse fel, ha van egy-0 akkor egy-1 stb
Egy ilyet szenvedtem össze de nem sikerült normálisra megoldani.
$id = mysql_insert_id() ;
if ( isset($_POST['alias']) and !empty($_POST['alias'])) {
$alias = angol($_POST['alias']);
}
else {
$alias = angol($_POST['cim']);
}
$keres = mysql_query("select * from alias where eng = '".$alias."' ");
if (!$keres) {
die('Hiba: ' . mysql_error());
}
$i=0;
//echo $alias;
$kereses = 0;
while ( $kereses == 0 ) {
$alias .= '-'.$i;
$i++;
$kereses = mysql_num_rows($keres);
}
//echo $alias;
$url = 'tartalom.php&tipus='.$tipus.'&id='.$id.'';
$sql2 = mysql_query("insert into alias (url,eng,tid)
values (
'".mysql_real_escape_string($url)."',
'".mysql_real_escape_string($alias)."',
'".mysql_real_escape_string($id)."' ) ");
if (!$sql2) {
die('Hiba: ' . mysql_error());
}
if ( isset($_POST['alias']) and !empty($_POST['alias'])) {
$alias = angol($_POST['alias']);
}
else {
$alias = angol($_POST['cim']);
}
$keres = mysql_query("select * from alias where eng = '".$alias."' ");
if (!$keres) {
die('Hiba: ' . mysql_error());
}
$i=0;
//echo $alias;
$kereses = 0;
while ( $kereses == 0 ) {
$alias .= '-'.$i;
$i++;
$kereses = mysql_num_rows($keres);
}
//echo $alias;
$url = 'tartalom.php&tipus='.$tipus.'&id='.$id.'';
$sql2 = mysql_query("insert into alias (url,eng,tid)
values (
'".mysql_real_escape_string($url)."',
'".mysql_real_escape_string($alias)."',
'".mysql_real_escape_string($id)."' ) ");
if (!$sql2) {
die('Hiba: ' . mysql_error());
}
Meglett a megoldás: $kereses
while ( $kereses > 0 ) {
if ($i > 0) {
$alias = str_replace('-'.end(explode('-',$alias)),'',$alias) ;
}
$alias .= '-'.$i;
$i++;
$keres = mysql_query("select * from alias where eng = '".$alias."' ");
if (!$keres) {
die('Hiba: ' . mysql_error());
}
$kereses = mysql_num_rows($keres);
}
REGEXP