php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-06-2008, 11:30
Anubis1403
 Newbie
Links : Onlinestatus : Anubis1403 ist offline
Registriert seit: Jun 2008
Ort: Austria
Beiträge: 6
Anubis1403 ist zur Zeit noch ein unbeschriebenes Blatt
Angry While Schleife im Spreadsheet Excel Writer

Hallo!

Ich habe ein GROSSES Problem, ich möchte die Daten aus meiner SQL Tabelle mit der while Schleife auslesen und sie dann mit dem Excel Writer in eine Excel Tabelle exportieren.

Mein Script was ich im moment zusammengebastelt habe sieht so aus:

include_once "Spreadsheet/Excel/Writer.php";

$xls =& new Spreadsheet_Excel_Writer();
$xls->send("Liste.xls");

$sheet =& $xls->addWorksheet('Test results');
$format =& $xls->addFormat();
$format->setBold();
$format->setColor("black");
$sheet->write(0,0,"Nachname",$format);
$sheet->write(0,1,"Vorname",$format);
$sheet->write(0,2,"Straße",$format);
$sheet->write(0,3,"PLZ",$format);
$sheet->write(0,4,"Ort",$format);

include('verbindung.php');
$sql="SELECT * FROM `mitglieder` WHERE `status` = 'Aktives'";
$abfrage=mysql_query($sql);
for ( $i = 1; $i <= 50; ++$i ){
while ($ergebnis=mysql_fetch_array($ergebnis)){
$sheet->write($i,0,$ergebnis['vorname']);
$sheet->write($i,1,$ergebnis['nachname']);
$sheet->write($i,2,$ergebnis['strasse']);
$sheet->write($i,3,$ergebnis['plz']);
$sheet->write($i,4,$ergebnis['ort']);
}}

$xls->close();

Es wird mir zwar eine xls Datei zum Download angeboten jedoch wenn ich sie öffne, dann steht da nichts drin.

Ich danke schon einmal für jede HILFE!
Mit Zitat antworten
  #2 (permalink)  
Alt 18-06-2008, 11:47
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

1. Amtshandlung: Die generierte Excel-Datei in einem Editor anschauen. Mit großer Sicherheit steht dort ein PHP-Fehler drin.
Mit Zitat antworten
  #3 (permalink)  
Alt 18-06-2008, 12:01
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Der einzige Grund, den ich mir vorstellen kann, ist, dass die Abfrage nichts zurückgibt. Hast du sie mit einem SQL-Monitor getestet?
Andernfalls würdest du vermutlich 50 mal die letzte Zeile erhalten (weil du für jede Zeile durch alle Datensätze iterierst.) Bei einem anständig formatierten Code wäre das auch sofort ersichtlich.
EDIT:

Stimmt natürlich nicht, da der DB-Cursor ja dann nach der ersten Zeile abgearbeitet ist, kommt nachher natürlich nichts mehr

__________________
Gruss
H2O

