Software

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
Dobrý den,
prosím vás jak do kritérií pro výběr z databáze vložím proměnou?

Mám tento kód:
Kód: Vybrat vše
$neznama = mysql_query("SELECT fold FROM mmh_file_storage WHERE filename = $filename");
   $data = mysql_fetch_array($neznama);
   $napis = $data["fold"];


když vložím místo $filename normálně to co ve $filename bude, tak vše proběhne jak má. I v proměnné $filename je hodnota.

Nejspíše však nedokáži vložit správně proměnnou do příkazu WHERE.
Děkuji moc za radu
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

galax
WD Trader: 4.4/5

Příspěvky: 96
Registrace: 21.04.2012
V syntaxi problém nevidím. Někdy některé výchozí konfigurace PHP udávají definice SQL dotazů bez mezer, takže takto:
Kód: Vybrat vše
$neznama = mysql_query("SELECT fold FROM mmh_file_storage WHERE filename=$filename");
   $data = mysql_fetch_array($neznama);
   $napis = $data["fold"];
To mi ale už dnes nepřijde pravděpodobné.

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
galax píše:
V syntaxi problém nevidím. Někdy některé výchozí konfigurace PHP udávají definice SQL dotazů bez mezer, takže takto:
Kód: Vybrat vše
$neznama = mysql_query("SELECT fold FROM mmh_file_storage WHERE filename=$filename");
   $data = mysql_fetch_array($neznama);
   $napis = $data["fold"];
To mi ale už dnes nepřijde pravděpodobné.


No tak ani toto nefunguje.
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

galax
WD Trader: 4.4/5

Příspěvky: 96
Registrace: 21.04.2012
Jak se tak teď pozorněji dívám, tak ty vybíráš určitý sloupec a z něj chceš ještě vypisovat další parametr..
Takže by to mělo být nějak tak:
Kód: Vybrat vše
$neznama = mysql_query("SELECT * FROM mmh_file_storage WHERE filename=$filename");
   $data = mysql_fetch_array($neznama);
   $napis = $data["fold"];

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
galax píše:
Jak se tak teď pozorněji dívám, tak ty vybíráš určitý sloupec a z něj chceš ještě vypisovat další parametr..
Takže by to mělo být nějak tak:
Kód: Vybrat vše
$neznama = mysql_query("SELECT * FROM mmh_file_storage WHERE filename=$filename");
   $data = mysql_fetch_array($neznama);
   $napis = $data["fold"];


Ale ani takhle to nefunguje.
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

galax
WD Trader: 4.4/5

Příspěvky: 96
Registrace: 21.04.2012
Tak potom je chyba někde v definování té proměnné. Tenhle SQL dotaz je správně.. Mohl bys poslat kousek kódu, kterým definuješ tu proměnnou $filename?

peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
galax píše:
Tak potom je chyba někde v definování té proměnné. Tenhle SQL dotaz je správně.. Mohl bys poslat kousek kódu, kterým definuješ tu proměnnou $filename?



No já se snažím upravit script na ukládání obrázků, a když jsem se snažil vypsat proměnou, tak se mi normálně po echo $filename proměnná vypsala.

Jinak proměnná je definovaná takto $filename = $mmhclass->image->basename($mmhclass->input->get_vars['file']);
a já se právě v tomto moc nevyznám.

Tento script ukládá všechny obrázky jen do jedné složky, což je špatné. Proto chci, abych třeba po měsíci jen přepsal složku a obrázky se ukládali do ní. Jen že script si bere složku z hlavního nastavení, tak že když změním složku, tak se mi obrázky ve staré složce již nezobrazují (náhledy, nelze generovat odkazy atd.) Proto jsem po dlouhém zkoušení se dostal k tomu, že ve sloupečku fold bude zapsaná složka, kde je obrázek uložen. Ovšem nedokáži teď udělat, aby si script bral místo hlavní složky tu složku, která je v databázi ve sloupečku fold.
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

lukasik
WD Trader: 4/5

Příspěvky: 85
Registrace: 19.02.2011
peeeeta
Uživatelský avatar
WD Trader: 4.83/5

Příspěvky: 2055
Registrace: 02.09.2012
lukasik píše:
co třeba uvozovky? filename='$filename'
mysql_error()?



No vyřešil jsem to takto

Kód: Vybrat vše
$dotaz = 'SELECT * FROM mmh_file_storage WHERE filename ="'.$filename.'"';
   $neznama = mysql_query($dotaz);
   $data = mysql_fetch_array($neznama);
   $napis = $data["fold"];


-- 25. 12. 2012 05:32 --

Tak jsem již skoro všechny změny dokončil a doufám, že bez chyby, jen jedno mi stále nejde, staré obrázky prostě nejdou upravovat, otáčet, ani měnit barva, zrcadlit nic. Z novýma to jde.

Tento kód by se o to měl starat:

