php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.10.2005, 08:49  
Gast
 
Beiträge: n/a
Standard [solved]Array Problem

Hi,

mal wieder ein Problem:
--
Der untenstehende Code generiert ein PDf.
funktioniert soweit auch alles, bis ich auf die Idee kam den Preis zu formatieren.

Ihr seht im Code noch die alte Variante (old Style) die 1a ging
und der neue Versuch.

Problem hierbei:
--
Der Tabellenheader wird nicht mehr richtig benannt.
D.h. ich habe irgendwie & wo ein Fehler mit meinem Array. und somit wird der Tabelheader im Array Stile benannt.

Sprich, die Tabelle sieht so aus.
----
Header: 0 1 <--FALSCH



Mir ist Klar das der Fehler an dem Array (data & tmp) liegen muss,
aber wie & wo ist mir wiederrum nicht klar.

jmd ne idee ?
Ich bastel an dem Ding schon seit Tagen rum, werd aber nicht schlau draus

Danke

Gruss

fidel_


PHP-Code:
<?php
// DB cfg 
include 'inc/config.php';
//
error_reporting(E_ALL);
//  PDF PHP classe 
include './pdf_php_0_09/class.ezpdf.php';
//
$pdf =& new Cezpdf('a4');
// Font 
$pdf->selectFont('./pdf_php_0_09/fonts/Helvetica');    
// Connect  DB 
@mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
//
// errechne das Vorjahr
$query                    "SELECT EXTRACT(YEAR FROM CURDATE())-1";
$result                     mysql_query($query);
$row                        mysql_fetch_array($result);
    
$query "         SELECT            KIS_kostenstelle.kostenstelle_id    AS 'KST-Nr.',
KIS_kostenstelle.kostenstelle_bezeichnung    AS 'KST-Name',
KIS_artikel.artikel_datev_nummer        AS 'Datev-Nr.',
KIS_artikel.artikel_inv_nummer            AS 'Inv-Nr.',
KIS_artikel.artikel_bezeichnung            AS 'Bezeichnung',
date_format(KIS_artikel.artikel_kaufdatum, '%d.%m.%Y')    AS 'Rech.-datum',
REPLACE(KIS_artikel.artikel_einkaufspreis,'.',',') AS 'EK-Preis'
FROM          KIS_artikel,
           KIS_kostenstelle
WHERE        artikel_kaufdatum LIKE '"
.$row[0]."%'    AND
           KIS_kostenstelle_kostenstelle_id = kostenstelle_id
ORDER BY     KIS_kostenstelle_kostenstelle_id ASC,
           artikel_kaufdatum ASC     
           "
;

//
//init des arrays
$data = array();
// Do Query
$result mysql_query($query);
//ist der result identifier korrekt ?
if (!$result
{
   echo 
mysql_error();
   exit;
}
//
   
// NEW -STYLE- WRECKED
while($tmp mysql_fetch_assoc($result)) 

$data[] = array($tmp['KST-Nr.'] ,$tmp['KST-Name'],$tmp['Datev-Nr.'],$tmp['Inv-Nr.'],$tmp['Bezeichnung'],$tmp['Rech.-datum'],number_format($tmp['EK-Preis'],2,',','.')); 
}
   
// OLD WORKING STYLE !!!!!!!!!!!!!!
// problem here: float-value  is  bad formated
//while($data[] = mysql_fetch_array($result, MYSQL_ASSOC)) {}
     
$tableoptions = array

'width' => 500,
'shaded' => 2,         
'showHeadings' => 1,            // zeig Überschriften der spalten    
'showLines'=>2,              // Mach Linien
'lineCol' => array(0.0,0.0,0.0),    // Linienfarbe, hier schwarz  
'xPos'=> 50,  
'xOrientation'=>'right',  
'fontSize' => 10,              // schriftgroesse
'titleFontSize' => 12,                // schriftgroesse überschrift 
'splitRows' => 0,  
'protectRows'=>2,  
'innerLineThickness' => 0.5
'outerLineThickness' => 0.5,   
'rowGap' => 1,  
'colGap' => 5,  
'cols' => array
(
'KST-Nr.'    =>array('justification'=>'left','width'=>50),
'KST-Name'    =>array('justification'=>'left','width'=>100),
'Datev-Nr'    =>array('justification'=>'left','width'=>50),
'Inv-Nr.'    =>array('justification'=>'left','width'=>50), 
'Bezeichnung'    =>array('justification'=>'left','width'=>100),
'Rech.-datum'    =>array('justification'=>'right','width'=>100),
'EK-Preis'    =>array('justification'=>'right','width'=>50),
    ),      
) ; 
//
//
$pdf->ezTable($data,'','',$tableoptions );     
// make table
// $pdf->ezTable($data);
//
// do output
if (isset($d) && $d)
{
 
$pdfcode $pdf->output(1);
 
$pdfcode str_replace("\n","\n
"
htmlspecialchars($pdfcode));
 echo 
'<html><body>';
 echo 
trim($pdfcode);
 echo 
'</body></html>';
}
else
{
 
$pdf->stream();
}
?>