Geändert von H2O (18-06-2008 um 12:04 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 09-07-2008, 18:44
Anubis1403
 Newbie
Links : Onlinestatus : Anubis1403 ist offline
Registriert seit: Jun 2008
Ort: Austria
Beiträge: 6
Anubis1403 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok habe den ersten Feheler gefunden, hatte im mysql_fetch_array die falsche Variabel drin stehen.

jetzt zeigt es mir meine datensätze zwar an jedoch mit ganz vielen Kästechen, Y und sonstigen Zeichen dazwischen. an was könnte das wieder liegen hier nochmals das verbesserte Script:

<?php
include_once "Spreadsheet/Excel/Writer.php";



$xls =& new Spreadsheet_Excel_Writer();
$xls->send("Liste.xls");

$sheet =& $xls->addWorksheet('mitglieder');

$format =& $xls->addFormat();
$format->setBold();
$format->setColor("black");

$sheet->write(0,0,"Nachname",$format);
$sheet->write(0,1,"Vorname",$format);
$sheet->write(0,2,"Straße",$format);
$sheet->write(0,3,"PLZ",$format);
$sheet->write(0,4,"Ort",$format);

$a = 0;
$b = 0;
$c = 0;
$d = 0;
$e = 0;

include('verbindung.php');
$sql="SELECT * FROM `mitglieder` WHERE `status` = 'Aktives'";
$abfrage=mysql_query($sql);

while ($ergebnis=mysql_fetch_array($abfrage)){

$nachname=$ergebnis['nachname'];
$vorname=$ergebnis['vorname'];
$strasse=$ergebnis['strasse'];
$plz=$ergebnis['plz'];
$ort=$ergebnis['ort'];

$sheet->write($a++,0,$nachname);
$sheet->write($b++,1,$vorname);
$sheet->write($c++,2,$strasse);
$sheet->write($d++,3,$plz);
$sheet->write($e++,4,$ort);
}

$xls->close();
?>

Mit Zitat antworten
  #5 (permalink)  
Alt 09-07-2008, 18:48
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Poste mal ein fertiges XLS.
Mit Zitat antworten
  #6 (permalink)  
Alt 10-07-2008, 12:30
Anubis1403
 Newbie
Links : Onlinestatus : Anubis1403 ist offline
Registriert seit: Jun 2008
Ort: Austria
Beiträge: 6
Anubis1403 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hier ist die Excel Datei!
Angehängte Dateien
Dateityp: zip liste.zip (644 Bytes, 302x aufgerufen)
Mit Zitat antworten
  #7 (permalink)  
Alt 10-07-2008, 13:02
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Hmm nee kein Plan was das ist
Ich würde auf irgendeine Zeichensatz-Geschichte tippen (UTF-8-Daten aus der Datenbank o.ä. - Codierungen überprüfen).
Was ist das für Zeug hinter dem "?>" ?
Mit Zitat antworten
  #8 (permalink)  
Alt 10-07-2008, 13:10
Anubis1403
 Newbie
Links : Onlinestatus : Anubis1403 ist offline
Registriert seit: Jun 2008
Ort: Austria
Beiträge: 6
Anubis1403 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das ist nichts. ist irgenwie da rein gekommen. keine Ahnung.
Danke für deinen lösungsversuch.

NÄCHSTER BITTE
Mit Zitat antworten
  #9 (permalink)  
Alt 10-07-2008, 13:11
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Bitte!

Zitat:
Original geschrieben von Anubis1403
Das ist nichts. ist irgenwie da rein gekommen. keine Ahnung.
Das hast du aber rausgenommen und es dann nochmal probiert?

Zitat:
Danke für deinen lösungsversuch.
Du hast die hälfte von dem, was ich geschrieben habe, ignoriert. Wie siehts aus mit den Zeichensätzen?

Geändert von pekka (10-07-2008 um 13:14 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 11-07-2008, 14:16
Anubis1403
 Newbie
Links : Onlinestatus : Anubis1403 ist offline
Registriert seit: Jun 2008
Ort: Austria
Beiträge: 6
Anubis1403 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Kästchen musste ich nich rausnehmen denn sie sind gar nicht im Script. Das ist irgendwie beim Kopieren in dieses Forum passiert

Ich benutze den ganz normalen Zeichensatz mit Ä,Ö,Ü,ß.

Welchen Zeichensatz würdest denn du empfehlen?

Muss mann einen bestimmten für Excel verwenden?
Mit Zitat antworten
  #11 (permalink)  
Alt 11-07-2008, 14:41
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Mit welchem Zeichensatz sind die Daten in der mySQL-Datenbank gespeichert. Das siehst du im phpMyAdmin.
Mit Zitat antworten
  #12 (permalink)  
Alt 11-07-2008, 17:12
Anubis1403
 Newbie
Links : Onlinestatus : Anubis1403 ist offline
Registriert seit: Jun 2008
Ort: Austria
Beiträge: 6
Anubis1403 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das hier ist mein Zeichensatz in meiner MySQL Tabelle

latin1_general_ci
Mit Zitat antworten
  #13 (permalink)  
Alt 08-08-2008, 11:26
Adam55555
 Newbie
Links : Onlinestatus : Adam55555 ist offline
Registriert seit: Aug 2008
Beiträge: 2
Adam55555 ist zur Zeit noch ein unbeschriebenes Blatt
Question

Hallo

ich hab ein probl. hab folgende skript:

<?php


include ("./open.inc.php");

echo

"<br>".


"<font >Liste der Betriebe</font>".

"<br>".
"<br>".


"<table border='1'><tr><td>";



$teil = mysql_query("SELECT * FROM arbeitg ",$conn);


echo "<table cellspacing='0' cellpadding='3' border='1' >". // align='center'


"<tr>".
"<td>".
"<a href='./Betrieb.xls'><img src='excel.jpg' width='25' height='25' border='0' alt=''></a>".
"</td>".
"</tr>".

"</table>".

"</td>".
"</tr>".

"</table>";




require_once 'Spreadsheet/Excel/Writer.php';

// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer('Betrieb.xls');

// sending HTTP headers
$workbook->send('Betrieb.xls');

// Creating a worksheet
$worksheet =& $workbook->addWorksheet('Betrieb');

$format_tableueberschrift =& $workbook->addFormat();
$format_tableueberschrift->setBold();
$format_tableueberschrift->setSize(12);

$format_ueberschrift =& $workbook->addFormat();
$format_ueberschrift->setBold();


// Die aktuelle Daten

$worksheet->write(0, 0, 'Betriebsname',$format_tableueberschrift);
$worksheet->write(0, 1, 'Strasse',$format_tableueberschrift);
$worksheet->write(0, 2, 'PLZ',$format_tableueberschrift);
$worksheet->write(0, 3, 'Ort',$format_tableueberschrift);
$worksheet->write(0, 4, 'Tel. 1',$format_tableueberschrift);
$worksheet->write(0, 5, 'Tel. 2',$format_tableueberschrift);
$worksheet->write(0, 6, 'Fax',$format_tableueberschrift);
$worksheet->write(0, 7, 'E-Mail',$format_tableueberschrift);
$worksheet->write(0, 8, 'Ansp. Partner',$format_tableueberschrift);
$worksheet->write(0, 9, 'Wann am besten?',$format_tableueberschrift);




$anz = 1;
while($row = @ mysql_fetch_array($teil))
{
$worksheet->write($anz, 0, $row[betrieb]);
$worksheet->write($anz, 1, $row[Str]);
$worksheet->write($anz, 2, $row[plz]);
$worksheet->write($anz, 3, $row[ort]);
$worksheet->write($anz, 4, $row[tel]);
$worksheet->write($anz, 5, $row[tele]);
$worksheet->write($anz, 6, $row[fax]);
$worksheet->write($anz, 7, $row[mail]);
$worksheet->write($anz, 8, $row[ansp]);
$worksheet->write($anz, 9, $row[wanereich]);

$anz ++;
}

$workbook->close();


?>

auf localhost funkt wie eins aber auf Linux Server nicht. Da gibt er nur in Server rein kopierten Excel datei wieder.

Frage: wie so funkt es auf den Server nicht? (es kann nicht mit Linux zutun haben oder?)
Mit Zitat antworten
  #14 (permalink)  
Alt 08-08-2008, 11:28
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Da gibt er nur in Server rein kopierten Excel datei wieder.

Kannst Du das nochmal verständlich wiederholen?
Mit Zitat antworten
  #15 (permalink)  
Alt 08-08-2008, 11:41
Adam55555
 Newbie
Links : Onlinestatus : Adam55555 ist offline
Registriert seit: Aug 2008
Beiträge: 2
Adam55555 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also ich hab den "Betrieb.xls" aud den Server gepackt. und jetzt bekomme ich die selber inhalt immer wieder und es wird nicht aktualliesiert.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:44 Uhr.