Foros del Web » Programando para Internet » PHP »

problema con una array

Estas en el tema de problema con una array en el foro de PHP en Foros del Web. Buenas, el problema que tengo es que al mostrar los valores que contiene la array me sale el primero bien y el segundo repetido del ...
  #1 (permalink)  
Antiguo 25/05/2012, 16:58
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
problema con una array

Buenas, el problema que tengo es que al mostrar los valores que contiene la array me sale el primero bien y el segundo repetido del primero, y deberia ser otro valor: ahi va el codigo

Código PHP:
// identificar el usuario con los servidores que tenga
$consulta mysql_query("SELECT * FROM usuarios WHERE usuario = '$us'");
$row mysql_fetch_assoc($consulta);
$server =mysql_query("SELECT name2 FROM servers WHERE userid = $row[id]");
// si no tiene ninguno ejecutar 2º parte, si no elegir la array de los servers que tenga
if ($server){
$server_name=mysql_fetch_array($server);
}else{
$server_name = array("You haven't got any server registered!");
}
var_dump($server_name); 
alguien sabe que pasa? gracias

edit: la variable $us es el nombre del usuario
  #2 (permalink)  
Antiguo 25/05/2012, 17:13
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: problema con una array

Para poder recorrer los resultados debes de encerrarlo en un ciclo.

Código PHP:
Ver original
  1. while ($server_name = mysql_fetch_array($server)){
  2.  
  3. echo $server_name['name2']."<br />";
  4.  
  5. }

Saludos.
  #3 (permalink)  
Antiguo 25/05/2012, 17:14
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: problema con una array

Hola que tal.

aquí en donde llenas tu array

Código PHP:
Ver original
  1. if ($server)
  2. {
  3. $server_name=mysql_fetch_array($server);
  4. }



Tomando en cuenta que tienes un error de uso de comillas

Código PHP:
Ver original
  1. $server =mysql_query("SELECT name2 FROM servers WHERE userid = $row[id]");
  2. por
  3. $server =mysql_query("SELECT name2 FROM servers WHERE userid = '{$row['id']}'");

Porque no pruebas de la siguiente manera y comentas

Código PHP:
Ver original
  1. <?php
  2.  
  3. $consulta = mysql_query("SELECT * FROM usuarios WHERE usuario='$us'") or die (mysql_error());
  4. $row = mysql_fetch_assoc($consulta);
  5. $server =mysql_query("SELECT name2 FROM servers WHERE userid='{$row['id']}' ") or die (mysql_error());
  6. // si no tiene ninguno ejecutar 2º parte, si no elegir la array de los servers que tenga
  7. $server_name = array();
  8. if ($server)
  9. {
  10.     while($datos = mysql_fetch_array($server))
  11.     {
  12.         $server_name[] = $datos['name2'];
  13.     }
  14. }
  15. else
  16. {
  17.     $server_name = array("You haven't got any server registered!");
  18. }
  19. var_dump($server_name);  
  20.  
  21. ?>


Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 25/05/2012, 17:28
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: problema con una array

Cita:
Iniciado por skiper0125 Ver Mensaje
Hola que tal.

aquí en donde llenas tu array

Código PHP:
Ver original
  1. if ($server)
  2. {
  3. $server_name=mysql_fetch_array($server);
  4. }



Tomando en cuenta que tienes un error de uso de comillas

Código PHP:
Ver original
  1. $server =mysql_query("SELECT name2 FROM servers WHERE userid = $row[id]");
  2. por
  3. $server =mysql_query("SELECT name2 FROM servers WHERE userid = '{$row['id']}'");

Porque no pruebas de la siguiente manera y comentas

Código PHP:
Ver original
  1. <?php
  2.  
  3. $consulta = mysql_query("SELECT * FROM usuarios WHERE usuario='$us'") or die (mysql_error());
  4. $row = mysql_fetch_assoc($consulta);
  5. $server =mysql_query("SELECT name2 FROM servers WHERE userid='{$row['id']}' ") or die (mysql_error());
  6. // si no tiene ninguno ejecutar 2º parte, si no elegir la array de los servers que tenga
  7. $server_name = array();
  8. if ($server)
  9. {
  10.     while($datos = mysql_fetch_array($server))
  11.     {
  12.         $server_name[] = $datos['name2'];
  13.     }
  14. }
  15. else
  16. {
  17.     $server_name = array("You haven't got any server registered!");
  18. }
  19. var_dump($server_name);  
  20.  
  21. ?>


Saludos

hay un fallo al principio y ni lo encuentro
Código HTML:
 Parse error: syntax error, unexpected T_VARIABLE
  #5 (permalink)  
