PHP - ayuda sentencia SQL

 
Vista:
sin imagen de perfil

ayuda sentencia SQL

Publicado por genexio gonzalez (14 intervenciones) el 31/07/2017 17:51:45
hola amigos necesito aclarar una duda
Tengo 2 tablas

Tabla 1 usuarios
id
nombre
apellido

tabla 2 facturas
numero
id usuario
monto

como seria la sentencia SQL para seleccionar todos los id de usuarios de la tabla 1 y crear una factura en la tabla 2 es decir si son 200 usuarios se me creen 200 registros en la tabla 2

Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de facundo

ayuda sentencia SQL

Publicado por facundo (185 intervenciones) el 31/07/2017 19:49:13
Hola, me viene bien para repasar, dame un momento y te respondo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de facundo

ayuda sentencia SQL

Publicado por facundo (185 intervenciones) el 31/07/2017 20:14:13
mira, lo que hace esto es que te da a elegir el usuario al cual queres insertarle una factura y el monto a ingresar.
Si lo que queres es que se te creen los 200 registros de una todos juntos no podes, porque cada monto es distinto.

Lo unico que le cambie "usuario" por "id_usuario". El nombre de la tabla 1 es usuarios y el nombre de la tabla 2 es factura

Espero que te sirva, cualquier cosa comenta!!



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$link = mysqli_connect('127.0.0.1','root','','prueba');
if (!$link) {
	echo 'hubo un error al intentar conectar a la database';
}
$sql = "SELECT * from usuarios";
$rs = mysqli_query($link,$sql);
?>
 
<form method="post">
	<select name="usuarios">
		<option value="">Seleccione usuario</option>
		<?php while ($usuario=mysqli_fetch_assoc($rs)) { ?>
			<option value="<?=$usuario['id_usuario']?>"><?=$usuario['nombre'] . ' ' . $usuario['apellido']?></option>
		<?php } ?>
 
	</select> <br>
	monto:
	<input type="text" name="monto">
	<input type="submit" name="agregar factura">
 
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
	$id_usuario = $_POST['usuarios'];
	$monto = $_POST['monto'];
	$sql2 = "INSERT INTO factura SET monto='$monto',id_usuario='$id_usuario'";
	mysqli_query($link,$sql2);
 
}

Lo importante es que entiendas el codigo, cualquier cosa avisá
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

ayuda sentencia SQL

Publicado por genexio gonzalez (14 intervenciones) el 01/08/2017 03:38:47
si sera el mismo monto es como una mensualidad y el monto lo sacara de otra tabla ejemplo precios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de facundo

ayuda sentencia SQL

Publicado por facundo (185 intervenciones) el 01/08/2017 04:18:58
entonces lo podes hacer asi:

1
2
3
4
5
6
7
8
$sql2 = "SELECT id_usuario FROM usuarios";
$rs2 = mysqli_query($link,$sql2);
while ($usuarios = mysqli_fetch_assoc($rs2)) {
        $usuId = $usuarios['id_usuario'];
         $sql3 = "UPDATE factura SET id_usuario = '$usuId',monto=500 WHERE id_usuario = '$usuId'";
         mysqli_query($link,$sql3);
 
}

De esta manera vas a estar actualizando las facturas de todos los usuarios a la vez, y todas van a ser de 500, o en vez de 500 podes hacer un form en el cual vas a ingresar el monto deseado

Comenta si te sirvio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

ayuda sentencia SQL

Publicado por genexio gonzalez (14 intervenciones) el 02/08/2017 21:39:14
lo hice asi y no me funciono
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
include('Connections/conexion.php');
$sql2 = "SELECT id FROM usuarios WHERE Nivel='Usuario'";
$rs2 = mysqli_query($conexion,$sql2);
while ($usuarios = mysqli_fetch_assoc($rs2)){
	$usuId = $usuarios['id'];
	$monto = "SELECT monto FROM aranceles WHERE nombre='Mensualidad'";
	$sql3 = "INSERT INTO facturas SET monto='$monto',id='$usuId'";
	mysqli_query($conexion,$sql3);
 
}
header('Location: facturas.php');
?>

pero si coloco un numero en monto si se inserta en la tabla facturas pero cuando coloco la variable no se inserta y es eso lo que me interesa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de facundo

ayuda sentencia SQL

Publicado por facundo (185 intervenciones) el 02/08/2017 23:36:22
El codigo que te escribi yo anda, y pensa.... porque no te ingresa cuando pones "$monto"? donde definiste esa variable y que valor tiene? Para eso tenes que hacer un formulario que cuando le das a "submit" guarde el valor del campo de texto "monto" y termine de hacer el insert
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

ayuda sentencia SQL

Publicado por Genexio (14 intervenciones) el 03/08/2017 18:48:07
En la línea 7 la defini
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de facundo

ayuda sentencia SQL

Publicado por facundo (185 intervenciones) el 05/08/2017 19:27:14
Se podria hacer un JOIN en la sentencia SQL para seleccionar datos de las dos tablas, pero si la tabla Aranceles no tiene ninguna relacion con la tabla Usuarios se complica, por ejemplo la tabla aranceles tendria que tener una columna "id" (que sea la misma id del usuario).

Igualmente no te anda porque donde pones
1
$sql3 = "INSERT INTO facturas SET monto='$monto',id='$usuId'";
la variable $monto es otra consulta sql por lo tanto no te va a andar!

proba haciendo dos consultas de la siguiente manera, y fijate que los nombres coincidan con los de tu base de datos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$sql2 = "SELECT id_usuario FROM usuarios";
$rs2 = mysqli_query($conexion,$sql2);
$sql3 = "SELECT monto FROM aranceles WHERE nombre='Mensualidad'";
$rs3 = mysqli_query($conexion,$sql3);
while ($usuarios = mysqli_fetch_assoc($rs2)){
	$usuId = $usuarios['id_usuario'];
	while ($montos = mysqli_fetch_assoc($rs3)) {
		$monto = $montos['monto'];
		$sql4 = "INSERT INTO facturas SET monto='$monto',id='$usuId'";
		mysqli_query($conexion,$sql4)
 
	}
 
 
}
mysql_close($conexion);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar