PHP - Cargar valores de un Array

   
Vista:

Cargar valores de un Array

Publicado por ARIEL (6 intervenciones) el 05/02/2015 19:30:31
Hola Weberos!!!
Os traigo un problema, aun no se como traer el valor de un array, necesito que un campo me traiga los valores de la base de datos pero solo me trae el primero.
Os dejo un poco del código para que lo chequen. Estoy usando Jquery.

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
<head>
	<meta charset="utf-8">
		<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
		<script src="//code.jquery.com/jquery-1.10.2.js">  </script>
		<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"> </script>
	</head>
	<body>
		<form name="nuevaDireccionForm" method="post" action="../llamadas/dir_add_back.php" onSubmit="return validarFormularioNuevaDireccion();">
			<table class="tableDatos" align="center" border="1">
				<tr>
					<td align="right">*Alias de entrega:</td>
					<td ><input name="nombreembarque" type="text" size="25" maxlength="50"></td>
				</tr>
				<tr>
					<td align="right">Buscar Cliente:</td>
					<td><input id="buscarcliente" name="buscarcliente" type="text" size="25"></td>
				</tr>
				<tr>
					<td align="right">Cliente:</td>
					<td>
					<?php
					$clienteHTMLResult = mysql_query("SELECT * FROM cliente ORDER BY idcliente");
					if(mysql_num_rows($clienteHTMLResult) > 0){
						$filaCliente = mysql_fetch_array($clienteHTMLResult);
						$idClientes = $filaCliente["idcliente"];
						$nombre = $filaCliente["nombrecliente"];
						$apellido1 = $filaCliente["appaternocliente"];
						$apellido2 = $filaCliente["apmaternocliente"];
						$empresa = $filaCliente["empresa"];
						$concatenarNombre = $nombre.' '.$apellido1.' '.$apellido2.' ('.$empresa.')';
						for($i=0; $i<count($idClientes); $i++){
							echo '<option value="'.$idClientes[$i].'">'.$concatenarNombre.'</option>';
						}
					}
					// print $concatenarNombre; '<br>';
					?>
					</td>
				</tr>
                                  <td>
					<input type="submit" name="Submit" value="Agregar">
					<input type=reset value="Limpiar"></td>
				</tr>
			</table>
		</form>
 
	<script>
	var tags = ["Nuevo", "<?php echo $concatenarNombre; ?>"];
	$("#buscarcliente").autocomplete({
		source: function (request, response) {
			var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term), "i");
			response($.grep(tags, function (item){
				return matcher.test(item);
			}));
		}
	});
	</script>
</body>
 
 
///Donde dice $concatenarNombre; me tiene que traer todos los clientes registrados pero solo me trae el primero.
Porfa ayuda no se que hacer.
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

Cargar valores de un Array

Publicado por xve (5516 intervenciones) el 06/02/2015 09:54:50
Hola Ariel, para ello, tienes que recorrer todos los registros devueltos por la consulta...

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$clienteHTMLResult = mysql_query("SELECT * FROM cliente ORDER BY idcliente");
if(mysql_num_rows($clienteHTMLResult) > 0)
{
    while($filaCliente=mysql_fetch_array($clienteHTMLResult))
    {
        $idClientes = $filaCliente["idcliente"];
        $nombre = $filaCliente["nombrecliente"];
        ...
    }
}
?>

De esta manera, recorrerás todos los registros.
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

Cargar valores de un Array

Publicado por ARIEL (6 intervenciones) el 06/02/2015 19:44:45
Hola XVE gracias si así lo resolví el día de ayer gracias.
Sin embargo ahora tengo otro asunto.
Me muestra los valores pero los arroja todos en desorden y no en lista que sería lo ideal.
Ahora mi código 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
$clienteHTMLResult = mysql_query("SELECT * FROM cliente ORDER BY idcliente");
if(mysql_num_rows($clienteHTMLResult) > 0){
    while($filaCliente = mysql_fetch_array($clienteHTMLResult)){
        $idClientes = $filaCliente["idcliente"];
        $nombre = strtoupper($filaCliente["nombrecliente"]);
        $apellido1 = strtoupper($filaCliente["appaternocliente"]);
        $apellido2 = strtoupper($filaCliente["apmaternocliente"]);
        $empresa = strtoupper($filaCliente["empresa"]);
        $saltoLinea ='\n';
        $concatenarNombre = $nombre.' '.$apellido1.' '.$apellido2.' ('.$empresa.')'.$saltoLinea;
        if($filaCliente["idcliente"] > 0){
            echo $valor .= $concatenarNombre,$saltoLinea;
        }
        else{
            echo $valor .= $concatenarNombre,$saltoLinea;
        }
    }
}
.......
...
.
.
.

Y en esta parte hago uso de la función
1
2
3
4
5
6
7
8
9
10
11
<script>
	var tags = ["<?php echo $concatenarNombre,$saltoLinea; ?>"];  //Aquí es donde muestra todos los datos
	$("#buscarcliente").autocomplete({
		source: function (request, response) {
			var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term), "i");
			response($.grep(tags, function (item){
				return matcher.test(item);
			}));
		}
	});
