Я считаю сделанной тележку покупок функционируя, когда пустое бросает в меня эту ошибку, которую я нуждаюсь в том, чтобы исправить, посмотрим Вы умеете decirme/orientarme исправлять где. Ошибка:
Фатальная ошибка: Uncaught mysqli_sql_exception: You have an ошибка in your SQL syntax; check the учебник that corresponds to your MariaDB server версия for the right syntax to использовал near '' at line 1 in C:\xampp\htdocs\davecorium\includes\funciones.php:42 Stack наметил: #0 C:\xampp\htdocs\davecorium\includes\funciones.php(42): mysqli_query (Object (mysqli), 'SELECT strNombr...') #1 C:\xampp\htdocs\davecorium\tienda\basketresume.php(174): SacarNombreProducto (NULL) #2 {main} thrown in C:\xampp\htdocs\davecorium\includes\funciones.php он-лайн 42*
Использование Dreamweaver, которым, если есть ошибки синтаксиса, Вы предупреждаете меня, все же, я разыскивал какой-то); и кавычки '' или "" но я ничего не упорядочил.
Это кодекс php
с функцией SacarNombreProducto
:
function SacarNombreProducto($identificador)
{
global $link, $database_db;
mysqli_select_db($link, $database_db);
$query_SacarProducto = sprintf("SELECT strNombre FROM tabla_productos WHERE idProductos = $identificador");
$SacarProducto = mysqli_query($link, $query_SacarProducto) or die(mysqli_error());
$row_SacarProducto = mysqli_fetch_assoc($SacarProducto);
$totalRows_SacarProducto = mysqli_num_rows($SacarProducto);
return $row_SacarProducto['strNombre'];
mysqli_free_result($SacarProducto);
}
Страница php
что управляет об обновлении продуктов, basketresume.php
и это кодекс заседания
$varUsuario_Basket_carrito = "0";
if (isset($_SESSION["loggedin"])) {
$varUsuario_Basket_carrito = $_SESSION["loggedin"];
}
mysqli_select_db($link, $database_db);
$query_Basket_carrito = sprintf("SELECT * FROM tblbasket WHERE tblbasket.idUsuario = %s AND tblbasket.intTransacciones = 0", GetSQLValueString($link, $varUsuario_Basket_carrito, "int"));
$Basket_carrito = mysqli_query($link, $query_Basket_carrito) or die(mysqli_error());
$row_Basket_carrito = mysqli_fetch_assoc($Basket_carrito);
$totalRows_Basket_carrito = mysqli_num_rows($Basket_carrito);
И после вслед за больше кодексом для paypal (который я забываю показывать) Вы эти другой, где используется функция SacarNombreProducto
$i = (int)0;
do {
$i++;
$_nombre____TT = SacarNombreProducto ($row_Basket_carrito['idProducto']);
$_precio = (float)$row_Basket_carrito['dblPrecio'];
$_cantidad =(int) $row_Basket_carrito['intCantidad'];
$totalLinea = (float) $_precio * $_cantidad;
$textoPaypal .= "<input type=\"hidden\" name=\"item_name_" . $i . "\" value=\"" . $_nombre____TT . "\">";
$textoPaypal .= "<input type=\"hidden\" name=\"amount_" . $i . "\" value=\"" . $_precio . "\">";
$textoPaypal .= "<input type=\"hidden\" name=\"quantity_" . $i . "\" value=\"" . $_cantidad . "\">";?>
<tr>
<td><?php echo SacarNombreProducto($row_Basket_carrito['idProducto']) ?></td>
<td><?php echo $_cantidad; ?></td>
<td><?php echo $_precio; ?></td>
<td><?php echo $totalLinea;?></td>
<td> </td>
</tr>
<?php
$_preciototal += $totalLinea;
} while ($row_Basket_carrito = mysqli_fetch_assoc($Basket_carrito)); ?>
<tr bgcolor="#F3EDD8">
<td align="right" class="big_link"> </td>
<td> </td>
<td class="big_link">Total</td>
<td class="big_link"><?php echo $_preciototal;?>€</td>
</tr>
</table>
Я попытался размещая связь впереди
$_nombre____TT = SacarNombreProducto ($link, $row_Basket_carrito['idProducto']);
но меня бросает другая ошибка, этот:
Фатальный Recoverable ошибка: Object of class mysqli could not be converted to string*
Я освобождаю консультации с
<?php mysqli_free_result();?>
Я обобщаю, тележка функционирует, я добавляю продукты, суммирую, удаляю один за другим, вся линия, и т.д. Восток предупредил ошибки он выходит когда пустое или я оставляю в нуль. Вы видите решение?, разыскивайте здесь и я ничего не увидел, ни в Вебе. Привет!
Новое издание: Я продолжил советы Матиаса П и Вы функционируете, я голосую "за". таким остался кодекс:
$_nombre____TT = 'idProducto';
$_precio = 'dblPrecio';
$_cantidad = 'intCantidad';
$i = (int)0;
while ($row_Basket_carrito = mysqli_fetch_assoc($Basket_carrito)){
$i++;
$_nombre____TT = SacarNombreProducto ($row_Basket_carrito['idProducto']);
$_precio = (float)$row_Basket_carrito['dblPrecio'];
$_cantidad =(int) $row_Basket_carrito['intCantidad'];
$totalLinea = (float) $_precio * $_cantidad;
$textoPaypal .= "<input type=\"hidden\" name=\"item_name_" . $i . "\" value=\"" . $_nombre____TT . "\">";
$textoPaypal .= "<input type=\"hidden\" name=\"amount_" . $i . "\" value=\"" . $_precio . "\">";
$textoPaypal .= "<input type=\"hidden\" name=\"quantity_" . $i . "\" value=\"" . $_cantidad . "\">";
?>
<tr>
<td><?php echo SacarNombreProducto($row_Basket_carrito['idProducto']) ?></td>
<td><?php echo $_cantidad; ?></td>
<td><?php echo $_precio; ?></td>
<td><?php echo $totalLinea;?></td>
<td> </td>
</tr>
<?php
$_preciototal += $totalLinea;
}
?>
<tr bgcolor="#F3EDD8">
<td align="right" class="big_link"> </td>
<td> </td>
<td class="big_link">Total</td>
<td class="big_link"><?php echo $_preciototal;?>€</td>
</tr>
</table>
Ты estГЎ упоминая о том, что он estГЎs перемещая NULL
SacarNombreProducto()
, из-за которого deberГ-схвати делать while - do вместо do - while, потому что do while работает по крайней мере однажды, и aГєn у тебя нет ее informaciГіn:
do {
// Acceder en este punto a $row_Basket_carrito NO está definido
} while ($row_Basket_carrito = mysqli_fetch_assoc($Basket_carrito));
while ($row_Basket_carrito = mysqli_fetch_assoc($Basket_carrito)) {
// Acceder en este punto $row_Basket_carrito SI está definido
}
, Делая это изменение ты deberГ, - чтобы функционировать, но у тебя есть, что incializar переменные перед тем, как использовать их внутри while.