Autor Zpráva
Pevel.Sojak
Profil *
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&amp;data[id]='.$row_content_prew['id'].'&data[table_name]='.$content_prew_table.'&amp;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&amp;data[id]='.$row_content_prew['id'].'&data[table_name]='.$content_prew_table.'&amp;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
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 *
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
insert into tabulka2 select * from tabulka1 where id = 8;
delete from tabulka1 where id = 8;
czechiaa
Profil
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
czechiaa:
Ano, insert vkládá data vybraná selectem. Vytváří se kopie.
Teprve druhý dotaz, ten delete, maže původní data.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0