Dodaję np 20 zdjęć, tworze ich miniaturki + 5 treści z pól formularza. W jednym textarea jest np 50tys znaków a w drugim 30tys znaków. Reszta to zwykłe inputy typu tekstowego liczące po pare znaków. Przy tak dużej treści, zdjęcia są wrzucane na serwer, tworzone są miniaturki ale tekst do bazy nie jest dodawany. Oto struktyura tabeli:
Kod
create table gallery (
    id int not null auto_increment primary key,
    gallery_name varchar(30),
    gallery_age int,
    gallery_kind varchar(100),
    gallery_short_desc text,
    gallery_desc text,
    img_main varchar(100),
    date datetime,
    show_gallery int,
    gal_cat int
);
Zapytanie sql
Kod
public function addGallery($tab) {
        return $this->db->query("
            insert into
                gallery
            (gallery_name, gallery_age, gallery_kind, gallery_short_desc, gallery_desc, img_main, date, show_gallery, gal_cat)
            values
                ('".$tab['gallery_name']."',
                 '".$tab['gallery_age']."',
                 '".$tab['gallery_kind']."',
                 '".$tab['gallery_short_desc']."',
                 '".$tab['gallery_desc']."',
                 '".$_FILES['img_main']['name']."',
                 '".date("Y-m-d H:i:s")."',
                 '".$tab['show_gallery']."',
                 '".$tab['gal_cat']."')"
        );
    }