</script>

Ahora no funciona el salto de línea, ya le intente con <br/> pero los muestra todos en una sola opción.

Saludos
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

Cargar valores de un Array

Publicado por xve (5516 intervenciones) el 07/02/2015 10:09:54
Hola Ariel, no se muy bien a que te refieres con el orden... a que orden te refieres?
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

Cargar valores de un Array

Publicado por Ariel (6 intervenciones) el 08/02/2015 07:51:16
Hola XVE, me refiero que como estoy recorriendo el array y hago uso de los datos me los tienes que mostrar de alguna forma es decir:
nombrecliente01 apecliente01 apmacliente01 (empresa)
nombrecliente02 apecliente02 apmacliente02 (empresa)
nombrecliente03 apecliente03 apmacliente03 (empresa)
etc...
pero me muestra los datos todos seguidos y no respeta el salto de línea.

Alguna sugerencia por favor.
Gracias
Saludos
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

Cargar valores de un Array

Publicado por gonzalo (338 intervenciones) el 09/02/2015 20:39:24
ok, si lo que quieres es que aparezcan cada uno en un renglon entonces debes corregir el procedimiento, basicamente el problema esta en los <td></td> ya que estas escribiendo todo en un solo cuadro.

otra cosa, en que momento los guardas como array?

lo que yo haria es dejar cada cliente en un td independiente.

<td> //el problema pudiera estar aqui
<?php $clienteHTMLResult = mysql_query("SELECT * FROM cliente ORDER BY idcliente"); if(mysql_num_rows($clienteHTMLResult) > 0)
{
$filaCliente = mysql_fetch_array($clienteHTMLResult); // este lee solo 1 cliente (segun entiendo)
$idClientes = $filaCliente["idcliente"]; //id clientes no es un array
$nombre = $filaCliente["nombrecliente"];
$apellido1 = $filaCliente["appaternocliente"];
$apellido2 = $filaCliente["apmaternocliente"];
$empresa = $filaCliente["empresa"];
$concatenarNombre = $nombre.' '.$apellido1.' '.$apellido2.' ('.$empresa.')';

for($i=0; $i<count($idClientes); $i++) // aqui cuenta solo 1
{
echo '<option value="'.$idClientes[$i].'">'.$concatenarNombre.'</option>';
}
} // print $concatenarNombre; '<br>'; ?>
</td>// y aqui

//yo lo cambiaria asi:

//<td> borro el td del inicio y del final
<?php $clienteHTMLResult = mysql_query("SELECT * FROM cliente ORDER BY idcliente"); if(mysql_num_rows($clienteHTMLResult) > 0)
{
while($filaCliente = mysql_fetch_array($clienteHTMLResult)) // lo pongo como ciclo
{
$idClientes = $filaCliente["idcliente"];
$nombre = $filaCliente["nombrecliente"];
$apellido1 = $filaCliente["appaternocliente"];
$apellido2 = $filaCliente["apmaternocliente"];
$empresa = $filaCliente["empresa"];
$concatenarNombre = $nombre.' '.$apellido1.' '.$apellido2.' ('.$empresa.')';

echo '<tr><td><option value="'.$idClientes[$i].'">'.$concatenarNombre.'</option></td></tr>'; // y pongo los tr-td-cliente-/td-/tr al inicio y final del option 1 x renglon.
}

}
//</td> y tambien borro este

ojala haya entendido bien el problema.

suerte, salu2.
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

Cargar valores de un Array

Publicado por ARIEL (6 intervenciones) el 10/02/2015 01:01:34
Hola gracias Gonz, pues ya le intente así y no me funciono, el problema creo que esta en como los manda a llamar o mostrar.
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
//Esta es la table
   <tr>
	<td align="right">Buscar:</td>
	<td><input id="buscarcliente" name="buscarcliente" type="text" size="100"></td>
  </tr>
 
 
 
///Esta es la consulta
$clienteHTMLResult = mysql_query("SELECT * FROM cliente ORDER BY idcliente");
	if(mysql_num_rows($clienteHTMLResult) > 0){
		while($filaCliente = mysql_fetch_array($clienteHTMLResult)){
			$idClientes = $filaCliente["idcliente"];
			$nombre = strtoupper($filaCliente["nombrecliente"]);
			$apellido1 = strtoupper($filaCliente["appaternocliente"]);
			$apellido2 = strtoupper($filaCliente["apmaternocliente"]);
			$empresa = strtoupper($filaCliente["empresa"]);
			$saltoLinea ='<br>';
			$concatenarNombre .=$nombre.' '.$apellido1.' '.$apellido2.' ('.$empresa.')'.$saltoLinea;
		}
		echo '<option value="'.$idClientes[$i].'"><td>'.$concatenarNombre.'</option><br>';
	}
 
 
 
//aquí se hace uso de la función jquery
<script>
	var tags = ["<?php echo $concatenarNombre.'<br>'; ?>"];   //-----En esta parte no respeta el salto de línea
	$("#buscarcliente").autocomplete({
		source: function (request, response) {
			var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term), "i");
			response($.grep(tags, function (item){
				return matcher.test(item);
			}));
		}
	});
