Két php közötti kapcsolat
Sziasztok,
Abban szeretném a segítésgeteket kérni, hogy hogyan tudom megvalósítani azt, hogy az egyik php-ben szereplő lekérdezés(SQL) eredményére tudjak hivatkozni egy másik phpben ?!
Válaszokat előre is köszönöm !
■ Abban szeretném a segítésgeteket kérni, hogy hogyan tudom megvalósítani azt, hogy az egyik php-ben szereplő lekérdezés(SQL) eredményére tudjak hivatkozni egy másik phpben ?!
Válaszokat előre is köszönöm !
Rengeteg megoldás létezik rá,
smokey válasz
{
$valueToSearch = $_POST['valueToSearch'];
$query = "SELECT * FROM `adattable` WHERE CONCAT (`adat1`, `adat2`, `adat3`, `adat4`) LIKE'%".$valueToSearch."%'";
$search_result = filterTable($query);
ennek az eredményét szeretném egy másik phpben használni
Másképp kérdezem: Az a PHP,
szóval : )
Bocs a gyenge fogalmazásért de elég kezdő vagyok még ebben. :)
Semmi gond, így már teljesen
Ha használsz valami Excel táblázat készítő libet, akkor ez azt természetesen manuálisan kell összeraknod, de egyébként a HTML kódot is ki tudod tolni xls kiterjesztéssel, mert az Excel tudja parsolni a HTML kódot; szóval ha készítesz egy table.html-t, aminek a tartalma egy valid HTML táblázat, és akiterjesztést átirod xls-re, és megynitod Excellel, akkor szépn meg fog jelenni az a táblázat, amit szeretnél.
File outputot generálni HTML helyett viszonylag egyszerű, a header-ökkel kell játszanod, erre találsz rengeteg példát, pl itt: http://stackoverflow.com/questions/12541000/how-to-export-html-table-to-excel-or-pdf-in-php
Tipp: kereséni GET requesttel érdemes, nem POST-tal, mert szűrőfeltételeket el tudod tárolni az URL query stringjében, és ezzel megkönnyíted az életed.
Konkrét példa:
/search.php?keyword=asd > kigenerálja a HTML táblázatot az "asd" keresőszó alapján
/search.php?keyword=asd&format=xls > megycsinálja ugyanazt a lekérdezést, mert ugyanaz a paraméter megy el mindkét esetben, plusz hozzáfűzöd a format paramétert, amivel megmondod a sciprtnek, hogy ne HTML-t generáljon, hanem egy XLS outputot.
részlet
<?php
if (isset($_POST['search']))
{
$valueToSearch = $_POST['valueToSearch'];
$query = "SELECT * FROM `TABLA` WHERE CONCAT (`adat1`, `adat2`, `adat3`, `adat4`, `adat5`, `adat6`, `adat7`, `adat8`, `adat9`) LIKE'%".$valueToSearch."%'";
$search_result = filterTable($query);
}
else {
$query = "SELECT * FROM `TABLA`";
$search_result = filterTable($query);
}
function filterTable($query)
{
$connect = mysqli_connect("localhost", "root", "", "szerver");
return mysqli_query($connect,$query);
}
?>
<!DOCTYPE html>
<html>
<h1 align="center">Search</h1>
<head>
<title> Query</title>
<form method="post" action="download_all.php">
<input type="submit" name="export_excel" class="btn btn-success" value="Export to Excel"></input>
</form>
<style>
table,tr,th,td
</style>
</head>
<body>
<form action="http://localhost/szerver/printer.php" method="post">
<input type="text" name="valueToSearch" placeholder="Value to Search"><br><br>
<input type="submit" name="search" value="Filter"><br><br>
<table align="center" border=1px>
<tr>
<th>adat1</th>
<th>adat2</th>
<th>adat4</th>
<th>adat7</th>
<th>adat6</th>
<th>adat5</th>
<th>adat3</th>
<th>adat8</th>
<th>adat9</th>
</tr>
<?php
while($row = mysqli_fetch_array($search_result )):
echo "<tr>";
echo "<td>".$row['adat1']."</td>";
echo "<td>".$row['adat2']."</td>";
echo"<td>" .$row['adat4']."</td>";
echo"<td>" .$row['adat7']."</td>";
echo"<td>" .$row['adat6']."</td>";
echo"<td>" .$row['adat5']."</td>";
echo"<td>" .$row['adat3']."</td>";
echo"<td>" .$row['adat8']."</td>";
echo"<td>" .$row['adat9']."</td>";
echo "</tr>";
endwhile;
?>
</table>
</form>
</body>
</html>
Az itt kapott eredményt szeretném excelbe lementeni az oldalról(bármikor) egy kattintással(Export to excel gomb)
Kedves batcher_90! Smokey
Smokey válasza a helytálló. Amit Te szeretnél, azt nem úgy csinálják, hogy valahogy letapogatják a HTML táblázat tartalmát és azt kirakják Excel formátumba, hanem úgy, hogy ha kell az eredmény Excel formátumban is, mégegyszer lefuttatják a lekérdezést, de a kimenetet már nem HTML formában tolják ki a böngészőnek, megjelenítésre, hanem Excel formátumban (mondjuk az egyszerűség kedvéért CSV-ben) állítják elő, és olyan HTTP fejléccel küldik ki, ami a böngészőt arra utasítja, hogy kínálja fel a tartalmat letöltésre vagy megnyitásra, mintha az egy file lenne.
Érthető így Számodra vagy van még, ami nem világos?
Üdv:
Dávid
köszi
Gondolom már a tökötök tele van a hülye kérdéseimmel, köszi a türelmet :)
Szia!Nem, rossz kérdés
Nem, rossz kérdés nincs, szívesen válaszolok. Szóval: ha szerver oldalon szeretnéd az Excelt előállítani, akkor a kliensből küldött adatokkal valóban el kell küldened egy jelzőt, hogy most Excelben kéred az eredményt. Mondjuk van egy rádiógomb, amivel beállítja, hogy HTML táblázat kell neki vagy Excel táblázat. Ezt a változót szerver oldalon megvizsgálod, és a lekérdezésed lefuttatása után vagy HTML táblázatot küldesz ki, vagy mondjuk CSV-t, a megfelelő HTTP header beállítása után. Vagyis meta kóddal:
Dávid
Köszi a megerősítést :)
BTW, Kliens oldali, JavaScript alapú Excel tábla generálásra is van lehetőség. https://jsfiddle.net/lesson8/jWAJ7/
Szólnék, hogy a kódodban egy
Olvass utána a dolognak. A mysqli-ben emlékeim szerint vannak prepared statementek, azokkal jársz a legjobban.