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?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...