ayuda... lectura de string y meterlo en un array

Iniciado por satan69, 3 Agosto 2009, 19:17 PM

0 Miembros y 2 Visitantes están viendo este tema.

satan69

hola muchachos... queria saber como puedo lograr leeer una string asi..


hola,dedo,mano,monitor,chele,blanco

lo que quiero es obtener las palabras en un array algo asi

$palabra[0] = "hola";
$palabra[1] = "dedo";
$palabra[2] = "mano";
$palabra[3] = "monitor";
$palabra[4] = "chele";
$palabra[5] = "blanco";

seria algo asi... como lo podria hacer..?

SnakeDrak

Hola,

Pues con explode:

Código (php) [Seleccionar]

$cadena = "hola,dedo,mano,monitor,chele,blanco";
$dividido = explode(",",$cadena);
for($i=0;$i<sizeof($cadena);$i++)
  echo $dividido[$i]."<br/>";


Quedaría:
Citar
hola
dedo
mano
monitor
chele
blanco

Saludos!


[u]nsigned

Como dijo SnakeDark básicamente seria esto para separar el string:

Código (php) [Seleccionar]
<?php
$mi_cadena 
"hola,dedo,mano,monitor,chele,blanco";
$mi_array explode(','$mi_cadena);
?>


Y otra forma de recorrerlo usando la función foreach de PHP:

Código (php) [Seleccionar]
<?php
$mi_cadena 
"hola,dedo,mano,monitor,chele,blanco";
$mi_array explode(','$mi_cadena);
foreach(
$mi_array as $indice => $valor)
{
echo "$indice : $valor<br />";
}
?>


Y otra útil para debuggear:
Código (php,1) [Seleccionar]
print_r($mi_array);

Que mostraría algo asi:

Array ( [0] => hola [1] => dedo [2] => mano [3] => monitor [4] => chele [5] => blanco )

Salu10

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

satan69

me ha funcionado lo que me han dicho.. pero sigo teniendo problemas con el script que quiero hacer... aqui le pongo una muestra:
HAGO ESTO:
Con el $xD le meto los id.


$numx 
=  1;
$xD $xD;
setcookie("id"$xD);
setcookie("num"$numx);


despues voy metiendo mas id en la cookie


$numx 
$_COOKIE["num"] + 1;
$xD $_COOKIE["id"].",".$xD;
setcookie("id"$xD);
setcookie("num"$numx);


ya despues al mismo tiempo que actualizo la cookie la leeeeeo


$cadena 
$_COOKIE['id'];
$dividido explode(",",$cadena);
for(
$i=0;$i<$num;$i++)
{
$divi $dividido[$i];
$edit mysql_query("SELECT * from char WHERE id = '".$divi."'")or die(mysql_error());
//y el resto ya lo saben... jejeje
}


mi problema radica q... usando ajax.. no se me actualiza la lista de nombres sino a la hora de recargar...

Hay alguna forma para lograrlo..?

[u]nsigned

Cita de: satan69 en  4 Agosto 2009, 01:26 AM
Código (PHP,3) [Seleccionar]

$cadena = $_COOKIE['id'];
$dividido = explode(",",$cadena);
for($i=0;$i<$num;$i++)
{
$divi = $dividido[$i];
$edit = mysql_query("SELECT * from char WHERE id = '".$divi."'")or die(mysql_error());
//y el resto ya lo saben... jejeje
}


De donde sacas $num:silbar:
Creo que deberia ser $numx, no? Y no te recomiendo usar 'char' como el nombre de na tabla ya que es una palabra reservada del lenguaje SQL.

Por eso recomiendo usar foreach. Mas alla de como implementes AJAX:

Código (php) [Seleccionar]

$dividido = explode(",",$_COOKIE['id']);
foreach($dividido as $valor)
{
   $edit = mysql_query("SELECT * from USA_OTRO_NOMBRE_D_TABLA WHERE id = '$valor'")or die(mysql_error());
  //Acostumbremos a sangrar el código ;)
}


como veras eh quitado $cadena porque no tiene ninguna utilidad, asigna con un explode a $_COOKIE directo (si no vas a parsear dicha variable).

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

SnakeDrak

Hola,

Yo siempre uso en las consultas SQL las comillas ``, así puedes llamarle FROM si quieres a un campo y no te dará problemas.

Código (sql) [Seleccionar]

SELECT `FROM` FROM `una_tabla` WHERE `un_campo` = 'un_valor';


Saludos!

[u]nsigned

Cita de: SnakeDrak en  4 Agosto 2009, 02:33 AM
Hola,

Yo siempre uso en las consultas SQL las comillas ``, así puedes llamarle FROM si quieres a un campo y no te dará problemas.

Código (sql) [Seleccionar]

SELECT `FROM` FROM `una_tabla` WHERE `un_campo` = 'un_valor';


Saludos!

Habiendo TANTAS otras palabras justo así le tienen que poner a un campo/tabla?  :xD

Saludos  :)

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

SnakeDrak

Hola,

:xD bueno de esa manera evitan ese tipo de errores, no sé a mi me gusta ponerle los ``, me siento más seguro  :xD y me es más bonito  :P

Además campos como from son palabras muy utilizadas xD o char para personajes.. etc.

Pero vamos, solo era por qe lo supiese, de todas formas cada cual programa como más le gusta, mientras funcione y esté bien optimizado pues perfect!

Saludos!!

satan69

[quote author=nsigned link=topic=263192.msg1282744#msg1282744 date=1249344929]
Cita de: satan69 en  4 Agosto 2009, 01:26 AM
Código (PHP,3) [Seleccionar]

$cadena = $_COOKIE['id'];
$dividido = explode(",",$cadena);
for($i=0;$i<$num;$i++)
{
$divi = $dividido[$i];
$edit = mysql_query("SELECT * from char WHERE id = '".$divi."'")or die(mysql_error());
//y el resto ya lo saben... jejeje
}


De donde sacas $num:silbar:
Creo que deberia ser $numx, no? Y no te recomiendo usar 'char' como el nombre de na tabla ya que es una palabra reservada del lenguaje SQL.

Por eso recomiendo usar foreach. Mas alla de como implementes AJAX:

Código (php) [Seleccionar]

$dividido = explode(",",$_COOKIE['id']);
foreach($dividido as $valor)
{
   $edit = mysql_query("SELECT * from USA_OTRO_NOMBRE_D_TABLA WHERE id = '$valor'")or die(mysql_error());
  //Acostumbremos a sangrar el código ;)
}


como veras eh quitado $cadena porque no tiene ninguna utilidad, asigna con un explode a $_COOKIE directo (si no vas a parsear dicha variable).
[/quote]

le puse char.. es decir, por poner cualquier nombre... fijense que el codigo me funciona bien.. pero las cookie se actualizan solo cuando refresco la pagina..? alguna otra sugerencia