Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

ich hab ein "formular" (index.php) in das ich ne function schreiben will und diese auch im selben "formular" nach dem motto;

if(button geklick){führe function aus} auführen möchte.

die function gibt meine aktuelle tabelle als .csv in excel aus.

wär cool wenn mir einer bei der syntax weiterhelfen kann:)

Geschrieben

<?php

if ($_GET["action"]=="print")
{
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename: Tabelle.csv;");
read("tabelle.csv"); // Oder wie auch immer du die Tabelle ausgibst
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>mein Dokument</title>
...
<a href="<?php echo $_SERVER["php_self"]; ?>?action=print"> Tabelle</a>
...
</html>
<?php
}
?>
[/php]

Geschrieben

<?php
[COLOR="Red"]<--bösefalle[/COLOR]
if ($_GET["action"]=="print")
{
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename: Tabelle.csv;");
read("tabelle.csv"); // Oder wie auch immer du die Tabelle ausgibst
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>mein Dokument</title>
...
<a href="<?php echo $_SERVER["php_self"]; ?>?action=print"> Tabelle</a>
...
</html>
<?php
}
?>
[/php]

Durch den Absatz nach dem <?php wird der header- Befehl nen Fehlerausgeben. Der kann nicht gesendet werden, wenn der Header bereits wegen dem Leerzeichen, Absatz oder html, gesendet wurde.

Geschrieben

das problem ist folgendes:

in meiner index.php gibt es die variable

$query="SELECT * FROM ma_au WHERE ". $query_where;

dessen wert ich irgendwie an meine excel.php übergeben muss, um die aktuelle tabelle mit rücksicht auf die suchfunktionen auszugeben. (es soll nicht die ganze tabelle als .csv ausgegeben werden, sondern nur die nach der suche)

sollte jemand zeit und lust haben sich meine beiden codes anzusehen werd ich sie gerne posten:)

Geschrieben

INDEX:

session_start();
include("config.inc.php");
?>

<html>
<head><title>index</title></head>
<body>
<font face="VERDANA,ARIAL,HELVETICA" size="1">
<?
include("header1.php");

$db=mysql_connect($db_host,$db_user,$db_pw);
mysql_select_db($db_name);
$i=0;
// usertabelle abfragen
$result=mysql_query("SELECT * FROM users_tab WHERE id_user ='".$_SESSION['user']."'");
echo mysql_error();
$line=mysql_fetch_assoc($result);
// print_r($line);
if($line['password_user']!=$_SESSION['pw'] or $_SESSION['pw']==""){
// kein gueltiger user, also login anzeigen
$output=implode(file("login.php"),"");
echo $output;
}

elseif($line['user_type_user'] == 6){
?><center>Sie haben nicht die erforderlichen Rechte!</center><?
}



