Foros del Web » Programando para Internet » PHP »

Variable dentro del query

Estas en el tema de Variable dentro del query en el foro de PHP en Foros del Web. Hola como estan?? tengo un problema, tengo un formulario para modificar registros en una base de datos que tiene multiples tablas. Para simplificar las cosas ...

  #1 (permalink)  
Antiguo 03/04/2008, 14:37
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Variable dentro del query

Hola como estan?? tengo un problema, tengo un formulario para modificar registros en una base de datos que tiene multiples tablas. Para simplificar las cosas aplique un combobox con las diferentes tablas y defino una variable que contendra este valor para poder cargarlo en el query asi el usuario tiene simplemente que seleccionar la tabla correspodiente a la modificacion que pretente realizar.

El problema que tengo es el siguiente, mi query es asi
Código PHP:
$sql "select * from $tabla where id='$_POST[buscar]' OR cedula='$_REQUEST[buscar]'"
en este caso la variable $tabla corresponde al combobox. Ok, el problema va cuando ejecuto la pagina me aparece el siguiente error

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\php\modificarO.php on line 44
dato no encontrado.

La cosa es que la pagina funciona sim problema alguno solo que no quiero que de el error. Facilmente podria usar el @ en el mysql_fetch_array para que no aparezca pero digamos que no es la idea no.

Ahora pase la siguiente instruccion
Código PHP:
$consultamysql_query($sql,$conexion) or die ($sql .mysql_error()."" ); 
y me da el error que se produce es directo en el query y supongo que es por la variable que no la estoy pasando bien. El error es este

select * from where id='' OR cedula=''You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where id='' OR cedula=''' at line 1

que corresponde a la linea del query

Podrian ayudarme, gracias
  #2 (permalink)  
Antiguo 03/04/2008, 14:44
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

cedula='$_REQUEST[buscar]' por que no usas con la que recibes.. osea REQUEST te sirve para obtener datos de POST Y GET entonces intenta con la que usas..


o Coloca puntos antes y despues asi

$sql = "select * from $tabla where id='".$_POST[buscar]."' OR cedula='".$_REQUEST[buscar]."'";

Salu2..! Espero te sirva..
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #3 (permalink)  
Antiguo 03/04/2008, 14:56
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Re: Variable dentro del query

Esta expresion es pésima: $_POST[buscar], funciona teoricamente, pero no es nada recomendable, mejor simplemente asigna a una variable ese valor y luego haz la consulta:

$pbus = $_POST["buscar"];
$rbus = $_REQUEST["buscar"];

Otro problema es que estás encerrando entre comillas un indice de tu tabla, o sea el id, estás seguro que es una cadena de carácteres y no un campo numérico? Si es numérico la cosa quedaría así:

$sql = "Select * from $tabla where id = $pbu or cedula = '$rbus'";
  #4 (permalink)  
Antiguo 03/04/2008, 14:57
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

si, eso es algo que me di cuenta mientras escribia para madar este post. Gracias por tu respuesta pero aun me da el mismo error. Ya habia acomodado el post (que es por donde recibo) en el caso de la cedula y probe con la sentencia como me sugieres y nada, todavia continua el error.

Aun esperando la solucion graciassss
  #5 (permalink)  
Antiguo 03/04/2008, 15:07
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

Hola eljavista, te comento que en este caso, ambos campos son netamente numericos y probe con la opcion que me indicas, designando las variables y haciendo el query asi
Código PHP:
$sql "Select * from $tabla where id=$pbus or cedula=$pbus"
y con la varible unica
Código PHP:
$pbus $_POST["buscar"]; 
y aun me da el error
  #6 (permalink)  
Antiguo 03/04/2008, 15:09
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Por que en vez de colocar * colocas los campos que necesitas?? y coloca comillas simples en las variables de tu sentencia Select..

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #7 (permalink)  
Antiguo 03/04/2008, 15:12
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

en este caso es porque tengo muchos campos, específicamente 16 campos por registro y tengo que colocar todos los campos como editables
  #8 (permalink)  
Antiguo 03/04/2008, 15:16
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Te coloc un ejemplo de un Select funcional

mysql_query("SELECT count(size) as current FROM tabla where type= '$clasi' and size='$size'")


Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #9 (permalink)  
Antiguo 03/04/2008, 15:23
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

amigo ahi si que me dejaste fly porque no entendi muy bien, digamos que soy nuevo con php y aun me toca darme golpes que da miedo jejeje
  #10 (permalink)  
Antiguo 03/04/2008, 15:26
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Tambien verifica si estas recibiendo las variables que estas colocando en el select..

$sql = "Select * from '$tabla' where id='$pbus' or cedula='$pbus'";

Creo que con esto bastara..

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #11 (permalink)  
Antiguo 03/04/2008, 16:05
 
Fecha de Ingreso: marzo-2008
Ubicación: SanTelmo City
Mensajes: 12
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: Variable dentro del query

Quizas el error esta en la salida de los datos de la funcion mysql_query, envia en tu proximo post la funcion completa para poder analizarla mas a fondo.


Saludos
  #12 (permalink)  
Antiguo 03/04/2008, 16:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

la funcion completa la tengo asi
Código PHP:
<?php 

include "conexion.php";
$tabla=$_POST['base'];

$sql"select * from $tabla where id='$_POST[buscar]' or nombre='$_POST[buscar]'";

$consultamysql_query($sql,$conexion);

if(list (
$id,$nombre,$apellido,$cedula,$sexo,$email,$codigo,$telefono,$fecha,$opcional,$egreso,$carrera,$pactual,$banco,$deposito) = mysql_fetch_array($consulta)) {

?>
  #13 (permalink)  
Antiguo 03/04/2008, 18:57
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Variable dentro del query

Cita:
select * from where id='' OR cedula=''You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where id='' OR cedula=''' at line 1
Falta indicar la tabla. Al parecer tu variable $tabla no está trayendo el valor que requieres con el nombre de la tabla.