Antiguo 25/05/2012, 17:32
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: problema con una array

Cita:
Iniciado por Doch Ver Mensaje
hay un fallo al principio y ni lo encuentro
Código HTML:
 Parse error: syntax error, unexpected T_VARIABLE
Podrías mostrar más código para ayudarte mejor ya que ami me muestra ese error
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #6 (permalink)  
Antiguo 25/05/2012, 17:35
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: problema con una array

creo que no hay mas codigo que influya en esto..

de todas formas le sigue esto

Código PHP:
*




// si no esta logeado redireccionarlo al index.php
if(!isset($_SESSION['usuario']))
{
echo 
'<META HTTP-EQUIV="Refresh" Content="0; URL=index.php">';
}else{

}


// contar filas y hacer la resta para informar de cuantos quedan libres
$count_ads1 mysql_query("SELECT COUNT(server_name) FROM featured_server");
$count1 mysql_fetch_array($count_ads1);
$ads_slots1 $count1[0];

$count_ads2 mysql_query("SELECT COUNT(server_name) FROM featured_server1");
$count2 mysql_fetch_array($count_ads2);
$ads_slots2 $count2[0]; 
a partir del 2º comentario no tiene mucho que ver, ya empieza otro tema del codigo
  #7 (permalink)  
Antiguo 25/05/2012, 17:43
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: problema con una array

Cita:
Iniciado por skiper0125 Ver Mensaje

Tomando en cuenta que tienes un error de uso de comillas
$server =mysql_query("SELECT name2 FROM servers WHERE userid = $row[id]");
Corrección: Las llaves se utilizar cuando el indice del arreglo esta encerrado por comillas tanto simples como dobles.
De lo contrario si lo utilizo de esta forma "$row[id]" no se debe suponer que sea un error aunque no sea lo mas optimo para el interprete.

Nota: Si el arreglo esta fuera de las comillas entonces es recomendable siempre convertir su indice en string siempre y cuando sea el caso, para que luego no tengas problema con el asunto de las constantes.

Otro punto a tomar encuenta es que si el tipo de datos de la tabla esta bien trabajado entonces
WHERE userid = '{$row['id']}'"); lo mas logico es que userid sea de tipo entero por tanto el encerrar el '{$row['id']}' esta de mas.


Saludos.
  #8 (permalink)  
Antiguo 25/05/2012, 17:57
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: problema con una array


  • verificas tu coneción
  • declaras el inicio de sesión
  • checa la variable $us que este declarada o que no sea nula

ya que algo has de tener mal y si no muestras todo el código no te puedo ayudar más , te dejo el resultado obtenido



Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #9 (permalink)  
Antiguo 25/05/2012, 18:00
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: problema con una array

Cita:
Iniciado por gjx2 Ver Mensaje
Corrección: Las llaves se utilizar cuando el indice del arreglo esta encerrado por comillas tanto simples como dobles.
De lo contrario si lo utilizo de esta forma "$row[id]" no se debe suponer que sea un error aunque no sea lo mas optimo para el interprete.

Nota: Si el arreglo esta fuera de las comillas entonces es recomendable siempre convertir su indice en string siempre y cuando sea el caso, para que luego no tengas problema con el asunto de las constantes.

Otro punto a tomar encuenta es que si el tipo de datos de la tabla esta bien trabajado entonces
WHERE userid = '{$row['id']}'"); lo mas logico es que userid sea de tipo entero por tanto el encerrar el '{$row['id']}' esta de mas.


Saludos.
ok gracias por la corrección pero puedes leer esto

http://www.forosdelweb.com/f18/como-...1/#post2414268

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #10 (permalink)  
Antiguo 26/05/2012, 04:45
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: problema con una array

he estado integrando el codigo poco a poco y comprobando los valores que daba i el codigo deja de funcionar al integrar la condicion

Código PHP:
Ver original
  1. if ($server)
  2. {
  3.  while($datos = mysql_fetch_array($server))
  4.  {
  5.  $server_name[] = $datos['name2'];
  6. }
  7. }
  8. else
  9. {
  10. $server_name = array("You haven't got any server registered!");
  11. }
mas especificamente, aqui while($datos = mysql_fetch_array($server))
  #11 (permalink)  
Antiguo 27/05/2012, 12:31
 
Fecha de Ingreso: mayo-2012
Mensajes: 76
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: problema con una array

despues de un monton de tira y afloja con el codigo, he descubierto que haciendo copy y paste de los codigos que me pasabais, dandole a ver original, quedaban como una especie de espacios que dañaban el codigo y hacian errores, y es por eso que vuestros codigos me fallaban, gracias a los dos :)

Etiquetas: mysql, sql, usuarios
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 04:26.