Проблема, оставив пустую тележку

Я считаю сделанной тележку покупок функционируя, когда пустое бросает в меня эту ошибку, которую я нуждаюсь в том, чтобы исправить, посмотрим Вы умеете 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>&nbsp;</td>
    </tr>
    <?php 
    $_preciototal += $totalLinea;
    } while ($row_Basket_carrito = mysqli_fetch_assoc($Basket_carrito)); ?>

<tr bgcolor="#F3EDD8">
  <td align="right" class="big_link">&nbsp;</td>
  <td>&nbsp;</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>&nbsp;</td>
</tr>
<?php 
$_preciototal += $totalLinea;
}
?>          
<tr bgcolor="#F3EDD8">
<td align="right" class="big_link">&nbsp;</td>
<td>&nbsp;</td>
<td class="big_link">Total</td>
<td class="big_link"><?php echo $_preciototal;?>€</td>
</tr>

</table>
1
задан 07.11.2019, 20:21
1 ответ

Ты 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.

1
ответ дан 01.12.2019, 12:30

Теги

Похожие вопросы