Как напечатать конкретные данные, которые хранятся в базе данных MySQL, используя PHP - PullRequest
0 голосов
/ 06 марта 2019

Привет! Я добавил функцию на свой веб-сайт, где пользователь может отменить забронированный билет, используя код: cancel.php

<?php
session_start();
include('config.php');
mysqli_query($con,"delete from tbl_bookings where book_id='".$_GET['id']."'");
$_SESSION['success']="Booking Cancelled Successfully";
header('location:profile.php');
?> 

, и я попытался добавить функцию в тот же билет, который пользовательможет отменить печать билета, чтобы пользователь мог распечатать этот билет, код, который я использовал: print.php

<?php
session_start();
include('config.php');
window.print(mysqli_query($con,"select from tbl_bookings where book_id='".$_GET['id']."'"));
header('location:profile.php');
?>

ссылка на эти два класса в классе с именем profile.php, и этот битв строке, где написано:

                            <a href="cancel.php?id=<?php echo $bkg['book_id'];?>">Cancel </a>/<a href="print.php?id=<?php echo $bkg['book_id'];?>">Print Ticket</a>

Я был бы рад, если бы вы могли сказать мне, как распечатать эти данные .. спасибо

использование $ bkg

$bk=mysqli_query($con,"select * from tbl_bookings where user_id='".$_SESSION['user']."'");
                if(mysqli_num_rows($bk))
                {
                    ?>
                    <table class="table table-bordered">
                        <thead>
                        <th>Booking Id</th>
                        <th>Movie</th>
                        <th>Theatre</th>
                        <th>Screen</th>
                        <th>Show</th>
                        <th>Seats</th>
                        <th>Price</th>
                        <th></th>
                        </thead>
                        <tbody>
                        <?php
                        while($bkg=mysqli_fetch_array($bk))
                        {
                            $m=mysqli_query($con,"select * from tbl_movie where movie_id=(select movie_id from tbl_shows where s_id='".$bkg['show_id']."')");
                            $mov=mysqli_fetch_array($m);
                            $s=mysqli_query($con,"select * from tbl_screens where screen_id='".$bkg['screen_id']."'");
                            $srn=mysqli_fetch_array($s);
                            $tt=mysqli_query($con,"select * from tbl_theatre where id='".$bkg['t_id']."'");
                            $thr=mysqli_fetch_array($tt);
                            $st=mysqli_query($con,"select * from tbl_show_time where st_id=(select st_id from tbl_shows where s_id='".$bkg['show_id']."')");
                            $stm=mysqli_fetch_array($st);
                            ?>
                            <tr>
                                <td>
                                    <?php echo $bkg['ticket_id'];?>
                                </td>
                                <td>
                                    <?php echo $mov['movie_name'];?>
                                </td>
                                <td>
                                    <?php echo $thr['name'];?>
                                </td>
                                <td>
                                    <?php echo $srn['screen_name'];?>
                                </td>
                                <td>
                                    <?php echo $stm['start_time'];?>
                                    <?php echo $stm['name'];?>
                                </td>
                                <td>
                                    <?php echo $bkg['no_seats'];?>
                                </td>
                                <td>
                                    £   <?php echo $bkg['amount'];?>
                                </td>
                                <td>
                                    <?php  if($bkg['ticket_date']<date('Y-m-d'))
                                    {
                                        ?>
                                        <i class="glyphicon glyphicon-ok"></i>
                                        <?php
                                    }
                                    else
                                    {?>
                                    <a href="cancel.php?id=<?php echo $bkg['book_id'];?>">Cancel </a>/<a href="print.php?id=<?php echo $bkg['book_id'];?>">Print Ticket</a>
                                    <?php
                                    }
                                    ?>
                                </td>
                            </tr>
                            <?php
                        }
                        ?></tbody>

введите описание изображения здесь

Ответы [ 3 ]

1 голос
/ 06 марта 2019

Хватит кодировать сейчас!

Вам необходимо изучить основы совместной работы PHP + MySQL + HTML + JS.

На данный момент вам не нужно знать, что не так с вашим кодом. Вам нужно выучить несколько основных руководств, а затем переписать свой код с нуля Много учебников по всему интермету. Читать это .


Дополнительное объяснение

Сервер = где живет ваш код.

Клиент = браузер.

PHP & MySQL живут ТОЛЬКО на сервере, работают на сервере , , обработанном сервером .

HTML + CSS + JS , подготовленный сервером, затем сервер отправляет его клиенту, затем обрабатывает клиент (браузер). Поэтому они начинают работать , когда в клиент (браузер). Пока они на сервере, они просто строки.

Так что всегда как:

  1. Файл запроса браузера с сервера (http://www.mywebsite.com/something.php). Это известно как запрос .
  2. Сервер запускает файл php (что-то .php), который может генерировать вывод (HTML + CSS + JS), затем сервер отправляет вывод клиенту (браузеру). Это известно как ответ .
  3. Клиент (браузер) затем получает выходные данные (в виде простых строк), затем браузер запускает код (JS).

Вывод:

Не указывайте серверу запускать JS, не указывайте клиенту (браузеру) запускать PHP или MYSQL.

1 голос
/ 06 марта 2019
  1. Вы не можете вызвать window.print() в PHP-коде, так как это функция javascript

  2. header('location:profile.php'); перенаправит страницу, прежде чем javascript получитвыполнить код.Замените этот код на код JavaScript, который выполняется после печати страницы.

Ваш print.php:

<?php
session_start();
include('config.php');
$result = mysqli_query($con, "select * from tbl_bookings where book_id='{$_GET['id']}'"); // You should replace this with  prepare statement
$row = $result->fetch_array();
// assume that your booking table has columns: id, movie_name, time
echo "<table>
<tr><td>Booking ID</td><td>{$row['id']}</td></tr>
<tr><td>Movie Name</td><td>{$row['movie_name']}</td></tr>
<tr><td>Time</td><td>{$row['time']}</td></tr>
</table>";   
?>
<script>
   window.print();
   window.location.href = "profile.php"
</script>
0 голосов
/ 06 марта 2019

Я изменил ваш код, чтобы он работал и стал более безопасным способом с использованием оператора prepare.

<table>
<tr><th> id </th> <th> time </th> </tr>

<?php
if (!$bk = $con->prepare("select * from tbl_bookings where user_id = ? ")) {
echo $con->error; // show error message when SQL query is wrong or goes kaboom!
} else{
$bk->bind_param("s",$_SESSION['user']); //bind the blind parameters, "s" stands for string
$bk->execute ();// execute the query
$bk_result = $bk->get_result(); // get results 
}
while ($bk_row = $bk_result->fetch_assoc()){ ?>
<tr><td> <?php echo $bk_row['id']; ?> </td> <td> <?php echo $bk_row['id'] ?> </td> </tr>

<?php } //end while loop ?>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...