Foros del Web » Programando para Internet » PHP »

Problema con una query y PHP

Estas en el tema de Problema con una query y PHP en el foro de PHP en Foros del Web. Hola, Os comento mi problema. Actualmente estoy montando una web local en mi oficina, sin ser algo serio a priori, para administrar una serie de ...
  #1 (permalink)  
Antiguo 15/12/2010, 12:07
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Problema con una query y PHP

Hola,

Os comento mi problema.

Actualmente estoy montando una web local en mi oficina, sin ser algo serio a priori, para administrar una serie de datos y que sean visibles fácilmente a todos. Tengo un index.php en el que muestro una tabla con datos y un doc.php que es un formulario para añadir datos a la tabla. Bueno, pues el problema está aquí.

Para añadir datos utilizo el método POST (no sé si influirá según leáis). Éste es una parte del código:

Código HTML:
<TABLE border="1">
		<FORM action="doc.php" METHOD="POST">
		<tr><td>T&iacute;tulo:</td><td><input type="text" name="nombre"></td></tr>
		<tr><td>Proveedor:</td><td> 
Código PHP:
$buscar=mysql_query("SELECT n_proveedor,id_user,id_company from proveedor") or die ("Error en la consulta");
                
$contar=mysql_num_rows($buscar);
                if(
$contar>0) {
                    echo 
'<select name="nomproveedor">';
                    while(
$datos=mysql_fetch_assoc($buscar)) {
                        echo 
'<option value="'.$datos['n_proveedor'].'">'.$datos['n_proveedor'].'</option>';
                    }
                    echo 
'</select>';
                } 
En la etiqueta <select>, utilizo una sentencia sql para obtener los valores de la tabla proveedor y mostrarlos de tal manera que al enviar el formulario se añada el proveedor que yo elija. Hasta aquí todo funciona correctamente ya que consigo mostrarlo y añadirlo. Como veis, la tabla proveedor está compuesta de n_proveedor,id_user e id_company. Después de rellenar una serie de datos más, realizo un insert para añadirlo a la base de datos y mostrarlo en la tabla en index.php. El insert es el siguiente:

Código PHP:
mysql_query("INSERT INTO tabla1 (nombres,proveedor,id_usuario,id_empresa,f_creac,f_cierre,notas,progreso) VALUES ("VARIABLES A A&#209;ADIR") or die("Fail"); 
El tema es que los valores de id_usuario e id_empresa tengo que obtenerlos de la tabla proveedor, dependiendo del n_proveedor que elija. id_usuario = id_user e id_empresa = id_company, ya que si no se me añade un 0 en cada campo y es necesario reflejar esas ids. Sabríais cómo obtenerlas? Supongo que tendría que hacer una select tipo:

Código PHP:
$prov=$_POST['nomproveedor'];
$var=mysql_query("SELECT n_proveedor,id_user,id_company from proveedor where n_proveedor='".$prov."'") or die ("Error en la consulta"); 
Pero no consigo sacar cómo almacenar esos datos para después hacer el insert. No sé si se me ha entendido correctamente. Si no me entendéis preguntadme y a ver si os puedo responder algo mejor. En principio creo que sí que se ha entendido. A ver si podéis ayudarme.

Un saludo y ¡muchas gracias!
  #2 (permalink)  
Antiguo 15/12/2010, 12:12
 
Fecha de Ingreso: septiembre-2005
Mensajes: 35
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Problema con una query y PHP

Código PHP:
where n_proveedor=[B]'[/B]".$prov."[B]'[/B]
n_proveedor suena a campo Integer... lo estas igualando con comillas simples.
  #3 (permalink)  
Antiguo 15/12/2010, 12:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

La verdad que suena a Integer, pero es un Varchar(45) xD
  #4 (permalink)  
Antiguo 15/12/2010, 13:01
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Problema con una query y PHP

$buscar=mysql_query("SELECT n_proveedor,id_user,id_company from proveedor") or die ("Error en la consulta");
$contar=mysql_num_rows($buscar);
if($contar>0) {
echo '<select name="nomproveedor">';
while($datos=mysql_fetch_assoc($buscar)) {
echo '<option value="'.$datos['n_proveedor']."|".$datos['id_user']."|".$datos['id_company'].'">'.$datos['n_proveedor'].'</option>';
}
echo '</select>';
}



y cuando lo obtengas en donde lo insertas :

$nomproveedor=split("|", $nomproveedor);
  #5 (permalink)  
Antiguo 15/12/2010, 16:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Pero eso dónde lo meto? No me acaba de encajar. Osea que no me hace falta otra select para sacar los números? No lo entiendo, a ver si un poco más explicado me entero xD. Muchas gracias.

Un saludo.
  #6 (permalink)  
Antiguo 15/12/2010, 17:11
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con una query y PHP

pues no se si entendi bien tu pregunta pero voy a ver si te puedo ayudar, obtienes los datos del proveedor y hasta ahi todo muy bien cierto?? pues, cuando selecciones el proveedor y lo pases al siguiente campo sencillamente envia el id del proveedor que seleccionaste, luego en la pagina donde vas a hacer la insercion haces una consulta segun ese id ejemplo.

Código PHP:
Ver original
  1. echo '<select name="nomproveedor">';
  2.                     while($datos=mysql_fetch_assoc($buscar)) {
  3.                         echo '<option value="'.$datos['id_proveedor'].'">'.$datos['nombre_proveedor'].'</option>';
  4.                     }
  5.                     echo '</select>';
eso para que te salgan los nombres del proveedor pero envies sea el id, luego sencillamente en la pagina que recibes el select haces la consulta

Código PHP:
Ver original
  1. $id_proveedor = $_POST['nomproveedor'];
  2. $query = mysql_query("SELECT * FROM proveedor WHERE id_proveedor='$id'") or die (mysql_error());
  3. while($row = mysql_fetch_array($query)){
  4.     $id_usuario = $row['id_usuario'];
  5.     /*traes todos los datos*/
  6. }
  7. #haces el insert

espero que halla entendido bien tu duda.

por cierto

Cita:
Iniciado por GabyCrisostomo Ver Mensaje
echo '<option value="'.$datos['n_proveedor']."|".$datos['id_user']."|".$datos['id_company'].'">'.$datos['n_proveedor'].'</option>';
esto no es una buena practica enviar muchos parametros en un option

Cita:
Iniciado por GabyCrisostomo Ver Mensaje
$nomproveedor=split("|", $nomproveedor);
aca la funcion split esta obsoleta se utiliza explode
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 15/12/2010, 19:02
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Hola otra vez.

A ver, te/os comento xD. Ahora mismo tengo un código en PHP en el FORM; el siguiente:

Código PHP:
        <?php
                $buscar
=mysql_query("SELECT n_proveedor,id_user,id_company from proveedor") or die ("Error en la consulta");
                
$contar=mysql_num_rows($buscar);
                if(
$contar>0) {
                    echo 
'<select name="nomproveedor">';
                    while(
$datos=mysql_fetch_assoc($buscar)) {
                        echo 
'<option value="'.$datos['idproveedor'].'">'.$datos['n_proveedor'].'</option>';
                    }
                    echo 
'</select>';
                }
        
?>
Así obtengo el nombre y además tengo el id del proveedor. Ok, hasta aquí todo bien. Después sigo rellenando campos (fecha, notas y demás), hasta llegar al botón de submit y cerrar el FORM. Una vez que acaba, cierro también la tabla y justo debajo abro otro PHP con el siguiente código:

Código PHP:
$date date("Y-m-d H:i:s");
        
$id_proveedor $_POST['nomproveedor'];
        if(!empty(
$_POST['check'])) {
            
$query mysql_query("SELECT * FROM proveedor WHERE n_proveedor='$id_proveedor'") or die (mysql_error());
                    while(
$row mysql_fetch_array($query)){
                        
$id_usuario $row['id_usuario'];
                        
/*traes todos los datos (ESTO NO ENTIENDO MUY BIEN QUÉ SIGNIFICA)*/
                    
}
        }    
        
mysql_query("INSERT INTO tabla1(nombre,proveedor,id_usuario,id_empresa,f_creac,f_cierre,notas,progreso) VALUES ('".$nombre."','".$nomproveedor."','".$id_usuario."','".$companyid."','".$date."','".$finishdate."','".$notes."','0')") or die("Fail");
        echo 
"<script language=\"javascript\">window.location.href = \"index.php?\";</SCRIPT>"
Pues cuando hago click en el botón para enviar el insert, se añaden todos los datos pero el que necesito de la otra tabla, en este caso id_usuario, no lo añade, sigue añadiendo un 0.

Las dos tablas que utilizo son:

proveedor, que contiene idproveedor como primaria y después n_proveedor (el nombre), id_user e id_company.

tabla1, que contiene n_id como primaria y después nombre, proveedor, id_usuario (ésta es en la que tengo que añadir el id obtenido anteriormente), id_empresa (tendría que hacer lo mismo que en id_usuario), f_creac, f_cierre, progreso y notas.


Me estoy volviendo loco ya >_<. A ver si así se entiende un poco mejor...

¡Muchas gracias a todos!
  #8 (permalink)  
Antiguo 15/12/2010, 19:06
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con una query y PHP

pues yo coloque id_usuario xq no conozco el nombre de tus campos pero en realidad es id_user que es el campo que tienes tu en tu tabla segun lo que me estas comentando, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 15/12/2010, 19:11
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Sigue sin añadirlo cambiando id_usuario por id_user. Es que hago un:

echo $id_proveedor;

En el segundo PHP y no me muestra nada... es como si no la guardara, no?
  #10 (permalink)  
Antiguo 15/12/2010, 19:22
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con una query y PHP

recibiste el campo del formulario
Código PHP:
Ver original
  1. $id_proveedor = $_POST['nomproveedor'];
?? xq si no haces eso no te llegara el valor del proveedor que seleccionaste saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #11 (permalink)  
Antiguo 15/12/2010, 19:28
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Es así como lo tengo:

Código PHP:
        $id_proveedor $_POST['nomproveedor'];
        echo 
$id_proveedor
Ésta es la primera parte del código:

Código PHP:
        <FORM action="doc.php" METHOD="POST">
        <tr><td>T&iacute;tulo:</td><td><input type="text" name="nombre"></td></tr>
        <tr><td>Proveedor:</td><td>
        <?php
                $buscar
=mysql_query("SELECT n_proveedor,id_user,id_company from proveedor") or die ("Error en la consulta");
                
$contar=mysql_num_rows($buscar);
                if(
$contar>0) {
                    echo 
'<select name="nomproveedor">';
                    while(
$datos=mysql_fetch_assoc($buscar)) {
                        echo 
'<option value="'.$datos['idproveedor'].'">'.$datos['n_proveedor'].'</option>';
                    }
                    echo 
'</select>';
                }
        
?>
        <tr><td>Fecha de cierre:</td><td><input type="text" name="finishdate"></td></tr>
        <tr><td>Notas:</td><td><textarea rows=3 cols=20 name="notes"></textarea></td></tr>
        <tr><td colspan="2"><center><input type="submit" name="check" value="A&ntilde;adir nueva subasta"> 
        <input type="button" value="Volver atr&aacute;s" onClick="history.back()"></center></td></tr>
        </FORM>
    </TABLE>
La segunda parte es la que te he puesto anteriormente,

Código PHP:
$date date("Y-m-d H:i:s");
        
$id_proveedor $_POST['nomproveedor'];
        if(!empty(
$_POST['check'])) {
            
$query mysql_query("SELECT * FROM proveedor WHERE n_proveedor='$id_proveedor'") or die (mysql_error());
                    while(
$row mysql_fetch_array($query)){
                        
$id_usuario $row['id_usuario'];
                        
/*traes todos los datos (ESTO NO ENTIENDO MUY BIEN QUÉ SIGNIFICA)*/
                    
}
        }    
        
mysql_query("INSERT INTO tabla1(nombre,proveedor,id_usuario,id_empresa,f_creac,f_cierre,notas,progreso) VALUES ('".$nombre."','".$nomproveedor."','".$id_usuario."','".$companyid."','".$date."','".$finishdate."','".$notes."','0')") or die("Fail");
        echo 
"<script language=\"javascript\">window.location.href = \"index.php?\";</SCRIPT>"

Aparentemente parece estar bien, no? =/...

Saludos
  #12 (permalink)  
Antiguo 15/12/2010, 19:36
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con una query y PHP

y no te imprime nada?? eso si esta extraño has un print_r($_POST) en la pagina donde recibes el valor del <select> para ver si no te esta enviando nada
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #13 (permalink)  
Antiguo 15/12/2010, 19:42
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Supongo que te referirás al FORM en el que está <select>. Al darle al botón para añadir a la tabla (lo pongo antes del cierre ?>), me da como resultado esto:

Array ( [nombre] => 13123 [nomproveedor] => [finishdate] => 2009/01/01 14:02 [notes] => 1 [check]


Parece que no coje el valor...
  #14 (permalink)  
Antiguo 15/12/2010, 19:50
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Ya está! Cambié lo siguiente:

Código PHP:
                        echo '<option value="'.$datos['idproveedor'].'">'.$datos['n_proveedor'].'</option>'
por:

Código PHP:
                        echo '<option value="'.$datos['n_proveedor'].'">'.$datos['n_proveedor'].'</option>'
Y ya va perfecto! Lo que no sé es porqué si quito los /* */ del script de abajo (el de volver al index.php) nada más hacer click en el botón para ir a la página donde relleno los datos, se sale automáticamente. Salgo de una y me meto en otra jajaja
  #15 (permalink)  
Antiguo 15/12/2010, 19:50
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con una query y PHP

bueno revisando bien no te da ningun valor sencillamente xq en la consulta que realizas para generar las opciones del select no indicas el campo idproveedor
Cita:
Código PHP:
$buscar=mysql_query("SELECT n_proveedor,id_user,id_company from proveedor") or die ("Error en la consulta"); 
entonces la consulta quedaria
Código PHP:
$buscar=mysql_query("SELECT idproveedor,n_proveedor,id_user,id_company from proveedor") or die ("Error en la consulta"); 
para que te pueda traer resultado y puedas enviar datos y hacer tu consulta saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #16 (permalink)  
Antiguo 15/12/2010, 19:55
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

También cambié eso, es verdad. Pero al añadir, en la tabla me muestra una fila sin datos y justo debajo la fila con los que yo he añadido, y así cada vez que añado uno. Qué raro.

Edit: Ya está arreglado esto también.
  #17 (permalink)  
Antiguo 15/12/2010, 20:03
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Bueno, en principio parece que todo está bien. Si tengo alguna dudilla más, preguntaré por aquí. No sé cómo darte Karma (no sé si lo añadimos nosotros o cómo va).

Muchas gracias por toda tu ayuda, de verdad. Así da gusto trabajar y aprender.

¡Un saludo!
  #18 (permalink)  
Antiguo 15/12/2010, 20:03
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con una query y PHP

solucionaste??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #19 (permalink)  
Antiguo 15/12/2010, 20:04
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Sí sí, lee mi anterior mensaje. Eres un crack.
  #20 (permalink)  
Antiguo 15/12/2010, 20:08
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con una query y PHP

Cita:
Iniciado por pep0te Ver Mensaje
Bueno, en principio parece que todo está bien. Si tengo alguna dudilla más, preguntaré por aquí. No sé cómo darte Karma (no sé si lo añadimos nosotros o cómo va).

Muchas gracias por toda tu ayuda, de verdad. Así da gusto trabajar y aprender.

¡Un saludo!
perfecto mientras publicaba lo hiciste tu tambien jaja
y el karma se da en el yin-yang que tenemos debajo del nombre jaja saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #21 (permalink)  
Antiguo 15/12/2010, 20:11
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Bueno, solo me sale debajo de mi nombre y me dice que tengo 0 de karma :S .

Edit: Me voy a la cama (en España es tarde xD). Mañana veo tu contestación y a ver si puedo añadirte algo de Karma :) .

Muchas gracias de nuevo!!!
  #22 (permalink)  
Antiguo 15/12/2010, 20:24
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema con una query y PHP

pues es en el yin-yang de quien le vas a añadir karma, si te fijas debajo de mi nombre hay 3 imagenes, bueno anque no se si en tu caso no salgan porque no tienes los 30 dias y 30 mensajes todavia, buenos saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #23 (permalink)  
Antiguo 16/12/2010, 02:26
 
Fecha de Ingreso: agosto-2010
Mensajes: 81
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con una query y PHP

Claro, a mí es que no me sale el yin-yang. Cuando llegue a 30 te doy karma jajaja.

Un saludo.

Etiquetas: query
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




La zona horaria es GMT -6. Ahora son las 11:20.