danke fürs lesen



EDIT:
PHP-Code:
<?php

//bla
//morebla

// REWORK
   
$i 0;
    while(
$tmp mysql_fetch_array($result))
    {
        
$data[$i]['KST-Nr.']         = $tmp['KST-Nr.'];
        
$data[$i]['KST-Name']         = $tmp['KST-Name'];
        
$data[$i]['Datev-Nr.']         = $tmp['Datev-Nr.'];
             ........
        
$i $i+1;
    }
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.10.2005, 10:08  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Also ich würde ja einfach mal in die Arrays reinschauen, um herauszufinden, wo der Unterschied zwischen der funktionierenden Version und der anderen ist.

var_dump() ist dein Freund.

Ich tippe darauf, dass das Array, dass Du mit array() zusammenbaust, nicht assoziativ sondern numerisch ist.
http://de3.php.net/manual/en/function.array.php

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21515

moved to PHP - Anfänger
__________________
mod = master of disaster
Waq ist offline  
Alt 19.10.2005, 16:17  
Gast
 
Beiträge: n/a
Standard

also:

der funktionierende Code:
PHP-Code:
<?php
// bla
while($data[] = mysql_fetch_array($resultMYSQL_ASSOC)) {}
//bla
?>
Bei Einsatz von VAR_DUMP($data) kriege ich die 2 Datensätze zu sehn die selektiert werden, ohne Header, die aber sauber sichtbar sind in der Tabelle


der buggy Code im Bezug auf Tabellenheader:
PHP-Code:
<?php
// bla
while($tmp mysql_fetch_assoc($result))  
   { 
       
$data[] = array($tmp['KST-Nr.'] ,$tmp['KST-Name'],$tmp['Datev-Nr.'],$tmp['Inv-Nr.'],$tmp['Bezeichnung'],$tmp['Rech.-datum'],number_format($tmp['EK-Preis'],2,',','.')); 
   }
//bla
?>
Bei Einsatz von VAR_DUMP($data) kriege ich die 2 Datensätze zu sehn die selektiert werden, ohne Header, die NICHT sichtbar sind in der Tabelle

SPRICH: var_dump bringt mich kein bisschen weiter.

@ Mod/Admin
Ich habe die Frage ins fortgeschrittene gestellt, weil offensichtlich keiner im Beginner damit was anfangen kann, aber naja. dann halt nicht.



gruss
fidel_
 
Alt 19.10.2005, 16:41  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Ich kann mir, mit Verlaub, nicht erklären, wie Du die Unterschiede zwischen den Arrays nicht sehen kannst, obwohl ich Dir verraten habe, worauf Du achten sollst. Ist schon bezeichnend, dass Du die var_dump()s hier nicht postest, denn beim reinen nebeneinanderstellen sollte man sehen, dass die var_dump()s nicht gleich sind.
Ich hab Dir sogar nen Link zu nem Beispiel gegeben, wie man assoziative Arrays baut... mit soviel Lernresistenz hast Du im Fortgeschrittenen-Forum einfach nichts verloren.
Aber es ist ja einfacher, die Schuld auf die Helfer zu schieben, als selber zu denken.

Zitat:
Zitat von fidel_
dann halt nicht.
Eben.
__________________
mod = master of disaster
Waq ist offline  
Alt 19.10.2005, 17:27  
Gast
 
Beiträge: n/a
Standard

@ Waq:
--
also nur soviel dazu:

Eventuell habe ich beim testen einen Fehler gemacht, das mag sein
(werde das morgen nochmal durchspielen).
Ich bin es aber durchgegangen,
nur wollte ich das 2mal posten von dem in meinen Aufen selben Output sparen.

ABER: deine Rhetorik lässt doch sehr zu wünschen übrig. Ich habe selbst lange genug Moderator tätigkeiten ( andere thematik) ausgeübt dass ich nachvollziehen kann,
dass der eine oder andere beitrag einem manchma das Messer in derhose aufgehen lässt.

Mann sollte dabei aber nicht vergessen, eine bestimmte Form zu wahren.
Im Gegensatz zu dir nehme ich mir nicht das Recht heraus, aufgrund von Forenbeiträgen andere Leute zu charakterisieren, obwohl auch bei deinem Antwortstil gewisse Interpretationsmöglichkeiten offen/nahe liegen.

Soviel dazu.


Was ich om oberen Post vergessen habe:
--
- ein dank für den Tip
- Ausführliche Begründung warum ich im "falschen " forum gepostet habe

und diese Fehler lasse ich mir auch gerne ankreiden.


so ich hoffe wir könne jetzt wieder sachlich miteinader umgehn.
PUNKT.


gruss
fidel_
 
 


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:11 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.