| 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: 13 let
|
|||
0