PHP - Insertar registro numérico desde un buscador

   
Vista:

Insertar registro numérico desde un buscador

Publicado por steve7777 (5 intervenciones) el 16/04/2013 15:51:15
Hola,

Haber si me podeis ayudar. Se trata de un buscador que me muestra el producto, el stock i el sutmit de insertar. Queria hacer que en el misma busqueda yo cambie el stock y al dar insertar se haga el update en msql.
El codigo de searh.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<h2>Resultados</h2>
<table border='0'  id='content' cellspacing='0' cellpadding='0'>
<tr>
<th>Modelo</th>
<th>Stock</th>
</tr>
<?while ($row = mysql_fetch_assoc($rsd)){?>
<tr>
<form action="modificar.php" method="post">
<td><input type="text" name="nom" size="40" value="<?=$row['PRDDSC']?>"/></td>
<td><input type="text" name="valor" size="2" maxlength="1"
onKeyPress="return acceptNum(event)" value="<?=$row['STOCK']?>"/></td>
<td><input type="submit" value="Insertar" /></td>
</tr></form>
<?
 
}


la llamada a modificar.php:

1
2
3
4
5
6
7
8
9
$rsd = mysql_query($sql);
$total =  mysql_num_rows($rsd);
 
while ($row = mysql_query($rsd)){
    if ($row['STOCK'] != $stock){
        $sql = "UPDATE productos SET STOCK = $stock WHERE PRDDSC = $model";
        echo "Stock introduït";
    }
}


Queria saber donde tengo el fallo que me impide actualizar el registro
.
De antemano gracias.
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 xve

Insertar registro numérico desde un buscador

Publicado por xve (5518 intervenciones) el 16/04/2013 20:26:16
Hola Steve, nos faltaría ver que contiene la variable $sql y la variable $stock en el archivo modificar.php, ya que para realizar la modificación, valida un registro de la base de datos contra esa variable.

Si esa variable, es del campo valor del formulario tendrías que comparar el registro contra $_POST["valor"], algo así:

1
2
3
4
5
if ($row['STOCK'] != $_POST["valor"]){
    $sql = "UPDATE productos SET STOCK = ". $_POST["valor"]." WHERE PRDDSC = $model";
    // Ejecutamos el update...
    $result=mysql_query($sql);
    ...

Coméntanos, ok?
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

Insertar registro numérico desde un buscador

Publicado por steve7777 (5 intervenciones) el 17/04/2013 10:58:41
Hola xve, gracias por reponder.tan rapido.

La variable $stock es $_POST_['valor'], habia hecho una igualación mas arriba. Te pego el código modificar. php para que lo veas mas claro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$model=$_POST['PRDDSC'];
 $stock=$_POST['STOCK'];
 
 include("dbcon.php");
 
	$sql = "select * from productos ORDER BY PRDDSC";
 
 $rsd = mysql_query($sql);
 $total =  mysql_num_rows($rsd);
 
 while ($row = mysql_query($rsd)){
    if ($row['STOCK'] != $stock){
        $sql = "UPDATE productos SET STOCK = $stock WHERE PRDDSC = $model";
        $result=mysql_query($sql);
    }
 }


He añadido la ultima linea que me has puesto en tu codigo ($result=mysql_query($sql);), pero igualmente no he tenido exito.

Gracias.
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 xve

Insertar registro numérico desde un buscador

Publicado por xve (5518 intervenciones) el 17/04/2013 14:44:48
Hola Steve, la verdad es que haces cosas que no se muy bien porque las haces... prueba así:

1
2
3
4
5
6
7
$model=$_POST['PRDDSC'];
$stock=$_POST['STOCK'];
 
include("dbcon.php");
 
$sql = "UPDATE productos SET STOCK = $stock WHERE PRDDSC = $model";
$result=mysql_query($sql);

Esto es así de simple para actualizar un registro siempre y cuando $stock y $model sean campos numéricos.

Espero que te sirva.
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

Insertar registro numérico desde un buscador

Publicado por steve7777 (5 intervenciones) el 17/04/2013 15:10:57
Hola xve,

La variable $model es de tipo char. Que tendría que hacer entonces?

Gracias
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 xve

Insertar registro numérico desde un buscador

Publicado por xve (5518 intervenciones) el 17/04/2013 16:32:03
Tendría que ir entre comillas... algo así:
1
$sql = "UPDATE productos SET STOCK = $stock WHERE PRDDSC = '$model'";


Coméntanos, ok?
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

Insertar registro numérico desde un buscador

Publicado por steve7777 (5 intervenciones) el 17/04/2013 16:58:07
He probado el codigo y sigue sin resultar. He puesto un echo $stock para ver que me manda la variable, pero no me muestra nada. Creo que el fallo lo tengo a la hora de hacer el while en el shearh.php. El codigo es el siguiente:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<script language="JavaScript">
<!--
var nav4 = window.Event ? true : false;
function acceptNum(evt){    
// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57    
var key = nav4 ? evt.which : evt.keyCode;    
return (key <= 13 || (key >= 48 && key <= 57));
}
//-->
</script> 
<?php

function checkValues($value)
{
	 // Use this function on all those values where you want to check for both sql injection and cross site scripting
	 //Trim the value
	 $value = trim($value);
	 
	// Stripslashes
	if (get_magic_quotes_gpc()) {
		$value = stripslashes($value);
	}
	
	 // Convert all &lt;, &gt; etc. to normal html and then strip these
	 $value = strtr($value,array_flip(get_html_translation_table(HTML_ENTITIES)));
	
	 // Strip HTML Tags
	 $value = strip_tags($value);
	
	// Quote the value
	$value = mysql_real_escape_string($value);
	return $value;
	
}	

include("dbcon.php");

$rec = checkValues($_REQUEST['val']);
//get table contents

if($rec)
{

	$sql = "select * from productos where PRDDSC like '%$rec%'ORDER BY PRDDSC";
	
}

else

{

	$sql = "select * from productos ORDER BY PRDDSC";

}



$rsd = mysql_query($sql);
$total =  mysql_num_rows($rsd);

?>




<h2>Resultados</h2>
<table border='0'  id='content' cellspacing='0' cellpadding='0'>
<tr>
<th>Modelo</th>
<th>Stock</th>
</tr>
<?while ($row = mysql_fetch_assoc($rsd)){?>  
<tr>
<form action="" method="post">
<td><input name="nom" size="40" value="<?=$row['PRDDSC']?>"/></td>
<td><input type="text" name="valor" size="2" maxlength="1"
onKeyPress="return acceptNum(event)" value="<?=$row['STOCK']?>"/></td>
<td><input type="submit" value="Insertar" /></td>

</tr></form>
<? 

 }




 
 

 echo "</table>";


if($total==0){ echo '<div class="no-rec">No Record Found !</div>';}


 
 
?>


La cosa es que sale un sudmit para cada resultado, del cual, al cambiar el stock y dar insertar actualice.

Gracias
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

Insertar registro numérico desde un buscador

Publicado por steve7777 (5 intervenciones) el 17/04/2013 19:33:22
He hecho unas nuevas modificaciones.
search.php:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<h2>Resultados</h2>
<table border='0'  id='content' cellspacing='0' cellpadding='0'>
<tr>
<th>Id</th>
<th>Modelo</th>
<th>Stock</th>
</tr>
<?while ($row = mysql_fetch_assoc($rsd)){
$i++;  ?>
<tr>
<form action="" method="post">
<td><input name="id" size="5" value="<?=$row['IDPRD']?>"/></td>
<td><?=$row['PRDDSC']?></td>
<td><input type="text" name="valor" size="2" maxlength="1"
onKeyPress="return acceptNum(event)" value="<?=$row['STOCK']?>"/></td>
<input type="hidden" name="stock_<?PHP echo $i; ?>" value="<?echo $row['STOCK'];?>"/>
<input type="hidden" name="id_<?PHP echo $i; ?>" value="<?echo $row['IDPRD'];?>"/>
</tr>
 
<?
 }?>
 <tr>
<td><br /></td>
</tr>
<tr>
<td> <input type="submit" value="Actualizar" /></td>
</tr></form>
 
La variable $i Tiene valor -1.
 
modificar.php:
 
include("dbcon.php");
 
$sql = "select * from productos ORDER BY PRDDSC";
 
$rsd = mysql_query($sql);
$total =  mysql_num_rows($rsd);
$i=-1;
while ($row = mysql_fetch_assoc($rsd)){
$i++;
$stock [$i]= $_POST['stock_[$i]'];
$id[$i]= $_POST['id_[$i]'];
$sql = "UPDATE productos SET STOCK = $stock[$i] WHERE IDPRD = $id[$i]";
$result=mysql_query($sql);
}
echo "STOCK ACTUALIZADO";
?>


Pero tampoco he tenido exito. He cambiado todos los sudmits por 1 solo y lo he convertido en una array. No se si es mejor o me estoy complicando.
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