Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql] problem z formularzem
Forum PHP.pl > Forum > Przedszkole
kozioł
Witam

mam taki problem:

Mam formularz formularz.php który przekazuje zmienne do skryptu ogólny.php

tam includuje dwa skrypty baza2.php i excel.php , pierwszy wyświetla dane w postaci tabelki na stronie drugi przenosi te dane do excel-a.

Jednak jak w formularzy nacisnę przycisk szukaj , to automatycznie otwiera mi się plik excelowy a nie najpierw strona baza2.php , a potem powinno być tak że jak na niej kliknę link do excel.php to powinno przenieść te dane excela.

Czemu tak jest?

dzieki za pomoc
pozdrawiam
kossa
może jakiś kod dla przykładu podasz...
kozioł
zaczyna sie prostym formularzem :
formularz.php
  1. <?php
  2. <form action = "ogolny.php" method = "POST">
  3.  
  4. <table border="2"cellspacing="1" cellspacing="3"
  5. bgcolor="#3888853535" align="center">
  6. <br>
  7. <br>
  8. <br>
  9. <br>
  10. </br>
  11. </br>
  12. </br>
  13. </br>
  14. <tr>
  15. <td bgcolor="999999"><h3>Rodzaj bazy</h3></td>
  16. <td bgcolor="FFFFFF">
  17. <select name="rodzaj">
  18. <option value="all">Wszystkie</option>
  19. <option value="1">Neo</option>
  20. <option value="2">coś</option>
  21. <option value="3">cosik</option>
  22. </select>
  23. </td>
  24. </tr>
  25. <tr>
  26. </td>
  27. </tr>
  28. </table>
  29. <center>
  30. <br>
  31. <input type="submit" name="Submit" value= "Szukaj">
  32. </br>
  33. ?>



potem jest plik ogólny.php
  1. <?php
  2. include('baza2.php');
  3.  
  4. include('excel.php');
  5. ?>


a następnie powinnien otworzyć się plik baza2.php
  1. <html>
  2. <head>
  3. <title>
  4. Zawartosc bazy
  5. </title>
  6. </head>
  7. <body background="C:Program FilesVertrigoServwwwBAZYDANCYH_plikilgren006.jpg" bgproperties="fixed">
  8. <form action = "rez.php" method = "POST">
  9. <a href="excel.php"><h3>excel</h3></a><h2>
  10. <center>
  11. <H1>ZAWARTOŚĆ BAZY SQL</H1>
  12.  
  13. <?php
  14.  
  15.  
  16.  
  17. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  18. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  19. $rodzaj=$_POST['rodzaj'];
  20. $typ=$_POST['typ'];
  21. $login=$_SESSION['user_logged'];
  22. if($rodzaj=='all')
  23. {
  24. $query = "SELECT * FROM neo WHERE rodzaj != '' and rezultat = '' ";
  25. }
  26. else
  27. {
  28.  
  29. $query = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' and rezultat ='' ";
  30. }
  31. $result = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  32.  
  33.  
  34.  
  35. echo
  36.  
  37. <TABLE BORDER="2">
  38. <TR>
  39. <TH>rodzaj bazy</TH>
  40. <TH>odbiorca</TH>
  41. <TH>rezultat</TH>
  42. </TR>
  43. ';
  44. while ($row = mysql_fetch_array($result))
  45. {
  46. echo '<TR>';
  47.  
  48. echo '<TD>' .$row['rodzaj']. '</TD>';
  49. echo '<TD>' .$row['odbiorca']. '</TD>';
  50. echo '<TD>
  51. <SELECT NAME="' .$row['klient']. '">
  52. <OPTION value=""></option>
  53. <OPTION value="Pozytywny">Pozytywne</option>
  54. <OPTION value="Negatywny">Negatywne</option>
  55. <OPTION value="Nieskuteczny">Nieskuteczne</option>
  56. </SELECT>
  57. </TD>';
  58. echo '</TR>';
  59. }
  60.  
  61. echo '<input type="hidden" name="rodzaj" value="' .$rodzaj. '" /><input type="hidden" name="typ" value="' .$typ. '" />';
  62. echo '</TABLE>';
  63. echo '<input type="submit" value="Zapisz">';
  64.  
  65.  
  66.  
  67. ?>
  68. <a href="formularz.php"><h3>POWRÓT</h3></a><h2>
  69.  
  70. </form>
  71. </CENTER>
  72. </BODY>
  73. </HTML>


a potem jak klikne w link do skryptu excel.php na stronie baza2.php

powinien otowrzyc sie ten plik

