php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.10.2007, 15:42  
Neuer Benutzer
 
Registriert seit: 09.10.2007
Beiträge: 2
sieberforst
Standard phpmydatagrid

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

PHP-Code:
<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"662"3""left");
$objGrid -> FormatColumn("date1""D.Request"10100"50""left""date:dmy:-");
$objGrid -> FormatColumn("date2""D.Offer"10100"50""left""date:dmy:-");
$objGrid -> FormatColumn("timing""Tmg"220"2""left");   
$objGrid -> FormatColumn("country""Country"50500"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_KSA:20_Latvia:21_Lithuania:22_Luxembourg:23_Marocco:24_Mauritanien:25_Moldavia:26_Norway:27_Pakistan:28_Poland:29_Portugal:30_Romania:31_Russia:32_SaudiArabia:33_Serbia:34_Singapor:35_SlovakRep:36_Slovenia:37_Spain:38_Suomi:39_Sweden:40_Syria:41_Netherlands:42_Tunisia:43_Turkey:44_UAE:45_Ukraina:46_USA");
$objGrid -> FormatColumn("company""Company"30300"70""left");
$objGrid -> FormatColumn("article""Article"1001000"200""left");
$objGrid -> FormatColumn("lotnr""ItemNr"15150"50""left");
$objGrid -> FormatColumn("amount""Amount"20200"40""left");
$objGrid -> FormatColumn("ek""EK"14140"50""left""money:&euro;");
$objGrid -> FormatColumn("vk""VK"14140"50""left""money:&euro;");
$objGrid -> FormatColumn("margin""Margin"14140"40""left""money:&euro;");
$objGrid -> FormatColumn("marginp""Marg%"10103"20""left""calc:((margin*100)/(ek+1))"); // Division by Zero!!
$objGrid -> FormatColumn("zahl""Order"550"20""left""select:1_YES:2_NO");
$objGrid -> FormatColumn("supplier""Supplier"40400,"50""left");
$objGrid -> FormatColumn("memo""Memo"1001000"70""left");

    
$objGrid -> setHeader();
?>

</head>
<body>

<?php

   $objGrid 
-> grid();
    
$objGrid -> desconectar();
?>
[url="javascript:DG_resetSearch();"]searchreset[/url]
</body>
</html>
So sieht die MySQL-DB aus:

Code:
-- 
-- 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

//EDIT by dr.e.: Code hübsch formatiert
sieberforst ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.10.2007, 22:41  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo sieberforst,

zunächst ein Herzliches Willkommen und viel Spass im PHPFriend.de-Forum.

In deinem Posting habe ich zunächst die Code-Fragmente ein wenig editiert, sonst kann man das schlecht lesen (-> [php]- und [code]-Tags). Zudem solltest du die langen Zeilen noch etwas kürzen, sonst scrollt man sich zu tode.

Du erwähnst, dass du dir MyDataGrid für deine Zwecke angepasst hast. Was genau ist das? Zudem verstehe ich nicht ganz, was du mit dem DataGrid erreichen möchtest, da du offensichtlich HTML-Code da rein würgst. Ein DataGrid ist eigentlich nur dazu da Daten (Domain-Objekte einer Anwendung) zu fassen um diese später z.B. einem Controller (Tabellen-Darstellung) zu übergeben. Was du hier mit Formularen machst, scheint mir mehr eine Vergewaltigung dessen.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 09.10.2007, 22:54  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Auch von mir ein Hallo und Willkommen!

Schönes Beispiel übrigens, warum man sich beim Programmieren für eine Sprache entscheiden sollte .. desconectar(), TituloGrid(), ..
Spenglish.

Was hast du denn vor, es gibt doch bereits einige gute OR-Mapper, komplett Englisch, mit Dokumentation, funktionierend, ..
Zergling-new ist offline  
Alt 10.10.2007, 05:52  
Neuer Benutzer
 
Registriert seit: 09.10.2007
Beiträge: 2
sieberforst
Standard

Zunächst mal herzlichen Dank für Eure Antworten und Eure Mühe.
Vorweg: ich habe die Lösung

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

Es existiert immer das gleiche Beispiel, ich musste aber den Aufbau der "Tabelle" anpassen. Bei der Suche bin ich auf das gestossen:
"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"

Nachdem ich meine index.php geändert hatte:

...
$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:€", "0.00");
...

funktionierte es tadellos.

Nochmals vielen Dank

Gruß Jens
sieberforst ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
phpmydatagrid, php datagrid beispiel, phpmydatagrid formatcolumn, phpmydatagrid beispieldaten, php my data grid date, phpmydatagrid deutsch, phpmydatagrid ausgabe leer, dgscripts.js, \phpmydatagrid, phpmydatagrid select, dg_resetsearch(), php datagrid, phpmydatagrid iso 8859, phpmydatagrid.class.php, phpmydatagrid margins, $objgrid -> set, phpmydatagrid formatcolumn select, phpmydatagrid wiki, phpmydatagrid mysql charset, phpmydatagrid nulled

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.