Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: satan69 en 3 Agosto 2009, 19:17 PM

Título: ayuda... lectura de string y meterlo en un array
Publicado por: satan69 en 3 Agosto 2009, 19:17 PM
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..?
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: SnakeDrak en 3 Agosto 2009, 21:58 PM
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!
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: Erika Vega en 3 Agosto 2009, 23:25 PM
Quizas esto te de una idea:

http://www.newbiemania.org/tutoriales-php-15-Separar%20strings%20con%20PHP.html
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: [u]nsigned en 4 Agosto 2009, 00:30 AM
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
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: satan69 en 4 Agosto 2009, 01:26 AM
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..?
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: [u]nsigned en 4 Agosto 2009, 02:15 AM
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).
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: 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!
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: [u]nsigned en 4 Agosto 2009, 03:01 AM
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  :)
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: SnakeDrak en 4 Agosto 2009, 03:05 AM
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!!
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: satan69 en 4 Agosto 2009, 08:06 AM
[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
Título: Re: ayuda... lectura de string y meterlo en un array
Publicado por: WHK en 11 Agosto 2009, 18:33 PM
Debe ser porque estás declarando dos vece la cookie, intenta con esto:

Código (php) [Seleccionar]
<?php
$numx 
=  1;
$xD $xD;

// Obtiene data
$data obtiene_data();
$numx $data['num'] + 1;
$xD $data['id'].','.$xD;

// Establece data nuevamente
establece_data($numx$xD);

$dividido explode(','$xD);
foreach(
$dividido as $id)
 
$edit = @mysql_query("SELECT * from char WHERE id = '".(int)$divi."'");
 
//y el resto ya lo saben... jojojo
}

function 
obtiene_data(){
 return 
unserialize($_COOKIE['data']);
}

function 
establece_data($numx$id){
 return 
setcookie('data'serialize(array('num' => $numx'id' => $xD)));
}
?>