excel.php

  1. <?php
  2.  
  3.  
  4.  
  5. $file_type = "vnd.ms-excel";
  6. $file_ending = "xls";
  7. header("Content-Type: application/$file_type");
  8. header("Content-Disposition: attachment; baza.$file_ending");
  9. header("Pragma: no-cache");
  10. header("Expires: 0");
  11.  
  12.  
  13. $now_date = date('d-m-Y H:i');
  14. $title = "Baza $now_date";
  15.  
  16.  
  17. /* Database Connection (Alternative- for mysql_fetch_array) */
  18. $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  19. $result = mysql_select_db("baza1",$conn) or die ("nie mogę poł&plusmn;czyć z baz&plusmn;");
  20.  
  21. $rodzaj=$_POST['rodzaj'];
  22.  
  23.  
  24.  
  25.  
  26. $sql = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' ";
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. $result = @mysql_query($sql,$conn)
  38. or die(mysql_error());
  39. //end of connection code
  40.  
  41. //define separator (defines columns in excel)
  42. $sep = "t";
  43.  
  44. //print excel header with timestamp:
  45. echo("$titlen");
  46.  
  47. //start of printing column names
  48. for ($i = 0; $i < mysql_num_fields($result); $i++) {
  49. echo mysql_field_name($result,$i) . "t";
  50. }
  51. print("n");
  52. //end of printing column names
  53.  
  54. //start while loop to get data
  55. /*
  56. note: the following while-loop was taken from phpMyAdmin 2.1.0.
  57. --from the file "lib.inc.php".
  58. */
  59. $i = 0;
  60. while($row = mysql_fetch_row($result))
  61. {
  62. //set_time_limit(60); // HaRa
  63. $schema_insert = "";
  64. for($j=0; $j<mysql_num_fields($result);$j++)
  65. {
  66. if(!isset($row[$j]))
  67. $schema_insert .= "NULL".$sep;
  68. elseif ($row[$j] != "")
  69. $schema_insert .= "$row[$j]".$sep;
  70. else
  71. $schema_insert .= "".$sep;
  72. }
  73. $schema_insert = str_replace($sep."$", "", $schema_insert);
  74. $schema_insert .= "t";
  75. print(trim($schema_insert));
  76. print "n";
  77. $i++;
  78. }
  79. return (true);
  80.  
  81. ?>



lecz tak się nie dzieje , przez includowanie , plik excel otwiera się już jak kliknę na przycisk szukaj w formularzu , a includowanie musi być aby przekazać zmienne z formularza do skryptu baza2.php i excel.php



nie nie daję sobie rady z tym problemem ,

walcze już kilka dni , i nic mi nie wychodzi , nie mogę za przeproszeniem głupiej tabelki ze strony przesłać do excela. Już nie mam pomysłu jak to inaczej zrobić.

Cały czas mam tak że jak nacisne szukaj w formularzu to otwiera sie plik excelowy , który przedastwaia

stronę baza2.php(nie wiem czemu) , zamiast właśnie wykłej strony baza2.php.

może wiecie jak rozwiązać ten problem , amoże ktos robił podobne rozwiązania u siebie. ?

dziękuję z góry za pomoc


pozdrawiam
uli
Z ogolny.php usuń

  1. <?php
  2. include('excel.php');
  3. ?>


biggrin.gif:D
kozioł
ale w takim wypadku do skryptu excel.php nie dotrze wartość z pliku formularz.php
uli
Jak to nie?

Jedyne co przesyłasz z kwestionariusza to $rodzaj

A co masz w baza2.php?

  1. <?php
  2. $rodzaj=$_POST['rodzaj'];
  3.  
  4. echo '<input type="hidden" name="rodzaj" value="' .$rodzaj. '" /><input type="hidden" name="typ" value="' .$typ. '" />';
  5. ?>


Jak na moje dojdzie...
kozioł
jak tak zrobię tak jak mówiłeś to do baza2.php , wartość "rodzaj" dojdzie , i dochodzi sprawdziełm

ale juz nie dojdzie ta wartość do pliku skryptu excel.php , i nie dochodzi bo jak klikne w link ze skryptu baza2.php kótry odwołuje sie do excel.php to wyświetlaję sie tylko nagłówki z bazy bez wartości , czyli zmienna jest pusta. I się nie dziwię bo w tym wypadku jak usunąłem z pliku ogólny.php includowanie 'excel.php' to nie ma juz nigdzie przekazywania zmiennej z formularza do pliku excel.php

i właśnie z tym sie męczę , przecież musi być jakiś sposób na to rowiązanie , na nie jednej stronie widzaiłem motyw gdzie była wyświetlana zawrtość bazy na stronie i można ją było wysłać do excela przyciskając jakiś przycisk.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.