phpmydatagrid -bekomm Problem nicht gelöst - Bitte um Hilfe

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • phpmydatagrid -bekomm Problem nicht gelöst - Bitte um Hilfe

    Liebe PHP-Gemeinde,

    als blutiger Anfänger bekomme ich folgendes Problem einfach nicht in den Griff:

    Es handelt sich um PHPMyDatagrid, was ich auf meine Anforderung zugeschnitten habe. Nur schaffe ich es nicht, einen neuen Datensatz abzuspeichern, bei dem ich nur die Hälfte der Felder ausgefüllt habe. Das ist aber zwingend, da ich den Inhalt einiger Felder erst einige Tage später erfahre.

    Hier die index.php

    #################index.php############################################
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>ORGANICS</title>

    <?php

    include ("phpmydatagrid.class.php");
    $objGrid = new datagrid;
    $objGrid -> friendlyHTML();
    $objGrid -> pathtoimages("./images/");
    $objGrid -> closeTags(true);
    $objGrid -> form('employees', true);
    $objGrid -> methodForm("post");
    $objGrid -> total("ek,vk,margin,marginp");
    $objGrid -> searchby("date1,date2,company,article,lotnr,supplier");
    $objGrid -> linkparam("sess=".$_REQUEST["sess"]."&username=".$_REQUEST["username"]);
    $objGrid -> decimalDigits(2);
    $objGrid -> decimalPoint(",");
    $objGrid -> conectadb("localhost", "xxxx", "xxxx", "xxxx");
    $objGrid -> tabla("employees");
    $objGrid -> buttons(true,true,true,true);
    $objGrid -> keyfield("id");
    $objGrid -> salt("Some Code4Stronger(Protection)");
    $objGrid -> TituloGrid("ORGANICS");
    $objGrid -> FooterGrid("<div style='float:center'>&copy; 2007 xxxxxxxxxxxx</div>");
    $objGrid -> datarows(20);
    $objGrid -> paginationmode('mixed');
    $objGrid -> orderby("id", "DESC");
    $objGrid -> noorderarrows();

    $objGrid -> FormatColumn("id", "ID", 6, 6, 2, "3", "left");
    $objGrid -> FormatColumn("date1", "D.Request", 10, 10, 0, "50", "left", "date:dmy:-");
    $objGrid -> FormatColumn("date2", "D.Offer", 10, 10, 0, "50", "left", "date:dmy:-");
    $objGrid -> FormatColumn("timing", "Tmg", 2, 2, 0, "2", "left");
    $objGrid -> FormatColumn("country", "Country", 50, 50, 0, "55", "left", "select:1_Germany:2_ARIAC:3_Armenia:4_Belarussia:5_Belgium:6_Bosnia:7_Bulgaria:8_Croatia:9_CZ-Rep:10_Denmark:11_Egypt:12_England:13_Estonia:14_Finland:15_Greece:16_Hungary:17_Iran:18_Italy:19_KS A:20_Latvia:21_Lithuania:22_Luxembourg:23_Marocco:24_Mauritanien:25_Moldavia:26_Norway:27_Pakistan:2 8_Poland:29_Portugal:30_Romania:31_Russia:32_SaudiArabia:33_Serbia:34_Singapor:35_SlovakRep:36_Slove nia:37_Spain:38_Suomi:39_Sweden:40_Syria:41_Netherlands:42_Tunisia:43_Turkey:44_UAE:45_Ukraina:46_US A");
    $objGrid -> FormatColumn("company", "Company", 30, 30, 0, "70", "left");
    $objGrid -> FormatColumn("article", "Article", 100, 100, 0, "200", "left");
    $objGrid -> FormatColumn("lotnr", "ItemNr", 15, 15, 0, "50", "left");
    $objGrid -> FormatColumn("amount", "Amount", 20, 20, 0, "40", "left");
    $objGrid -> FormatColumn("ek", "EK", 14, 14, 0, "50", "left", "money:&euro;");
    $objGrid -> FormatColumn("vk", "VK", 14, 14, 0, "50", "left", "money:&euro;");
    $objGrid -> FormatColumn("margin", "Margin", 14, 14, 0, "40", "left", "money:&euro;");
    $objGrid -> FormatColumn("marginp", "Marg%", 10, 10, 3, "20", "left", "calc(margin*100)/(ek+1))"); // Division by Zero!!
    $objGrid -> FormatColumn("zahl", "Order", 5, 5, 0, "20", "left", "select:1_YES:2_NO");
    $objGrid -> FormatColumn("supplier", "Supplier", 40, 40, 0,"50", "left");
    $objGrid -> FormatColumn("memo", "Memo", 100, 100, 0, "70", "left");

    $objGrid -> setHeader();
    ?>

    </head>
    <body>

    <?php

    $objGrid -> grid();
    $objGrid -> desconectar();
    ?>
    <a href="javascriptG_resetSearch();">searchreset</a>
    </body>
    </html>
    ####################################################################

    So sieht die MySQL-DB aus:

    ##############MySQL##################################################
    --
    -- Tabellenstruktur für Tabelle `employees`
    --

    CREATE TABLE `employees` (
    `id` int(6) NOT NULL auto_increment,
    `date1` date default NULL,
    `date2` date default NULL,
    `timing` varchar(3) character set utf8 collate utf8_unicode_ci default NULL,
    `country` varchar(50) character set utf8 collate utf8_unicode_ci default NULL,
    `company` varchar(100) character set utf8 collate utf8_unicode_ci default NULL,
    `article` varchar(100) character set utf8 collate utf8_unicode_ci default NULL,
    `lotnr` varchar(15) character set utf8 collate utf8_unicode_ci default NULL,
    `amount` varchar(20) character set utf8 collate utf8_unicode_ci default NULL,
    `ek` float default NULL,
    `vk` float default NULL,
    `margin` float default NULL,
    `marginp` varchar(6) character set utf8 collate utf8_unicode_ci default NULL,
    `zahl` varchar(5) character set utf8 collate utf8_unicode_ci default NULL,
    `supplier` varchar(40) character set utf8 collate utf8_unicode_ci default NULL,
    `memo` varchar(100) character set utf8 collate utf8_unicode_ci default NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1315 ;
    #####################################################################

    Das "Progrämmle" umfasst noch eine phpmydatagrid.class.php, eine dgstyle.css, eine dgscript.js und images. Ich habe schon viel probiert, Einstellungen der MySQL-Tabelle geändert, in der index.php Änderungen vorgenommen, ohne Erfolg. Wenn ich bis auf supplier und memo alle Felder fülle, wird der Datensatz gespeichert. Sobald ich z.B. ein Datum auslasse, geht die Anwendung in Timeout.

    Hoffentlich hat einer von Euch eine Idee, ich wäre sehr dankbar.

    Vielen Dank im voraus.

    Gruß Jens

  • #2
    ich kenne deine datenbank-klasse nicht, aber ich tippe gerade weil du den fehler mit dem ausgelassenen datum ansprichst auf einen falschen wert, der durch die klasse übergeben wird...


    die muss ausdrücklich NULL übergeben... ('' ist nicht NULL und 0 ist nicht NULL)... oder aber ein datum

    das war jetzt zwar nur aus dem bauch raus geraten, aber vielleicht hilfts ja...

    nützlich wäre die fehlermeldung, die mysql zurückgibt (mysql_error())

    greetz, high
    Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
    When everything else fails, manipulate the data...
    Beschriftungen / Großformatdruck / Werbemittel

    Kommentar


    • #3
      Hallo highrise,

      viieeeeelen Dank für diesen Tipp, er ist mehr als brauchbar. Ich habe in der index.php beim Datum und bei den Währungsfeldern den entsprechenden Wert als 0 vorgegeben, und es funktioniert.
      Dein Bauchgefühl war'n Treffer.

      Die Fehlermeldung übrigens war "Timeout" nach 60 sec. (Vorgabe in der phpmydatagrid.class.php).

      Die Software ist von hier:
      http://www.gurusistemas.com/indexdatagrid.php
      Die Anleitung in Deutsch hier:
      http://www.rohrpostkreuzung.de/doku/...man/AufDeutsch
      wen es interessiert.

      index.php:
      ...
      $objGrid -> FormatColumn("date2", "D.Offer", 10, 10, 0, "50", "left", "date:dmy:-", "00-00-0000");
      ...
      $objGrid -> FormatColumn("margin", "Margin", 14, 14, 0, "40", "left", "money:&euro;", "0.00");
      ...

      Nochmals herzlichen Dank

      Gruß Jens

      Kommentar

      Lädt...
      X