Autor | Zpráva | ||
---|---|---|---|
Pevel.Sojak Profil * |
#1 · Zasláno: 29. 7. 2011, 21:12:08
Dobrý den,
snažím se vytvořit první verzi vlastní administrace, narazil jsem však na jeden vcelku (pro mě) delikátní problém. Script níže slouží pro přesun dat z jedné tabulky do tabulky druhé. Když vše odešlu, tak mi vyjede jako nesplněná podmínka hned ta první, tedy: if (isset($_REQUEST['move']['name']) && isset($_REQUEST['data']['id']) && is_numeric($_REQUEST['data']['id'])){} Přitom při přechodu na stránku v URL přenáším veškerá potřebná data :/ Celý script je zde : <?php echo '<h1 class="content">Správa obsahu</h1>'; $browser = substr($_SERVER['HTTP_USER_AGENT'],strpos($_SERVER['HTTP_USER_AGENT'],'MSIE'),4); if ($browser == 'MSIE') { require './err/err_browser_ie.php';} $content_prew_table = 'admin_web_categories_'.$_REQUEST['move']['name']; if (!$_REQUEST['submit']) { $_SESSION['redirect'] = ''; $_SESSION['redirect'] = $_SERVER['HTTP_REFERER']; $sql['data'] = mysql_query ('SELECT * FROM '.$_REQUEST['data']['table_name'].' WHERE id='.$_REQUEST['data']['id']); $_REQUEST['data'] = mysql_fetch_array ($sql['data']); } $form[0] = '<form method="post" action="./index.php?page=content-move&data[id]='.$row_content_prew['id'].'&data[table_name]='.$content_prew_table.'&move[name]='.$_REQUEST['move']['name'].'"><div id="status"><table><tr><th>Název</th></tr><tr><td><input class="name" type="text" name="nazev" value="'.addslashes($_REQUEST['data']['nazev']).'"/></td></tr></table><table>'; $form[1] = '<tr><th>Přesunout do</th></tr><tr><td><select name="to" style="width:475px;">'; $sql['data'] = mysql_query("SELECT * FROM `admin_web_categories`"); while ($row_form_option = mysql_fetch_array($sql['data'])) { $form[1] .= '<option>'.$row_form_option['categories_name'].'</option>'; } $form[1] .= '</select></td>'; $form[2] = '</tr></table><table class="long"><tr><th>Obsah</th></tr><tr class="white"><td>'; $form[3] = '</td></tr></table></div>'; if (isset($_REQUEST['move']['name']) && isset($_REQUEST['data']['id']) && is_numeric($_REQUEST['data']['id'])){ if ($_REQUEST['submit']['main']) { if ($_REQUEST['nazev'] == '') { $error_h = 'Povinné údaje'; $error_log = 'Je nutné vyplnit všechny údaje označení "<strong class="red">!</strong>'; require './err/err_document.php'; echo $form[0]; echo $form[1]; echo $form[2]; require './inc/cat_content_sub_move.php'; echo $form[3]; } else { $result_autor = $_SESSION['login']; $to = $_REQUEST['to']; $to_result = friendly_url ($to); $sql['save'] = mysql_query ('INSERT INTO admin_web_categories_'.$to_result.' (nazev,obsah,autor,seo) VALUES (\''.addslashes($_REQUEST['nazev']).'\',\''.$_REQUEST['obsah'].'\',\''.$result_autor.'\',\''.$seo_result.'\')'); $sql['delete'] = mysql_query('DELETE FROM '.$_REQUEST['data']['table_name'].' WHERE id='.$_REQUEST['data']['id']); if($sql['save'] && $sql['delete']) { $done_h = 'Přesunuto'; $done_log = 'ID bylo úspěšně přesunuto. <a href="./index.php?page=content-prew&data[id]='.$row_content_prew['id'].'&data[table_name]='.$content_prew_table.'&move[name]='.$_REQUEST['move']['name'].'">Zpět na výpis</a>'; require './err/done_document.php'; } else { $error_h = 'CHYBA'; $error_log = 'Nastala chyba s přenášením dat. Zkuste to prosím později.'; require './err/err_document.php'; echo $form[0]; echo $form[1]; echo $form[2]; require './inc/cat_content_sub_move.php'; echo $form[3]; } } } else { echo $form[0]; echo $form[1]; echo $form[2]; require './inc/cat_content_sub_move.php'; echo $form[3]; } } else { $error_h = 'Nenalezeno'; $error_log = 'Požadováné ID se v databázi nenacházi'; require './err/err_document.php'; } ?> Předem děkuji za odpovědi a pomoc. |
||
Alphard Profil |
#2 · Zasláno: 29. 7. 2011, 21:30:27
Nepůjde to řešit na úrovni MySQL? Popište přesněji čeho chcete dosáhnout, přesunout všechna data, jen určité řádky, nebo jen nějaké sloupce?
|
||
Pevel.Sojak Profil * |
#3 · Zasláno: 30. 7. 2011, 09:49:06
Snažím se přesunout jen určitý řádek. Prozatím to řeším vložením stejných hodnot do jiné tabulky a následně vymazáním řádku z tabulky původní.
Děkuji |
||
Alphard Profil |
#4 · Zasláno: 30. 7. 2011, 12:50:56
insert into tabulka2 select * from tabulka1 where id = 8; delete from tabulka1 where id = 8; |
||
Časová prodleva: 1 rok
|
|||
czechiaa Profil |
#5 · Zasláno: 4. 9. 2012, 20:04:11
Možná blbej dotaz, ale chtěl bych se zeptat, jestli použiji poslední zmíněný insert, tak se ty data z tama "nepřesunou", jakože tam zůstanou?
|
||
Alphard Profil |
#6 · Zasláno: 4. 9. 2012, 20:16:11
czechiaa:
Ano, insert vkládá data vybraná selectem. Vytváří se kopie. Teprve druhý dotaz, ten delete, maže původní data. |
||
Časová prodleva: 12 let
|
0