</script>

Y aunque le ponga el <tr><td> en var tags no me muestra nada.
Alguna sugerencia por favor.
Muchas 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

Cargar valores de un Array

Publicado por gonzalo (338 intervenciones) el 10/02/2015 01:16:15
a ver, asi esta el codigo original que pusiste al inicio del post:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// desde aqui
<tr>
<td align="right">
Cliente:
</td>
<td>
<?php $clienteHTMLResult = mysql_query("SELECT * FROM cliente ORDER BY idcliente"); if(mysql_num_rows($clienteHTMLResult) > 0)
{
$filaCliente = mysql_fetch_array($clienteHTMLResult);
$idClientes = $filaCliente["idcliente"];
$nombre = $filaCliente["nombrecliente"];
$apellido1 = $filaCliente["appaternocliente"];
$apellido2 = $filaCliente["apmaternocliente"];
$empresa = $filaCliente["empresa"];
$concatenarNombre = $nombre.' '.$apellido1.' '.$apellido2.' ('.$empresa.')';
for($i=0; $i<count($idClientes); $i++)
{
echo '<option value="'.$idClientes[$i].'">'.$concatenarNombre.'</option>'; }
}
// print $concatenarNombre; '<br>'; ?> 
</td>
</tr>
// hasta aqui

fijate bien en el cambio, debes reemplazar el codigo que acabo de poner con el codigo que sigue.

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
//desde aqui
<?php
$clienteHTMLResult = mysql_query("SELECT * FROM cliente ORDER BY idcliente"); if(mysql_num_rows($clienteHTMLResult) > 0)
{
while($filaCliente = mysql_fetch_array($clienteHTMLResult))
{
$idClientes = $filaCliente["idcliente"];
 
$concatenarNombre = $filaCliente["nombrecliente"]
 .' '.$filaCliente["appaternocliente"]
 .' '.$filaCliente["appaternocliente"]
 .' '. $filaCliente["apmaternocliente"]
 .'('.$filaCliente["empresa"].')';
 
echo '<tr>';
echo '<td align="right">';
echo 'Cliente:';
echo '</td>';
echo '<td>';
echo '<option value='.$idClientes.'>';
echo $concatenarNombre;
echo '</option>';
echo '</td>';
echo '</tr>';
}
}
?>
//hasta aqui

si te marca error dime en que linea fue.

suerte, salu2.
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

Cargar valores de un Array

Publicado por ARIEL (6 intervenciones) el 10/02/2015 01:41:13
Pues esa parte del código esta bien no marca ningún error, creo que no me estoy explicando, estoy haciendo uso de una API de jquery para búsquedas avanzadas, en un input type="text" pones la letra A en el text te muestra todos los clientes con la letra A.
1
2
3
4
<tr>
 <td align="right">Buscar:</td>
 <td><input id="buscarcliente" name="buscarcliente" type="text" size="100"></td>
 </tr>

He ahí el uso de la variable tags:
1
2
3
4
5
6
7
8
9
10
11
<script>
        var tags = ["<?php echo $concatenarNombre.'<br>'; ?>"];             //En esta parte arroja todos los datos
	$("#buscarcliente").autocomplete({
		source: function (request, response) {
			var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term), "i");
			response($.grep(tags, function (item){
				return matcher.test(item);
			}));
		}
	});
</script>

Aroja todos los datos pero no en lista.
El input type="text" muestra>cliente1 cliente1 cliente1 cliente1(cliente1)cliente2 cliente2 cliente2 cliente2(cliente2)cliente3 cliente3 cliente3 cliente3(cliente3)cliente4 cliente4 cliente4 cliente4(cliente4)cliente5 cliente5 cliente5 cliente5(cliente5)cliente6 cliente6 cliente6 cliente6(cliente6) etc. etc.
Se acaban las opciones. no respeta el salto de línea.
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

Cargar valores de un Array

Publicado por gonzalo (338 intervenciones) el 10/02/2015 23:19:54
mis disculpas, no majeno Jquery,

tal vez deberias usar ajax, pero en este caso tengo que reestructurar todo tu codigo, me va a llevar algun tiempo.

suerte, salu2.
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

Cargar valores de un Array

Publicado por ARIEL (6 intervenciones) el 10/02/2015 23:59:42
No hay problema, yo tampoco estaba acostumbrado a usar JQuery.
Aun así muchas gracias por la ayuda

Saludos Weberos y estamos en el camino.
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

Cargar valores de un Array

Publicado por gonzalo (338 intervenciones) el 11/02/2015 00:13:16
aqui dar una sugerencia de como cortar el texto en un inputbox

http://stackoverflow.com/questions/7189223/can-you-have-multiline-html5-placeholder-text-in-a-textarea, pero usan CSS

aqui proponen otro metodo

http://stackoverflow.com/questions/8627902/new-line-in-text-area

me imagino que debes concatenar los campos en Jquery (de alguna forma) y usar los saltos de linea dentro de la cadena.

espero que alguno de los 2 te ayude.

suerte, salu2.
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