Kód: Vybrat vše
   case "imgedit":
         $mmhclass->templ->page_title .= $mmhclass->lang['333'];
         
         if($mmhclass->info->is_user == false){
            $mmhclass->templ->error($mmhclass->lang['002'], true);
         }elseif (!isset($mmhclass->input->get_vars['file_id'])) {
            $mmhclass->templ->error($mmhclass->lang['023'], true);
         }else {$user_check = $mmhclass->db->fetch_array($mmhclass->db->query("SELECT * FROM `[1]` WHERE `file_id` = '[2]' LIMIT 1;", array(MYSQL_FILE_STORAGE_TABLE, (int)$mmhclass->input->get_vars['file_id'])));
         if ($user_check['gallery_id'] !== $mmhclass->info->user_data['user_id']) {
            $mmhclass->templ->error($mmhclass->lang['400'], true);
         }else{
            $file_info = $mmhclass->image->get_image_info($mmhclass->info->root_path.$user_check['fold'].$user_check['dir_name'].$user_check['filename'], true);
            $mmhclass->templ->templ_vars[] = array(
               "FILE_ID" => $user_check['file_id'],
               "IMAGE_WIDTH" => $file_info['width'],
               "IMAGE_HEIGHT" => $file_info['height'],
               "HALF_W" => ($file_info['width'] / 2),
               "FILENAME" => $user_check['filename'],
               "FILE_TITLE" => $user_check['file_title'],
            );
            $mmhclass->templ->output("users", "img_editor_page");
         }
         }
         
         break;
      case "imgedit_process":
         if($mmhclass->info->is_user == false){
            $mmhclass->templ->error($mmhclass->lang['002'], true);
         }elseif (!isset($mmhclass->input->post_vars['file_id'])) {
            $mmhclass->templ->error($mmhclass->lang['023'], true);
         }else {$user_check = $mmhclass->db->fetch_array($mmhclass->db->query("SELECT * FROM `[1]` WHERE `file_id` = '[2]' LIMIT 1;", array(MYSQL_FILE_STORAGE_TABLE, (int)$mmhclass->input->post_vars['file_id'])));
            if ($user_check['gallery_id'] !== $mmhclass->info->user_data['user_id']) {
               die($mmhclass->info->user_data['user_id'].' !== '.$user_check['gallery_id']);
      //      $mmhclass->templ->error($mmhclass->lang['400'], true);
            }else{
               $file_info = $mmhclass->image->get_image_info($mmhclass->info->root_path.$user_check['fold'].$user_check['dir_name'].$user_check['filename'], true);
               if ($mmhclass->input->post_vars['rotate'] == 90 || $mmhclass->input->post_vars['rotate'] == 180 || $mmhclass->input->post_vars['rotate'] == -90) {
                  if ($mmhclass->input->post_vars['rotate'] == 90){ $rt = -90;} if($mmhclass->input->post_vars['rotate'] == -90){ $rt = 90;} if($mmhclass->input->post_vars['rotate'] == 180){ $rt = 180;}
                  if($mmhclass->image->rotateImage($user_check['filename'], $rt , $file_info['extension'], $user_check['dir_name']) == false) {
                     die('ROTATE FAILED');}
               } if ($mmhclass->input->post_vars['grayscale'] == 1 && $mmhclass->input->post_vars['sepia'] == 0) {
                  if($mmhclass->image->grayscaleImage($user_check['filename'], $file_info['width'], $file_info['height'], $file_info['extension'], $user_check['dir_name']) == false) {
                     die('GRAYSCALE FAILED');}
               } if ($mmhclass->input->post_vars['sepia'] == 1) {
                  if($mmhclass->image->grayscaleImage($user_check['filename'], $file_info['width'], $file_info['height'], $file_info['extension'], $user_check['dir_name'],true) == false){
                     die('SEPIA FAILED');}
               }if ($mmhclass->input->post_vars['flip_h'] == 1 &&  $mmhclass->input->post_vars['flip_v'] == 0){
                  if($mmhclass->image->image_flip($user_check['filename'], 'horiz', $user_check['dir_name'], $file_info['width'], $file_info['height'], $file_info['extension']) == false) {
                     die('FLIP H FAILED');}
               }if ($mmhclass->input->post_vars['flip_h'] == 0 &&  $mmhclass->input->post_vars['flip_v'] == 1){
                  if($mmhclass->image->image_flip($user_check['filename'], 'vert', $user_check['dir_name'], $file_info['width'], $file_info['height'], $file_info['extension']) == false) {
                     die('FLIP V FAILED');}
               }if ($mmhclass->input->post_vars['flip_h'] == 1 &&  $mmhclass->input->post_vars['flip_v'] == 1){
                  if($mmhclass->image->image_flip($user_check['filename'], 'both', $user_check['dir_name'], $file_info['width'], $file_info['height'], $file_info['extension']) == false) {
                     die('FLIP BOTH FAILED');}
               }
               die('fine');
            }   
         }
         break;


Poté je ještě několik javascriptů, ale ty snad neukládají obrázek.
Děkuji moc za radu
Pokud jsem ti pomohl přidej mi bod tlačítkem [+]
Wedos aktuální slevy
 CZC slevové kupóny

Pro plnohodnotné využívání fóra, vč. psaní příspěvků se musíte registrovat nebo se přihlásit.
Registrovat se nebo Přihlásit se