How to use mysqli_stmt_affected_rows() with prepared statements? - php

After changing this query to be user with binding parameters, It won't work anymore.
$conectar2 = mysqli_connect(HOST, USER, PASS, DATABASE);
$buscarUsuarioExistente = " SELECT userID, userEmail
FROM usuarios
WHERE userEmail =?
";
$usuarioExiste = mysqli_prepare($conectar2,$buscarUsuarioExistente);
mysqli_stmt_bind_param($usuarioExiste, 's', $email);
mysqli_stmt_execute($usuarioExiste);
mysqli_stmt_close($usuarioExiste);
//SI EL MAIL QUE PONE EL USUARIO YA EXISTE EN BASE
if (mysqli_stmt_affected_rows($usuarioExiste) != 0) {
$usuario = mysqli_fetch_assoc($usuarioExiste);
//como nos devuelve un array, extraemos el primer elemento como string. El array contiene sólo un elemento.
$userID = array_shift($usuario);
//si el usuario existe en base, no lo generamos, sino que le agregamos el curso que seleccionó y le asignamos el rol "noAutorizado" hasta no verificar el pago
$asignarRol = "INSERT INTO rolesUsuarios
(userID, nombreRol)
VALUES
(?, ?)
";
$noAutorizado = 'noAutorizado';
$asignarRolenBase = mysqli_prepare($conectar2,$asignarRol);
mysqli_stmt_bind_param($asignarRolenBase, 'ss', $userID, $noAutorizado);
mysqli_stmt_execute($asignarRolenBase);
if ($asignarRolenBase) {
echo 'Estado "pendiente" del usuario generado.<br>';
}
else {
echo 'Error al asignar estado al usuario'.mysqli_error($conectar2).'<br>';
}
mysqli_stmt_close($asignarRolenBase);
}
The problem seems to be with this: mysqli_stmt_affected_rows($usuarioExiste) != 0 (this is line 45)
Because I get this error:
Warning: mysqli_stmt_affected_rows(): Couldn't fetch mysqli_stmt in
/home/public_html/inscripcionUsuario.php on line 45
UPDATE:
I've noticed that I do close it in the line before I call it (thanks Qirel), but moving further down that line, so I don't close it before, gives me this error:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result,
object given
So, with the update:
$conectar2 = mysqli_connect(HOST, USER, PASS, DATABASE);
$buscarUsuarioExistente = " SELECT userID, userEmail
FROM usuarios
WHERE userEmail =?
";
$usuarioExiste = mysqli_prepare($conectar2,$buscarUsuarioExistente);
mysqli_stmt_bind_param($usuarioExiste, 's', $email);
mysqli_stmt_execute($usuarioExiste);
//SI EL MAIL QUE PONE EL USUARIO YA EXISTE EN BASE
if (mysqli_stmt_affected_rows($usuarioExiste) != 0) {
$usuario = mysqli_fetch_assoc($usuarioExiste);
//como nos devuelve un array, extraemos el primer elemento como string. El array contiene sólo un elemento.
$userID = array_shift($usuario);
//si el usuario existe en base, no lo generamos, sino que le agregamos el curso que seleccionó y le asignamos el rol "noAutorizado" hasta no verificar el pago
$asignarRol = "INSERT INTO rolesUsuarios
(userID, nombreRol)
VALUES
(?, ?)
";
$noAutorizado = 'noAutorizado';
$asignarRolenBase = mysqli_prepare($conectar2,$asignarRol);
mysqli_stmt_bind_param($asignarRolenBase, 'ss', $userID, $noAutorizado);
mysqli_stmt_execute($asignarRolenBase);
if ($asignarRolenBase) {
echo 'Estado "pendiente" del usuario generado.<br>';
}
else {
echo 'Error al asignar estado al usuario'.mysqli_error($conectar2).'<br>';
}
mysqli_stmt_close($asignarRolenBase);
mysqli_stmt_close($usuarioExiste);
}
Update:
I've tried with mysqli_stmt_num_rows()
(if (mysqli_stmt_num_rows($usuarioExiste) != 0))
Instead and I've got this error:
Warning: mysqli_stmt_bind_param() expects parameter 1 to be
mysqli_stmt, boolean given

