PHP - el array solo graba un registro

   
Vista:

el array solo graba un registro

Publicado por mario (17 intervenciones) el 02/01/2014 00:08:46
hola amigos, podrian ayudarme y decirme el por que el ARRAY solo me guarda un registro, muchas gracias.

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
<?php
session_start();
 
 $bd_host = "localhost";
  $bd_usuario = "root";
  $bd_password = "";
  $bd_base = "ajax";
 
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);?>
 
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Enviar formulario sin recargar</title>
<script language="javascript" src="jquery-1.3.min.js"></script>
<script language="javascript">
 
$(document).ready(function() {
    $().ajaxStart(function() {
        $('#loading').show();
        $('#result').hide();
    }).ajaxStop(function() {
        $('#loading').hide();
        $('#result').fadeIn('slow');
    });
   $('#form,  #fo3').submit(function() {
        $.ajax({
            type: 'POST',
            url: $(this).attr('action'),
            data: $(this).serialize(),
            success: function(data) {
                $('#result').html(data);
 
            }
        })
 
        return false;
    });
})
</script>
<style type="text/css">
<!--
body,td,th {
	color: #333333;
	font-family:Arial, Helvetica, sans-serif;
	font-size:12px;
}
fieldset {
	width:380px;
	margin:auto;
}
#result {
	float:right;
	position:fixed;
	width:280px;
	padding:10px;
	border:1px solid #bfcddb;
	margin:auto;
	margin-top:10px;
	text-align:center;
}
-->
</style>
</head>
 
<body>
<div id="result"></div>
 
<?php
 $sql="SELECT * FROM empleados";
$sacar=mysql_query($sql);
 
while ($row=mysql_fetch_array($sacar))
{
?>
 
<form method="post" action="envio.php" id="fo3" name="fo3" >
      <fieldset>
      	<legend>Perfil</legend>
        <ol>
        	<li><label>Nombres:</label><input type="text" size="30" name="fnombres" value="<?php echo $row['nombre'] ?>"/></li>
            <li><label>Apellidos:</label><input type="text" size="30" name="fapellidos"  value="<?php echo $row['apellido'] ?>"/></li>
            <li><label>Correo:</label><input type="text" size="30" name="fweb"  value="<?php echo $row['web'] ?>"/></li>
        </ol>
        <input type="submit"   name="mysubmit" value="Enviar" />
      </fieldset>
<!--</div>
-->
</form>
 
<?php }?>
 
</body>
</html>

/********************************** ENVIO.PHP *********************/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 $bd_host = "localhost";
  $bd_usuario = "root";
  $bd_password = "";
  $bd_base = "ajax";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
 
session_start();
 
$nombre=$_POST['fnombres'];
$apellido=$_POST['fapellidos'];
$web=$_POST['fweb'];
 
$mi_carrito[]=array('nombre'=>$nombre,'apellido'=>$apellido,'web'=>$web);
 
 $contar=count($mi_carrito);
 
echo "la cantidad de registros en el array son: <b>".$contar."</b>";
?>
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

el array solo graba un registro

Publicado por xve (5520 intervenciones) el 02/01/2014 10:47:28
Hola Mario, no entiendo muy bien a que te refieres... no veo ningun insert...

Si nos puedes comentar con mas detalle...
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

el array solo graba un registro

Publicado por mario (17 intervenciones) el 02/01/2014 15:41:06
hola muchas gracias por la contesta,
el caso es que cuando selecciono un empleado de la base de datos y envio el nombre, apellido,etc, a ENVIO.PHP solo me graba un nombre y apellido en el array $mi_carrito[], si vuelvo a seleccionar otro empleado mas, no lo graba en el array. en fin se supone que un array multidimensional guarda mas de una fila, y en mi caso solo una, y lo que quiero es guardar en el array varios empleados y luego llamar al array $carrito e imprimir los empleados que he seleccinado. . te agradeceria me ayudaras a ver que estoy haciendo mal.

de nuevo 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

el array solo graba un registro

Publicado por xve (5520 intervenciones) el 02/01/2014 16:59:20
Hola Mario, eso te pasa, porque cada vez que llamas al archivo ENVIO.PHP la variable esta vacia... no se mantienen los valores de las variables en los archivos... cada vez que refrescas la página las variables se reinician.

Si quieres que se mantengan, tienes que utilizar variables de sesión o cookies:
http://www.php.net/manual/es/book.session.php

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

el array solo graba un registro

Publicado por mario (17 intervenciones) el 02/01/2014 23:31:36
hola de nuevo, como podras comprobar he creado una variable de session a la que le paso la informacion del array y aun asi cuenta y me dice que solo hay un registro despues de haber seleccionado ya varios.
cuando dices d crear una variable de sesion te refieres a crearla fuera de ENVIO.PHP? si es asi, te agradeceria y si sabes, me dieras una idea como hacerlo. muchisimas gracias.


/**************************** ENVIO.PHP**************************/
<?php
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "";
$bd_base = "ajax";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);

session_start();

$nombre=$_POST['fnombres'];
$apellido=$_POST['fapellidos'];
$web=$_POST['fweb'];

session_start();

$mi_carrito[]=array('nombre'=>$nombre,'apellido'=>$apellido,'web'=>$web);
$_SESSION['carrito']=$mi_carrito;

$contar=count($_SESSION);

echo "la cantidad de registros en el array son: <b>".$contar."</b>";
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

el array solo graba un registro

Publicado por xve (5520 intervenciones) el 03/01/2014 08:11:14
Hola Mario, estas contando los valores del array $_SESSION
1
$contar=count($_SESSION);
y exactamente solo tiene un valor que es "carrito"

Para saber los valores que tiene "carrito" tienes que hacerlo así:
1
$contar=count($_SESSION['carrito']);

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

el array solo graba un registro

Publicado por mario (17 intervenciones) el 03/01/2014 13:11:01
que tal?, pues nada, me sigue diciendo que solo hay un registro, la verdad es que es extraño y ya no se que más hacer,, estaba pensando en insertar los datos en el array en la pagina principal pero no se como captura las variables nombre, apellido, etc del result y hacer la sesion en el principal ya que en el ENVIO.PHP no va. que opinas?.
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

el array solo graba un registro

Publicado por xve (5520 intervenciones) el 03/01/2014 15:12:27
Hola Mario, la verdad es que no se que esta pasando, pero tiene que funcionar... es muy sencillo...

Prueba este ejemplo en una pagina php y ejecútala varias veces con F5:
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
 
$_SESSION["miArray"][]=date("H:i:s");
 
for($i=0;$i<count($_SESSION["miArray"]);$i++)
{
    echo "<br>".$_SESSION["miArray"][$i];
}
?>

El session_start() tiene que estar al principio de todo de la página.

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

el array solo graba un registro

Publicado por mario (17 intervenciones) el 03/01/2014 15:27:17
si, tu ejemplo me funciona perfectamente, cerre la pagina en la que lo ejecutaba, ejecute el codigo otra vez, y me mostro todos los registros de las horas que tenia en el array. pero xq a mi no me guarda nada?,
mira de hecho modifique lo que me enviaste le dije que me contara cuantas horas tenia guardada y me dio como resultado 11, asi que perfecto, pero a mi en el mio me da 1 siempre, jajaja.

<?php
session_start();

$_SESSION["miArray"][]=date("H:i:s");

//for($i=0;$i<count($_SESSION["miArray"]);$i++)
{

$contar=count($_SESSION["miArray"]);

echo "la cantidad de registros en el array son: <b>".$contar."</b>";

// echo "<br>".$_SESSION["miArray"][$i];
}
?>
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

el array solo graba un registro

Publicado por xve (5520 intervenciones) el 03/01/2014 15:47:46
Ahora he visto el error mario... siempre estas asignando a la variable de session un solo registro... tienes que añadirlo...

En vez de:
1
2
$mi_carrito[]=array('nombre'=>$nombre,'apellido'=>$apellido,'web'=>$web);
$_SESSION['carrito']=$mi_carrito;

Prueba esto:
1
$_SESSION['carrito'][]=array('nombre'=>$nombre,'apellido'=>$apellido,'web'=>$web);

Ahora creo que si te funcionara...
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

el array solo graba un registro

Publicado por mario (17 intervenciones) el 03/01/2014 15:58:15
yaaaa, por fin tio, ya funciona, eres lo máximo, vaya con los corchetes, jajaja. te pongo el codigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
session_start();
include ("conexion.php");
 
$nombre=$_POST['fnombres'];
$apellido=$_POST['fapellidos'];
$web=$_POST['fweb'];
 
$_SESSION['carrito'][]=array('nombre'=>$nombre,'apellido'=>$apellido,'web'=>$web);
//$_SESSION["carrito"]=$mi_carrito;
 
 
for($i=0;$i<count($_SESSION['carrito']);$i++)
//
//  
     echo "<br>".$_SESSION['carrito'][$i]['nombre'];
//


y me saca los nombre, es que no me lo creo, jajajaj, muchisimas 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

el array solo graba un registro

Publicado por xve (5520 intervenciones) el 03/01/2014 23:02:38
gracias por comentarlo Mario!!!
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