PHP: форма неправильно отправляет данные

Вот сайт, который я создаю: http://cosc304.ok.ubc.ca/20647160/304_lab7/listprod.phphttp://cosc304.ok.ubc.ca/20647160/304_lab7/showcart.php

Раньше я никогда не использовал PHP, было бы полезно любое руководство. Приведенный ниже код демонстрирует веб-сайт, который должен быть добавлен в корзину, но в настоящее время в демонстрационной корзине есть странное пространство между первым продуктом и вторым продуктом. Это не складывается правильно. На первой странице перечислены продукты, на второй ссылке - их корзина.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" />
<title>Raph & Mishal's Grocery</title>
</head>
<body>

<h1>Search for the products you want to buy:</h1>

<form method = "get" action = "listprod.php">
<input type = "text" name = "productName" size = "50">
<input type = "submit" value = "Submit"><input type = "reset" value = "Reset"> (Leave blank for all products)
</form>

<?php
    /** If you're developing locally on WINDOWS, uncomment the following line **/
    //include 'include\money_format_windows.php';
    include 'include/db_credentials.php';

    /** Get product name to search for **/

    if (isset($_GET['productName'])){
        $name = $_GET['productName'];
    }

    /** $name now contains the search string the user entered
     Use it to build a query and print out the results. **/
    /** Create and validate connection **/
    global $username;
        global $password;
        global $database;
        global $server;
      global $connectionInfo;

        $con = sqlsrv_connect($server, $connectionInfo);
        if ( $con === false ) {
            die( print_r( sqlsrv_errors(), true));
        }

    /** Print out the ResultSet **/
    $sql = "SELECT productId, productName,price FROM product";
//  $preparepreparedStatement =null;
    $name =null;
    if (isset($_GET['productName'])){
          $name = $_GET[urlencode('productName')];
            $sql = $sql ." WHERE productName LIKE ?";
            $name = "%". $name. "%";
            //$preparedStatement = sqlsrv_prepare($con, $sql,$pName);
}

        $results = sqlsrv_query($con, $sql, array($name));
        echo("<table><tr><th></th><th>ProductName</th><th>Price</th></tr>");
        while ($row = sqlsrv_fetch_array( $results, SQLSRV_FETCH_ASSOC )) {
            echo( "<tr><td><a href=addcart.php?id = ".$row['productId']."&name = ".$row['productName']."&price = ".$row['price'].">Add to Cart</h></td><td>" . $row['productName'] . "</td><td>" . $row['price'] . "</td></tr>");
        }
        echo("</table>");

    sqlsrv_close( $con );
    /**
    For each product create a link of the form
    addcart.php?id=<productId>&name=<productName>&price=<productPrice>
    Note: As some product names contain special characters, you may need to encode URL parameter for product name like this: urlencode($productName)
    **/

?>

</body>
</html>

<!DOCTYPE html>
<html>
<head>
<title>Your Shopping Cart</title>
</head>
<body>

<?php
// include 'include/money_format_windows.php'; //Only required on windows PCs
// Get the current list of products
session_start();
$productList = null;
if (isset($_SESSION['productList'])){
    $productList = $_SESSION['productList'];
    echo("<h1>Your Shopping Cart</h1>");
    echo("<table><tr><th>Product Id</th><th>Product Name</th><th>Quantity</th>");
    echo("<th>Price</th><th>Subtotal</th></tr>");

    $total =0;
    foreach ($productList as $id => $prod) {
        echo("<tr><td>". $prod['id'] . "</td>");
        echo("<td>" . $prod['name'] . "</td>");

        echo("<td align=\"center\">". $prod['quantity'] . "</td>");
        $price = $prod['price'];

        echo("<td align=\"right\">".str_replace("USD","$",money_format('%i',$price))."</td>");
        echo("<td align=\"right\">" . str_replace("USD","$",money_format('%i',$prod['quantity']*$price)) . "</td></tr>");
        echo("</tr>");
        $total = $total +$prod['quantity']*$price;
    }
    echo("<tr><td colspan=\"4\" align=\"right\"><b>Order Total</b></td><td align=\"right\">".str_replace("USD","$",money_format('%i',$total))."</td></tr>");
    echo("</table>");

    echo("<h2><a href=\"checkout.php\">Check Out</a></h2>");
} else{
    echo("<H1>Your shopping cart is empty!</H1>");
}
?>
<h2><a href = "listprod.php">Continue Shopping</a></h2>
</body>
</html> 

Здесь вы смешиваете разные API.

Funk Forty Niner 10.11.2018 23:49

Вы используете mysql или sqlsrv? $name должен быть внутри array() в вызове sqlsrv_query

user3783243 10.11.2018 23:49
$mysqli где это определяется? У вас слишком много ошибок, а API-интерфейс для подключения неизвестен.
Funk Forty Niner 10.11.2018 23:50

У вас есть столбец с названием ссылки? Я думаю, вам нужен echo '<tr><td><a href = "href=addcart.php?id=' . $row['id'] . '&name=' $row['....'] . и т. д.

user3783243 10.11.2018 23:53
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
37
0

Другие вопросы по теме