Your problem is here
mysqli_stmt_close($usuarioExiste);
You're closing the mysqli_stmt object which does
Closes a prepared statement. mysqli_stmt_close() also deallocates the statement handle
As to the other question, you're missing a step
$usuario = mysqli_fetch_assoc($usuarioExiste);
That won't work because you have a mysqli_stmt object, and mysqli_fetch_assoc expects a mysqli_result object. This gets a bit tricky because you might not have the MySQL Native Driver installed (that's a server config). If you do, you can fix it like this
$result = mysqli_stmt_get_result($usuarioExiste);
$usuario = mysqli_fetch_assoc($result);
If that function is undefined you'll have to use the much clunkier mysqli_stmt_bind_result and assign variables. The examples here require a lot of recoding on your part, but you can see some examples over at Example of how to use bind_result vs get_result

Related

My php code loops and doesn't explore my database [duplicate]

This question already has answers here:
The 3 different equals
(5 answers)
Closed 1 year ago.
Hello I'm currently trying to create a page based on a database under mysql that would update itself for a client. However what I'm trying to do loops and returns the first value of the database each time and indefinetely when I want it to go on to another object in the database. Here is the code, I'm a beginner so the error might be flagrant, thanks for the help.
<?php
try
{
$db = new PDO('mysql:host=localhost;dbname=labase', 'root' ,'');
$db->exec(" SET CHARACTER SET utf8 ");
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e){
echo'une erreur est survenue';
die();
}
for ($i = 1; $i < 10; $i++) {
if ($i=1){
$select = $db->prepare("Select profession from contact where affiliation='nord' group by profession"); // je récupère les professions de la bdd
$select->execute();
}
$data = $select->fetch(PDO::FETCH_OBJ);
$profess=$data->profession; // je prends la prochaine profession
$selectionner = $db->prepare("Select nomcontact, count(*) as nbrcontact from contact where affiliation='nord' and profession='$profess'"); // je prends les contacts qui ont cette profession ainsi que leur nombre
$selectionner->execute();
$prendre = $selectionner->fetch(PDO::FETCH_OBJ);
$nbrcontact=$prendre->nbrcontact;// je récupère leur nombre
echo $profess;
echo $nbrcontact;
}
?>
I am not a PHP expert and never use PDO, but in Msqli, there is a fetch_array() to get multiple result (instead of fetch for single result), maybe in PDO you have a fetch_array too. Then, you can loop on the result array
Something like that (using msqli)
$sql = "SELECT... FROM ..";
$result = $link->query($sql);
while($row =mysqli_fetch_array($result))
{
}
if ($i=1) { // here is should be == or ===
You're causing an infinite loop by declaring $i=1
<?php
try
{
$db = new PDO('mysql:host=localhost;dbname=labase', 'root' ,'');
$db->exec(" SET CHARACTER SET utf8 ");
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e){
echo'une erreur est survenue';
die();
}
for ($i = 1; $i < 10; $i++) {
if ($i == 1){ // added code
$select = $db->prepare("Select profession from contact where affiliation='nord' group by profession"); // je récupère les professions de la bdd
$select->execute();
}
$data = $select->fetch(PDO::FETCH_OBJ);
$profess=$data->profession; // je prends la prochaine profession
$selectionner = $db->prepare("Select nomcontact, count(*) as nbrcontact from contact where affiliation='nord' and profession='$profess'"); // je prends les contacts qui ont cette profession ainsi que leur nombre
$selectionner->execute();
$prendre = $selectionner->fetch(PDO::FETCH_OBJ);
$nbrcontact=$prendre->nbrcontact;// je récupère leur nombre
echo $profess;
echo $nbrcontact;
}
?>
Use == for comparison

PHP How to avoid multi-session

There are some things that I want to do, but don't know if they are possible with PHP SESSIONS.
1. Avoid multi-session. (I did it using a flag in my database, but the problem comes when the user doesn't log out, and they just close the browser.
2. Log out a user remotely.
I will put my code right here. I tried to do it using the database and checking time differences, so I rewrite the value in my database and the user can log in.
Sessions.php
<?php
//Evitamos que nos salgan los NOTICES de PHP
error_reporting(E_ALL ^ E_NOTICE);
//Obtenemos el timestamp del servidor de cuanto se hizo la petición
$hora = $_SERVER["REQUEST_TIME"];
require('conexion.php');
//Duración de la sesión en segundos
$duracion = 9000;
//Si el tiempo de la petición* es mayor al tiempo permitido de la duración,
//destruye la sesión y crea una nueva
if (isset($_SESSION['ultima_actividad']) && ($hora - $_SESSION['ultima_actividad']) > $duracion) {
session_unset();
session_destroy();
// session_start();
};
// * Por esto este archivo debe ser incluido en cada página que necesite comprobar las sesiones
//Definimos el valor de la sesión "ultima_actividad" como el timestamp del servidor
$_SESSION['ultima_actividad'] = $hora;
?>
access.php
//Conectamos a la base de datos
require('../../config/conexion.php');
//Obtenemos los datos del formulario de acceso
$userPOST = $_POST["idUsuario"];
$passPOST = $_POST["idPass"];
//Filtro anti-XSS Seguridad
$userPOST = htmlspecialchars(mysqli_real_escape_string($conexion, $userPOST));
$passPOST = htmlspecialchars(mysqli_real_escape_string($conexion, $passPOST));
//Definimos la cantidad máxima de caracteres
//Esta comprobación se tiene en cuenta por si se llegase a modificar el "maxlength" del formulario
//Los valores deben coincidir con el tamaño máximo de la fila de la base de datos
$maxCaracteresUsername = "20";
$maxCaracteresPassword = "60";
//Si los input son de mayor tamaño, se "muere" el resto del código y muestra la respuesta correspondiente
if(strlen($userPOST) > $maxCaracteresUsername) {
die('El nombre de usuario no puede superar los '.$maxCaracteresUsername.' caracteres');
};
if(strlen($passPOST) > $maxCaracteresPassword) {
die('La contraseña no puede superar los '.$maxCaracteresPassword.' caracteres');
};
//Pasamos el input del usuario a minúsculas para compararlo después con
//el campo "usernamelowercase" de la base de datos
// $userPOSTMinusculas = strtolower($userPOST);
//Escribimos la consulta necesaria
// $consulta = "SELECT * FROM `users` WHERE usernamelowercase='".$userPOSTMinusculas."'";
//Consulta normal sin pedir comprobaciones de minusculas o mayusculas.
$consulta = "SELECT * FROM `users` WHERE username='".$userPOST."'";
//Obtenemos los resultados
$resultado = mysqli_query($conexion, $consulta) or die ("Query problem");
$datos = mysqli_fetch_array($resultado);
//Guardamos los resultados del nombre de usuario normal, no en minúsculas
//y de la contraseña de la base de datos
$userBD = $datos['username'];
$passwordBD = $datos['password'];
//Comprobamos si los datos son correctos
// if($userBD == $userPOSTMinusculas and password_verify($passPOST, $passwordBD)){
if($userBD == $userPOST and $passPOST == $passwordBD){
date_default_timezone_set('America/Chihuahua');
// die($parsedDate); //2016-08-18 22:54:33
//CrearFuncion para la diferencia en las fechas y el accesso en si para no repetir procedimientos...
//Funciones o declaraciones repetidas deberan ser incluidas en esta clase*****************************************
$time = date('Y-m-d H:i:s');
$time_dt = new DateTime($time);
$databasetime_dt = new DateTime($datos['lastActivity']);
//*******************************OBTENER DIFERENCIAS EN LAS FECHAS. ENTRE EL TIEMPO ACTUAL Y LA HORA QUE SE REGISTRA EN LA BASE DE DATOS.
$interval = $databasetime_dt->diff($time_dt);
// die($interval->format('%Y'));
if($datos['logged'] == 0){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
// ***********************************************************************************//
//SE GENERA UN UPDATE PARA CONFIRMAR QUE EL USUARIO ESTE LOGUEADO, SI LO ESTA, NO PODRA TENER MAS DE UNA SESION ACTIVA CON UN UPDATE EN LA HORA DE ACCESO//
$consultaActivo = "UPDATE users SET logged = 1, lastActivity ='".$time."' WHERE id=".$datos['id'];
$resultadoActivo = mysqli_query($conexion, $consultaActivo);
echo 'Hecho';
}else{
if($interval->format('%Y') >= 1){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
// die("Uno o mas años de diferencia");
}else{
if($interval->format('%m') >= 1){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
// die("Uno o mas meses de diferencia");
}else{
if($interval->format('%d') >= 1){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
// die("Uno o mas dias de diferencia");
}else{
if($interval->format('%H') >=1){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
// die("Una o mas hora de diferencia");
}else{
if($interval->format('%i') > 10){
session_id($datos['id']);
session_start();
$_SESSION['id'] = $datos['id'];
$_SESSION['usuario'] = $datos['username'];
$_SESSION['estado'] = 'Autenticado';
echo 'Hecho';
}
else{
echo 'SesionActiva';
}
}
}
}
}
}
/* Sesión iniciada, si se desea, se puede redireccionar desde el servidor */
//Si los datos no son correctos, o están vacíos, muestra un error
//Además, hay un script que vacía los campos con la clase "acceso" (formulario)
// } else if ( $userBD != $userPOSTMinusculas || $userPOST == "" || $passPOST == "" || !password_verify($passPOST, $passwordBD) ) {
} else if ( $userBD != $userPOST || $userPOST == "" || $passPOST == "" || !password_verify($passPOST, $passwordBD) ) {
// die ('<script>$(".input-group-addon").val("");</script>');
echo "Datos erroneos";
} else {
die('Error');
};
?>
logout.php
<?php
//Reanudamos la sesión
session_start();
//Requerimos los datos de la conexión a la BBDD
require('../../config/conexion.php');
$consultaActivo = "UPDATE `users` SET logged=0 WHERE id=".$_SESSION['id'];
$resultadoActivo = mysqli_query($conexion, $consultaActivo);
//Des-establecemos todas las sesiones
unset($_SESSION);
//Destruimos las sesiones
session_destroy();
//Cerramos la conexión con la base de datos
mysqli_close($conexion);
//Redireccionamos a el index
header("Location: ../../");
return true;
die();
?>

Errno(0) when failing to insert with prepared statement

I am having an error when inserting data into a table with php using prepared statements, I am stuck cuz it gives me errno(0), I dont know what that error is, can you help me please?. Thanks!
<?php
session_start();
include '../conexion.php';
$nombre = $_POST['Nombre'];
$apellido = $_POST['Apellido'];
$mail = $_POST['Mail'];
$telefono = $_POST['Telefono'];
$ultimaventa = $_POST['Numeroventa'];
$totalcomprado = 0;
$ultimomonto = $_POST['Total'];
if($cons = $mysqli->prepare("select 1 from clientes WHERE Mail=?"));
$cons->bind_param('s',$mail);
$cons->execute();
$cons->store_result();
$existe=$cons->num_rows > 0;
if ($existe) {
$totalcomprado=totalcomprado+$ultimomonto;
if(!($cons=$mysqli->prepare("UPDATE clientes SET nombre=?,apellido=?,Mail=?,telefono=?,ultimaventa=?,ultimomonto=?,totalcomprado= ? WHERE Mail=?"))){
echo "fallo en la preparacion de la consulta:(".$mysqli->errno.")" .$mysqli->error;
}
$cons->bind_param('sssssiis',$nombre,$apellido,$mail,$telefono,$ultimaventa,$totalcomprado,$mail);
if(!($cons->execute())){
echo "fallo ejecutando la consulta:(".$mysqli->errno.")" .$mysqli->error;
}
$cons->close;
} else {
$totalcomprado=$ultimomonto;
if(!($cons=$mysqli->prepare("INSERT into clientes id,nombre,apellido,Mail,telefono,ultimaventa,ultimomonto,totalcomprado values(?,?,?,?,?,?,?)"))){
echo "fallo en la preparacion de la consulta:(".$mysqli->errno.")" .$mysqli->error;
}
$cons->bind_param('sssssis',$nombre,$apellido,$mail,$telefono,$ultimaventa,$totalcomprado);
if(!($cons->execute())){
echo "fallo ejecutando la consulta:(".$mysqli->errno.")" .$mysqli->error;
}
}
Ps.: The data types to insert are ok, the only one Integer is "ultimomonto"
This is the error:
fallo en la preparacion de la consulta:(0)
( ! ) Fatal error: Call to a member function bind_param() on a non-object in C:\wamp\www\mumushop\compras\verificar.php on line 35
You're missing the parentheses arount the column names in the INSERT statement:
if(!($cons=$mysqli->prepare("INSERT into clientes (id,nombre,apellido,Mail,telefono,ultimaventa,ultimomonto,totalcomprado) values(?,?,?,?,?,?,?)"))){
There's another problem that isn't related to the error:
if($cons = $mysqli->prepare("select 1 from clientes WHERE Mail=?"));
The ; ends this if statement, so you're not using it to execute anything based on whether this is successful. I think you want all the rest of the code to be inside this, so it should be:
if($cons = $mysqli->prepare("select 1 from clientes WHERE Mail=?")) {
$cons->bind_param('s',$mail);
$cons->execute();
$cons->store_result();
$existe=$cons->num_rows > 0;
if ($existe) {
...
} else {
...
}
}
The undefined constant error is coming from this line:
$totalcomprado=totalcomprado+$ultimomonto;
You're missing the $ before totalcomprado, it should be:
$totalcomprado=$totalcomprado+$ultimomonto;
or you can write it as:
$totalcomprado += $ultimomonto;

cant show up my image php from a DB

the problem is when it does return the binary file, pls help me
<!DOCTYPE html>
<html>
<head>
<title>Tienda Online</title>
<FORM action="upload_imagen.php" enctype="multipart/form-data" method="POST">
<input type="file" name="imagen"> Buscar imagen
<input type="submit" value="Buscar">
</FORM>
<div id="visualizar">
</div>
<form action="mostrar_imagen.php" method="POST">
<input type="text" name="valor" >
<input type="submit" value="mostrar">
</form>
</html>
upload_imagen.php this file upload an image and does storage in a DB
<?php
// Conexion a la base de datos
require "db_model.php";
class upload extends db_model {
function whatever() {
// Comprobamos si ha ocurrido un error.
if (!isset($_FILES["imagen"]) || $_FILES["imagen"]["error"] > 0) {
echo "Ha ocurrido un error.";
} else {
var_dump($_FILES["imagen"]);
// Verificamos si el tipo de archivo es un tipo de imagen permitido.
// y que el tamaño del archivo no exceda los 16MB
$permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
$limite_kb = 16384;
if (in_array($_FILES['imagen']['type'], $permitidos) && $_FILES['imagen']['size'] <= $limite_kb * 1024) {
// Archivo temporal
$imagen_temporal = $_FILES['imagen']['tmp_name'];
// Tipo de archivo
$tipo = $_FILES['imagen']['type'];
// Leemos el contenido del archivo temporal en binario.
$fp = fopen($imagen_temporal, 'r+b');
$data = fread($fp, filesize($imagen_temporal));
fclose($fp);
//Podríamos utilizar también la siguiente instrucción en lugar de las 3 anteriores.
// $data=file_get_contents($imagen_temporal);
// Escapamos los caracteres para que se puedan almacenar en la base de datos correctamente.
$data = mysql_real_escape_string($data);
// Insertamos en la base de datos.
$this->query ="INSERT INTO imagenes (imagen, tipo_imagen) VALUES ('$data', '$tipo')";
$resultado = $this->execute_query();
if ($resultado) {
echo "El archivo ha sido copiado exitosamente.";
} else {
echo "Ocurrió algun error al copiar el archivo.";
}
} else {
echo "Formato de archivo no permitido o excede el tamaño límite de $limite_kb Kbytes.";
}
}
}
}
$obj = new upload();
$obj->whatever();
?>
mostrar_imagen.php this section retrives the image in binary format, then i want to show it, so i read that i need a header and send it the type of image it is for example .jpg, .gif but i dont know if a i have an error
<?php
require 'db_model.php';
class mostrar extends db_model {
function __construct()
{
$id = $_POST['valor'];
$this->query = "SELECT imagen, tipo_imagen
FROM imagenes
WHERE imagen_id=$id";
$datos = $this->execute_query_as();
$imagen = $datos['imagen']; // Datos binarios de la imagen.
$tipo = $datos['tipo_imagen']; // Mime Type de la imagen.
// Mandamos las cabeceras al navegador indicando el tipo de datos que vamos a enviar.
---- > my problem is here, i guess
header("Content-type: image/jpg");
echo $imagen;
// A continuación enviamos el contenido binario de la imagen.
}
}
$obj = new mostrar();
?>
db_model.php
<?php
/**
* clase de la base de datos
*/
include_once('config.php');
class db_model
{
private $db_host = "localhost";
private $db_user = "root";
private $db_pass = "";
protected $db_name = "tienda_cartas";
protected $query;
protected $rows = array();
private $conection;
private function open_conection()
{
$this->conection = new mysqli($this->db_host,$this->db_user,$this->db_pass,$this->db_name);
if ($this->conection->connect_errno) {
echo "error al conectar";
die();
} else {
echo "conectado";
}
}
private function close_conection() {
$this->conection->close();
}
protected function execute_query() {
$this->open_conection();
$result = $this->conection->query($this->query);
if(!$result){
echo "no se pudo ejecutar el sql";
}
$this->close_conection();
return $result;
header("location:index.php");
}
protected function execute_query_as() {
$this->open_conection();
$result = $this->conection->query($this->query);
if(!$result){
echo "no se pudo ejecutar el sql";
}
$array_as = $result->fetch_assoc();
if(!$array_as){
echo "no hay incidencias";
die();
}
$this->close_conection();
return $array_as;
}
}
?>
This could be your problem:
$data = mysql_real_escape_string($data);
In your classes you use mysqli_* functions, but this one belongs to the deprecated mysql_* functions. When you call it it will automatically try to open a new database connection with mysql_connect(), which will fail because it doesn't have any information about your host. mysql_real_escape_string() will then return false:
Warning: mysql_real_escape_string(): A link to the server could not be established in test.php on line 2
bool(false)
Just remove the line, escaping binary data will most probably ruin it anyway. Instead you should use prepared statements to prevent SQL injections.

mysql_query() error (Invalid Query) in a searcher php [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 8 years ago.
Improve this question
this is a searcher program php with MySqL this give me a error, and i need a bit help on this...
This is the php Code:
<?php
if ($_POST['buscar'])
{
// Tomamos el valor ingresado
$buscar = $_POST['palabra'];
// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar))
{
echo "No se ha ingresado una cadena a buscar";
}else{
//Conexión a la base de datos
$servidor = "localhost"; //Nombre del servidor
$usuario = "root"; //Nombre de usuario en tu servidor
$password = "1234"; //Contraseña del usuario
$base = "db_maquinas"; //Nombre de la BD
$con = mysql_connect($servidor, $usuario, $password) or die("Error al conectarse al servidor");
mysql_select_db($base, $con) or die("Error al conectarse a la base de datos");
$sql= mysql_query("SELECT * FROM repuestos WHERE id LIKE '%$buscar%' AND descripcion LIKE '%$buscar%' ORDER BY id", $con) or die(mysql_error($con));
$result = mysql_query($sql, $con); //<----LINE 32!!!
// Tomamos el total de los resultados
if($result) { $total = mysql_num_rows($result); } else { die('Invalid query' . mysql_error($con)); }
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td>$field->name</td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<td>".$row["id"]."</td> \n";
echo "<td>".$row["descripcion"]."</td> \n";
echo "<td>".$row["cantidad"]."</td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
echo "¡ No se ha encontrado ningún registro !";
}
}
?>
The error is --> Warning: mysql_query() expects parameter 1 to be string, resource given in C:\xampp\htdocs\maquinas2000\paginas\buscarepuestos.php on line 32
Invalid query {Line 32 is -> $result = mysql_query($sql, $con); }
i work with a Localhost xampp ofc, this give me a lot of troubles this code, i need only this and i'll finish 100% the work, so if anyone can give me the answer of this error i'll be very grateful for that, thx!
You have already executed the query. mysql_query return true or false and you are passing this return value again in mysql_query , make changes this :
$sql= "SELECT * FROM repuestos WHERE id LIKE '%$buscar%' AND descripcion LIKE '%$buscar%' ORDER BY id";// remove mysql_query from this line
$result = mysql_query($sql, $con);
Important : mysql_ is depricated use mysqli instead of that

Categories