Un saludo,
  #14 (permalink)  
Antiguo 04/04/2008, 09:52
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

la variable $tabla la traigo por un combobox de esta manera
Código HTML:
<label><select name="base" id="select">
    <option value="dhumanos">Derechos Humanos</option>
    <option value="dinternacional">Derecho Internacional Humanitario</option>
</select></label> 
y me da el error que comentas
  #15 (permalink)  
Antiguo 04/04/2008, 09:59
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Prueba asi.. tambien prueba a ver si $conexion esta bien definida con el usuario, el servidor, y la Base de datos.

$sql = "Select * from '$tabla' where id='$pbus' or cedula='$pbus'";

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #16 (permalink)  
Antiguo 04/04/2008, 10:06
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

ayer Eljavista me propuso hacer el mismo cambio pero no me funciono porque me da justamente el mismo error. En la variable $conexion las definiciones las tengo bien porque uso ese archivo para todas mis pruebas en local y no tengo problema con ella. Ya me tiene locoooo ese problemita jejeje
gracias por responder
  #17 (permalink)  
Antiguo 04/04/2008, 10:21
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Ok postea el codigo tanto de conexion.php como el del formulario donde jalas la info..

Salu2..!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #18 (permalink)  
Antiguo 04/04/2008, 10:26
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Tambien puedes verificar si las variables se estan pasando bien por medio de..

var_dump( $_POST )

asi te mostrara en pantalla los valores de todas las variables POST que se estan pasando en ese momento..!

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #19 (permalink)  
Antiguo 04/04/2008, 10:44
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

Hice como me comentaste y efectivamente la variabla de la tabla si esta corriendo

array(3) { ["buscar"]=> string(1) "1" ["base"]=> string(8) "dhumanos" ["Submit"]=> string(6) "Submit" }

Ahora pude ser que estoy mandando mal el array??

