Per Klick Button erscheinen lassen, der Variable an andere Seite übergeben kann
bearbeitet von Rolf BHallo Nadine,
ein Hinweis noch zur Ausgabe deiner Ergebnistabelle. Und ich sehe dabei noch: dein set_charset kommt zu spät, der müsste meiner Meinung nach eigentlich schon vor dem mysqli_query stehen.
Es ist unschön, größere Mengen HTML per echo auszugeben. Du kannst jederzeit aus dem PHP Kontext aus- und wieder einsteigen, das macht keinen Performance-Unterschied. Eine ECHO-Orgie wie bei Dir ist höchstens interessant, wenn man das HTML sehr kleinteilig zusammensetzt (wenn z.B. die Tabellenspalten konfigurierbar sind).
~~~php
if ($search->num_rows > 0) : ?>
<table>
<tr>
<th>Autor</th>
<th>Titel</th>
<th>Untertitel</th>
<th>Jahr</th>
<th>BuchID</th>
<th>Verleihstatus</th>
</tr>
<?php while($row = $search-> fetch_assoc()) : ?>
<tr>
<td><?= $row["Autor"] ?></td>
<td><?= $row["Titel"] ?></td>
<td><?= $row["Untertitel"] ?></td>
<td><?= $row["Jahr"] ?></td>
<td><?= $row["BuchID"] ?></td>
<td><?= $row["Verleihstatus"] ?></td>
</tr>
<?php endwhile; ?>
</table>
<?php endif;
...ggf weiterer PHP Code
?>
~~~
Man verwendet bei solchen Konstrukten dann besser die ["alternative Syntax"](http://php.net/manual/de/control-structures.alternative-syntax.php) für Kontrollstrukturen, also dies:
~~~php,good
if ($bedingung) : ?>
// html wüste
<?php endif;
~~~
statt dies:
~~~php,bad
if ($bedingung) { ?>
// html wüste
<?php }
~~~
Grund: Die einsame } wird bei solchen Konstrukten gern im Getümmel übersehen. Noch besser ist es, die Ausgabe des HTML-Blocks in eine Funktion auszulagern:
~~~php
if ($search->num_rows > 0)
show_search_result($search);
~~~
Und hinter der eigentlichen Programmlogik notiert man dann die Funktionen:
~~~php
function show_search_result($search) {
?>
<table>
<tr>
<th>Autor</th>
<th>Titel</th>
<th>Untertitel</th>
<th>Jahr</th>
<th>BuchID</th>
<th>Verleihstatus</th>
</tr>
<?php
while($row = $search-> fetch_assoc()) {
show_search_result_row($row);
}
?>
</table>
<?php
}
function show_search_result_row($row) {
?>
<tr>
<td><?= $row["Autor"] ?></td>
<td><?= $row["Titel"] ?></td>
<td><?= $row["Untertitel"] ?></td>
<td><?= $row["Jahr"] ?></td>
<td><?= $row["BuchID"] ?></td>
<td><?= $row["Verleihstatus"] ?></td>
</tr>
<?php
} // endfunction;
...ggf weiterer PHP Code
?>
~~~
Durch die Funktionengliederung hast Du keine HTML-Blöcke innerhalb von PHP Blockstrukturen, und kannst bei { und } bleiben.
_Rolf_
--
sumpsi - posui - clusi