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..?
Hola,
Pues con explode:
$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!
Quizas esto te de una idea:
http://www.newbiemania.org/tutoriales-php-15-Separar%20strings%20con%20PHP.html
Como dijo SnakeDark básicamente seria esto para separar el string:
<?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:
<?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:
print_r($mi_array);
Que mostraría algo asi:
Array ( [0] => hola [1] => dedo [2] => mano [3] => monitor [4] => chele [5] => blanco )
Salu10
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..?
Cita de: satan69 en 4 Agosto 2009, 01:26 AM
$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:
$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).
Hola,
Yo siempre uso en las consultas SQL las comillas ``, así puedes llamarle FROM si quieres a un campo y no te dará problemas.
SELECT `FROM` FROM `una_tabla` WHERE `un_campo` = 'un_valor';
Saludos!
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.
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 :)
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!!
[quote author=
nsigned link=topic=263192.msg1282744#msg1282744 date=1249344929]
Cita de: satan69 en 4 Agosto 2009, 01:26 AM
$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:
$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
Debe ser porque estás declarando dos vece la cookie, intenta con esto:
<?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)));
}
?>