else{
$typ=$line['user_type_user'];

?><FORM NAME="aceButton"><INPUT TYPE="BUTTON" VALUE="Logout"
onClick="self.location.href=('logout.php')"></FORM><?
if($typ==5)
{
?><FORM NAME="aceButton"><INPUT TYPE="BUTTON" VALUE="Useradministration"
onClick="self.location.href=('admin.php')"><?
}

if($typ==2 or $typ==4 or $typ==5 ){
?><INPUT TYPE="BUTTON" VALUE="Neuer Datensatz"
onClick="self.location.href=('add.php')"><? }

if($typ==3 or $typ==4 or $typ==5){
?><INPUT TYPE="BUTTON" VALUE="Exceltabelle anlegen"
onClick="self.location.href=('excel.php')"><br>
<?
}

$ende=14;
?><br><?
?><INPUT TYPE="BUTTON" VALUE="Suche zurücksetzen"
onClick="self.location.href=('index.php')"></FORM><?
//dropdown zusammenbasteln
for($i=0;$i<$ende;$i++){

$dropdown.="<option value='".$auswahl[$i]['intern']."'>".$auswahl[$i]['anzeige']."</option>";
}
$dropdown.=" </select>";

?><form action="index.php" method="POST"><?

// Auswahlmenu
$i=0;
while($_POST["suche".$i]!=""){
echo "<select name='auswahl".$i."' value='".$_POST["auswahl".$i]."'>";
$dropdown_new=str_replace("value='".$_POST["auswahl".$i]."'","value='".$_POST["auswahl".$i]."' selected",$dropdown);
echo $dropdown_new;
echo "<input type='text' name='suche".$i."' value='".$_POST["suche".$i]."'><br>";
$i++;
}
// es soll imemr ein leeres suchfeld geben
echo "<select name='auswahl".$i."'>";
echo $dropdown;
echo "<input type='text' name='suche".$i."' >";
echo "<input type='submit'><br>";
echo"</form>";
?>

<? $query = "SELECT * FROM ma_au";
$res = mysql_query($query);
$num = mysql_num_rows($res);

$farbe1 = "#F5F5F5";
$farbe2 = "#FAFAFA";

for($i = 0; $i < $num; $i++)
{
?><table border="1" frame="box" cellspacing="2" cellpadding="2" rules="all">
<tr>
<?
}

?>

<?
if($typ == 2 or $typ == 4 or $typ == 5){$tabellenkopf="<td bgcolor='#F7F7F7' align='center'></td>";}
else
{$tabellenkopf="<td bgcolor='#F5F5F5' align='center'></td>";}

for($i=0;$i<$ende;$i++){
//farbauswahl in der kopfzeile
if ($i<14) { $tabellenkopf.= "<td bgcolor='#FBE604'>";}
elseif($i>=14 and $i< 16) { $tabellenkopf.= "<td bgcolor='#3CC31A'>";}
elseif($i>=16 and $i< 22) { $tabellenkopf.= "<td bgcolor='#1C708D'>";}
elseif($i>=22 and $i< 28) { $tabellenkopf.= "<td bgcolor='#731C8D'>";}
elseif($i>=28 and $i< 30) { $tabellenkopf.= "<td bgcolor='#6D8D1C'>";}
elseif($i>=30) { $tabellenkopf.= "<td bgcolor='#6D1D1C'>";}
else{$tabellenkopf.= "<td>";};
$tabellenkopf.= $auswahl[$i]['anzeige'];
$tabellenkopf.= "</td>";
}

//suchquery zusammenbasteln
$i=0;
while($_POST["suche".$i]!=""){
if($i==0)
{
$query_where=mysql_escape_string($_POST["auswahl".$i])." like '%".mysql_escape_string($_POST["suche".$i])."%'";
}else{
$query_where.=" AND ".mysql_escape_string($_POST["auswahl".$i])." like
'%".mysql_escape_string($_POST["suche".$i])."%'";
}
$i++;
}
if($i==0){
$query="SELECT * FROM ma_au where 1";
}else{
$query="SELECT * FROM ma_au WHERE ". $query_where;
}

//ausgabe query
$result=mysql_query($query);
echo mysql_error();


if(mysql_num_rows($result)==0){
echo" kein Datensatz gefunden";
}else{
echo $tabellenkopf;
for($i=0;$i<mysql_num_rows($result);$i++){
$line=mysql_fetch_assoc($result);



//print_r($line);


$tabelleninhalt.="<tr>";
$tabelleninhalt.="<td bgcolor='#F7F7F7'><a href='detail.php?ma_nr=".$line[$auswahl[0]['intern']]."'>
<img src='./images/detail.gif' border='0'</a>";

if($typ == 2 or $typ == 4 or $typ == 5){

$tabelleninhalt.="<a href='del.php?ma_nr=".$line[$auswahl[0]['intern']]."'>
<img src='./images/del.png' border='0'</a>";
$tabelleninhalt.="<a href='edit.php?ma_nr=".$line[$auswahl[0]['intern']]."'><img src='./images/edit.png'
border='0'</a></td>";
}


$tabelleninhalt.="<td ma_nr=".$line[$auswahl[0]['intern']]."'>".$line[$auswahl[0]['intern']]."</a></td>";

for($j=1;$j<$ende;$j++)
{
// datumsüberprüfung ob datum 0000-00-00
if($j==8 or $j==9 or $j==10 or $j==11)
{
if($line[$auswahl[$j]['intern']]=="0000-00-00")
{
$tabelleninhalt.="<td> </td>";
}else{
//$tabelleninhalt.="<td>".$line[$auswahl[$j]['intern']]."</td>";
$tabelleninhalt.="<td>".date("d.m.Y",strtotime($line[$auswahl[$j]['intern']]))."</td>";
}
}else{
$tabelleninhalt.="<td>".$line[$auswahl[$j]['intern']]."</td>";
}
}
$tabelleninhalt.="</tr>";

}
echo $tabelleninhalt."<table>";
}
}
?>
</font>
</body>
</html>[/PHP]

EXCEL:

[PHP]<?
ob_start();
session_start();
include ("config.inc.php");
include ("index.php");



$head='';
$excel=FOPEN("excel.csv", "w");
for($i=0;$i<35;$i++)
{
$head = $head.$auswahl[$i][anzeige].';';
}
FWRITE($excel, $head."\n");

$result=mysql_query($query);
for($j=0;$j<mysql_num_rows($result);$j++)
{
$line=mysql_fetch_assoc($result);
$data = '';
for($i=0;$i<35;$i++)
{
$data = $data.$line[$auswahl[$i][anzeige]].';';
}
FWRITE($excel, $data."\n");
}
FCLOSE($excel);


header("Location: excel.csv");
ob_end_flush();
?>

Wie man erkennen gibt es von der index nur einen link zur excel.php..

Geschrieben
Durch den Absatz nach dem <?php wird der header- Befehl nen Fehlerausgeben.

Ich kenn es umgekehrt... ein Absatz bzw. HTML-Code vor dem <?php bewirkt eine Ausgabe. Da <?php aber ganz am Anfang vom Dokument steht, und Leerzeilen innerhalb des php-Abschnittes php nicht zu einer Ausgabe animieren, gibt es mit meinem Code oben keinen Fehler.

Geschrieben

diesen


$query_where=mysql_escape_string($_POST["auswahl".$i])." like '%".mysql_escape_string($_POST["suche".$i])."%'";
[/PHP]

suchbefehl aus der index.php möchte ich an excel übergeben...

...nur wie?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...