SatansEier Geschrieben 27. März 2006 Geschrieben 27. März 2006 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:) Zitieren
SNOWMAN Geschrieben 27. März 2006 Geschrieben 27. März 2006 Wo genau klemmts denn? Beim verbinden der Funktion mit einem Link? oder bei der Ausgabe? Zitieren
geloescht_JesterDay Geschrieben 27. März 2006 Geschrieben 27. März 2006 <?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] Zitieren
~Hawkeye~ Geschrieben 28. März 2006 Geschrieben 28. März 2006 <?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. Zitieren
SatansEier Geschrieben 28. März 2006 Autor Geschrieben 28. März 2006 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:) Zitieren
Whatever Geschrieben 28. März 2006 Geschrieben 28. März 2006 Poste sie halt einfach...sont kann dir eh keiner helfen. Zitieren
SatansEier Geschrieben 28. März 2006 Autor Geschrieben 28. März 2006 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.. Zitieren
geloescht_JesterDay Geschrieben 28. März 2006 Geschrieben 28. März 2006 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. Zitieren
SatansEier Geschrieben 28. März 2006 Autor Geschrieben 28. März 2006 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? Zitieren
Empfohlene Beiträge
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.