Código PHP:
if(list ($id,$nombre,$apellido,$cedula,$sexo,$email,$codigo,$telefono,$fecha,$opcional,$egreso,$carrera,$pactual,$banco,$deposito) = mysql_fetch_array($consulta)) { 
  #20 (permalink)  
Antiguo 04/04/2008, 11:12
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

MM si los campos en list() estan iguales a los del Array creo que no habria problema.. Pero no esta de mas revisarlos.. :p

Aunque tambien esta el resultado haz probado el SQL en mysql..?? El que estas introduciendo ?? Revisa a ver si te tira algun error o no te regresa nada??

Seria bueno que lo probaras a ver..

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #21 (permalink)  
Antiguo 04/04/2008, 12:42
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

Hola.... aun no doy con la falla... aparentemente no hay ningun error y ya lo probe en el sql. El problema me da es con el combobox porque si lo cambio y en el query coloco directamente el nombre de la tabla todo funciona de las mil maravillas. Alguien me podria ayudar para encontrar otro metodo que no sea el del combobox para seleccion de tablas por formulario??? o alguien tiene la solucion a esto?? HELLLLPPPPPP
  #22 (permalink)  
Antiguo 04/04/2008, 12:46
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Si el archivo que te hace el SQL lo tienes en un include y no como action del form no debes colocarle $_POST[] solo colocas la variable..

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #23 (permalink)  
Antiguo 04/04/2008, 12:53
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

sin el $_POST[] no llega ni a ejecutar la busqueda y ahora si lo hace solo que me da el error
  #24 (permalink)  
Antiguo 04/04/2008, 13:01
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Puedes colocar la parte en como llamas al archivo que te hace el SQL.

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #25 (permalink)  
Antiguo 04/04/2008, 13:06
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

<?php
$conexion=mysql_connect("localhost","root","");
mysql_select_db("inscripciones",$conexion);
?>
  #26 (permalink)  
Antiguo 04/04/2008, 13:06
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Una cosa mas probastes con las comillas simples en la variable tabla asi..
$tabla=$_POST['base'];
$buscar=$_POST['buscar'];

$sql= "select * from $tabla where id='$_POST[buscar]' or nombre='$_POST[buscar]'";

Por que tienes 2 variables buscar??

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #27 (permalink)  
Antiguo 04/04/2008, 13:12
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

$conn = db_connect("localhost", "root", "clave", "Base de Datos");

if ($conn) {
$result = mysql_query("select * from '$tabla' where id='$buscar' or nombre='$buscar2'");
}

Prueba a ver de esta manera a ver que tal te sale..

Salu2..!!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #28 (permalink)  
Antiguo 04/04/2008, 13:12
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

actualmente las tengo con comillas simple que es como tengo configurado todo. La variable $buscar olvidala, eso era una prueba cuando cambie en el query los $_POST[] por variables. En el caso de la doble mencion en el query es que por un solo textfield quiero dar la opcion para recuperar por campos: ID y CEDULA y ambos son numericos
  #29 (permalink)  
Antiguo 04/04/2008, 13:23
Avatar de agressor  
Fecha de Ingreso: noviembre-2007
Ubicación: Knocking the Death Door..
Mensajes: 368
Antigüedad: 17 años
Puntos: 3
Re: Variable dentro del query

Probastes lo que te mande?

Crear la conexion al mismo tiempo que realizas el query..?


Salu2..!
__________________
Somos lo que nosotros queremos ni mas ni menos..
No hay dia mas perdido que aquel en que no hemos reido..
La vida es tal y como debe ser...
Nadie vivira por ti...
  #30 (permalink)  
Antiguo 04/04/2008, 13:27
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Variable dentro del query

Hice esto:
Código PHP:
$conn db_connect("localhost""root""""inscripciones");

$tabla=$_POST['base'];
$buscar=$_POST['buscar'];  

if (
$conn) { 
$result mysql_query("Select * from $tabla where id='$buscar' or cedula='$buscar'");

Y no se conecta a la base de datos ya que me da el siguiente error
Fatal error: Call to undefined function db_connect() in C:\wamp\www\php\modificar.php on line 23 - es la linea del db_connect
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:10.