oraz ała metoda obrabiająca i dodajaca treść:
  1. public function addGallery($tab) {
  2. $this->validGallery($tab);
  3.  
  4. if(!file_exists("../gal")) {
  5. mkdir("../gal");
  6. }
  7.  
  8. if(isset($_FILES['img_main']['tmp_name']) && is_uploaded_file($_FILES['img_main']['tmp_name'])) {
  9. if($_FILES['img_main']['type']=="image/png" || $_FILES['img_main']['type']=="image/jpeg" || $_FILES['img_main']['type']=="image/gif") {
  10.  
  11. } else {
  12. $this->msgArray[]="Plik o nazwie ".$_FILES['img_main']['name']." nie jest obrazkiem. Plik powinien mieć rozszerzenie jpg, png lub gif";
  13. }
  14. }
  15.  
  16. if(isset($_FILES['img']['name'])) {
  17. $c=count($_FILES['img']['name']);
  18. $i=0;
  19. while($i<$c) {
  20. if(is_uploaded_file($_FILES['img']['tmp_name'][$i])) {
  21. if($_FILES['img']['type'][$i]=="image/png" || $_FILES['img']['type'][$i]=="image/jpeg" || $_FILES['img']['type'][$i]=="image/gif") {
  22. //move_uploaded_file($_FILES['img']['tmp_name'][$i], "aaa/".$_FILES['img']['name'][$i]);
  23. } else {
  24. $this->msgArray[]="Plik o nazwie ".$_FILES['img']['name'][$i]." nie jest obrazkiem. Plik powinien mieć rozszerzenie jpg, png lub gif";
  25. }
  26. }
  27. $i++;
  28. }
  29. }
  30.  
  31. if(file_exists("../gal/".$tab['gallery_name'])) {
  32. $this->msgArray[]=$this->msg['theSameGallery'];
  33. }
  34.  
  35. if(empty($this->msgArray)) {
  36. $this->db_query->addGallery($tab);
  37.  
  38. $what=($tab['show_gallery']=='0') ? 'gal_hide' : 'gal_show';
  39. $this->db_query->updateStat($what, "add", "+1");
  40.  
  41. //$what=($tab['show_news']=='0') ? 'news_hide' : 'news_show';
  42. //$this->db_query->updateStat($what, "add", "+1");
  43.  
  44. if(!file_exists("../gal/".$tab['gallery_name'])) {
  45. mkdir("../gal/".$tab['gallery_name']);
  46. mkdir("../gal/".$tab['gallery_name']."/thumbs");
  47. } else {
  48. $this->msgArray[]=$this->msg['theSameGallery'];
  49. }
  50.  
  51. move_uploaded_file($_FILES['img_main']['tmp_name'], "../gal/".$tab['gallery_name']."/".$_FILES['img_main']['name']);
  52.  
  53. $img_path="../gal/".$tab['gallery_name']."/".$_FILES['img_main']['name'];
  54. $thumb_path="../gal/".$tab['gallery_name']."/thumbs/".$_FILES['img_main']['name'];
  55. //$max_width=$max_height=100;
  56. $img_attr=getimagesize($img_path);
  57. //if($img_attr[0]>$img_attr[1]){
  58. // $scale=$img_attr[0] / $max_width;
  59. //}else{
  60. // $scale=$img_attr[1] / $max_height;
  61. //}
  62. //$w=floor($img_attr[0]/$scale);
  63. //$h=floor($img_attr[1]/$scale);
  64. $w=250;
  65. $h=140;
  66. $thumb=imagecreatetruecolor($w,$h);
  67. switch($_FILES['img_main']['type']) {
  68. case "image/jpeg": {
  69. imagecopyresampled($thumb, imagecreatefromjpeg($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  70. imagejpeg($thumb,$thumb_path,85);
  71. break;
  72. }
  73. case "image/png": {
  74. imagecopyresampled($thumb, imagecreatefrompng($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  75. //header('Content-type: image/png');
  76. imagepng($thumb,$thumb_path,8);
  77. break;
  78. }
  79. case "image/gif": {
  80. imagecopyresampled($thumb, imagecreatefromgif($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  81. imagegif($thumb,$thumb_path,85);
  82. break;
  83. }
  84. }
  85.  
  86. if(isset($_FILES['img']['name'])) {
  87. $c=count($_FILES['img']['name']);
  88. $i=0;
  89. while($i<$c) {
  90. if(is_uploaded_file($_FILES['img']['tmp_name'][$i])) {
  91. move_uploaded_file($_FILES['img']['tmp_name'][$i], "../gal/".$tab['gallery_name']."/".$_FILES['img']['name'][$i]);
  92.  
  93. $img_path="../gal/".$tab['gallery_name']."/".$_FILES['img']['name'][$i];
  94. $thumb_path="../gal/".$tab['gallery_name']."/thumbs/".$_FILES['img']['name'][$i];
  95. //$max_width=$max_height=100;
  96. $img_attr=getimagesize($img_path);
  97. //if($img_attr[0]>$img_attr[1]){
  98. // $scale=$img_attr[0] / $max_width;
  99. //} else{
  100. // $scale=$img_attr[1] / $max_height;
  101. //}
  102. //$w=floor($img_attr[0]/$scale);
  103. //$h=floor($img_attr[1]/$scale);
  104. $w=250;
  105. $h=140;
  106. $thumb=imagecreatetruecolor($w,$h);
  107. switch($_FILES['img']['type'][$i]) {
  108. case "image/jpeg": {
  109. imagecopyresampled($thumb, imagecreatefromjpeg($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  110. imagejpeg($thumb,$thumb_path,85);
  111. break;
  112. }
  113. case "image/png": {
  114. imagecopyresampled($thumb, imagecreatefrompng($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  115. //header('Content-type: image/png');
  116. imagepng($thumb,$thumb_path,8);
  117. break;
  118. }
  119. case "image/gif": {
  120. imagecopyresampled($thumb, imagecreatefromgif($img_path), 0, 0, 0, 0, $w, $h, $img_attr[0], $img_attr[1]);
  121. imagegif($thumb,$thumb_path,85);
  122. break;
  123. }
  124. }
  125. }
  126. $i++;
  127. }
  128. }
  129. header("Location:/pa/gallery.php?action=ang");
  130. } else {
  131. echo $this->html->showMsg($this->msgArray);
  132. return false;
  133. }
  134. }
Zdjęcia dodawane są zawsze, zawsze tez tworzone są ich miniaturki (niezależnie od długości tekstu) ale jeśli tego tekstu jest wiecej (tak jak pisałem w pierwszych linijkach postu) to już rekord nie jest dodawany. Dlaczego?