Foros del Web » Programando para Internet » PHP »

[AYUDA]Crear funcion PHP

Estas en el tema de [AYUDA]Crear funcion PHP en el foro de PHP en Foros del Web. Bueno, hola, estoy intentando crear una funcion en php, pero no puedo darle a la respuesta, tengo la siguiente funcion: Código PHP: function  nombre ( ...
  #1 (permalink)  
Antiguo 25/01/2012, 16:59
 
Fecha de Ingreso: enero-2012
Ubicación: Santa Rosa
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta [AYUDA]Crear funcion PHP

Bueno, hola, estoy intentando crear una funcion en php, pero no puedo darle a la respuesta, tengo la siguiente funcion:

Código PHP:
function nombre($id){
    
$sql mysql_query("SELECT nombre FROM users WHERE id = $id");
    if(
$row=mysql_fetch_array($sql)){
        echo 
$row[nombre];
    }

andar anda, pero no como quiero, yo escribo nombre(1) y aparece el nombre de la persona que tenga el ID 1, hasta ahora no hay problema, el problema empieza cuando viene MySQL.

Quiero que se detecte el numero dentro de {nombre1}, {nombre2}, etc y se cambie por la funcion: nombre(1), nombre(2), etc.

Espero puedan ayudarme, muchas gracias, Saludos !
  #2 (permalink)  
Antiguo 25/01/2012, 17:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: [AYUDA]Crear funcion PHP

Para eso necesitas usar expresiones regulares, lee lo siguiente:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/01/2012, 17:15
 
Fecha de Ingreso: enero-2012
Ubicación: Santa Rosa
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: [AYUDA]Crear funcion PHP

muchas gracias, lo intente, hice dos pruebas:


Código PHP:
Ver original
  1. $contenido = str_replace("{nombre1}", nombre(1), $row[contenido]);

Desaparece {nombre1} y la funcion anda correctamente, pero la funcion aparece lejos, no donde quiero. ejemplo:

comento su foto...................Panke (los puntos son para simular espaciado)

Despues hice lo mismo pero borre el {nombre1} y seguia igual.

Código PHP:
Ver original
  1. $contenido = str_replace("asdasdasd", nombre(1), $row[contenido]);

La verdad, no entiendo que estoy haciendo mal :S
  #4 (permalink)  
Antiguo 25/01/2012, 17:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: [AYUDA]Crear funcion PHP

Eso es porque tu función está imprimiendo con echo.

Si quieres que el valor se muetre donde quieres tienes que devolverlo con return en lugar de imprimir el valor.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 25/01/2012, 18:26
 
Fecha de Ingreso: enero-2012
Ubicación: Santa Rosa
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: [AYUDA]Crear funcion PHP

ahi estaba el error ! que despistado ! muchisimas gracias, y ensima fue con combo, hacia tiempo buscaba el tema de expresiones, la verdad que me salvaste, muchisimas gracias nuevamente, Saludos !
  #6 (permalink)  
Antiguo 26/01/2012, 00:22
 
Fecha de Ingreso: enero-2012
Ubicación: Santa Rosa
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: [AYUDA]Crear funcion PHP

otro problema :S tengo la funcion:
Código PHP:
Ver original
  1. function nombre($id){
  2. $sql = mysql_query("SELECT nombre FROM users WHERE id = $id");
  3. if($row=mysql_fetch_array($sql)){
  4. return $row[nombre];
  5. }}

tengo el codigo:
Código PHP:
Ver original
  1. $sql2 = mysql_query('SELECT id FROM users');
  2.     if($row2=mysql_fetch_array($sql2)){
  3. $contenido = str_replace("{nombre".$row2[id]."}",nombre($row2[id]),$row[contenido]);
  4. }

y cuando pongo $contenido(dentro de $contenido tengo {nombre1} y {nombre2}) solo me aparece el nombre de {nombre1}, {nombre2} me aparece como {nombre2}, alguna idea? :S

Etiquetas: funcion, mysql, sql
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 21:31.