Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Funcion imprimir su valor en dos sitios

Estas en el tema de Funcion imprimir su valor en dos sitios en el foro de PHP en Foros del Web. Buenas a todos, tengo una función que imprime 2 valores... me gustaría utilizar el primero en un lugar y el otro en un lugar diferente. ...
  #1 (permalink)  
Antiguo 15/04/2014, 02:57
 
Fecha de Ingreso: marzo-2012
Mensajes: 180
Antigüedad: 12 años, 1 mes
Puntos: 2
Funcion imprimir su valor en dos sitios

Buenas a todos, tengo una función que imprime 2 valores... me gustaría utilizar el primero en un lugar y el otro en un lugar diferente.

Código PHP:
        function getComparar($slug$slug2){
            
$db = new connexio();  
            
$result array_intersect($this->getLugar($slug), $this->getBares($slug2));
            
            
$result implode(", "$result); 

            
$resultat $db->query("SELECT post_title FROM wp_posts WHERE id IN (SELECT object_id FROM wp_term_relationships WHERE object_id IN ($result))"); 
            while (
$fila4 $resultat->fetch_array(MYSQLI_ASSOC)){
                
print_r($fila4['post_title']);  
                echo 
'<br/>';
            }
            
            return 
$resultat;
            
$db->close();        
        } 
  #2 (permalink)  
Antiguo 15/04/2014, 03:08
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años
Puntos: 10
Respuesta: Funcion imprimir su valor en dos sitios

Me imagino que queras decir que la consulta mysql devuelve 2 filas, porque en la query solo estas pidiendo 1 columna

Prueba así

Código PHP:
Ver original
  1. function getComparar($slug, $slug2){
  2.             $db = new connexio();  
  3.             $result = array_intersect($this->getLugar($slug), $this->getBares($slug2));
  4.            
  5.             $result = implode(", ", $result);
  6.  
  7.             $resultat = $db->query("SELECT post_title FROM wp_posts WHERE id IN (SELECT object_id FROM wp_term_relationships WHERE object_id IN ($result))");
  8.             while ($fila4 = $resultat->fetch_assoc()){
  9.                 $res[]=$fila4['post_title'];
  10.             }
  11.            
  12.             $db->close();      
  13.             return $res;
  14.         }

poniendo $res[] con las [], $res se convierte en un array acumulativo que va agregando cada vez mas a su variable, enves de reemplazarlo.
Otra cosa, fetch_assoc hace exactamente lo mismo que fetch_array(MYSQLI_ASSOC)
Y, si pones un return en una función, lo que está debajo del return NO se ejecutará, el db close lo tienes que poner encima.

Igualmente, una conexion mysql se cierra sola cuando el script termine de ejecutarse

Avisa si fue eso lo que necesitabas, un saludo

EDIT: un valor en un lugar, el otro en otro lugar..podrias especificar eso? gracias
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #3 (permalink)  
Antiguo 15/04/2014, 03:54
 
Fecha de Ingreso: marzo-2012
Mensajes: 180
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Funcion imprimir su valor en dos sitios

Acabo de probar el código y me imprime los dos. Lo que quiero hacer es desde otra pagina cargar en un lugar el primer nombre por ejemplo paco y luego unas lineas más abajo jose.

Lo tengo que imprimir en modo String
  #4 (permalink)  
Antiguo 15/04/2014, 04:00
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años
Puntos: 10
Respuesta: Funcion imprimir su valor en dos sitios

En esta función tu coleccionas los datos, en un array, como fue dado en el ejemplo. el resultado de esta funcion debe enviarse a tu html

Luego en tu html recibes el array y en un ejemplo pondrias

$titulo = getComparar($a,$b); ?>

<html>
<body>
<h3> titulo 1</h3>
<p>?php $titulo[0] ?></p>
<h3> titulo 2</h3>
<p><?php $titulo[1] ?></p>
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #5 (permalink)  
Antiguo 16/04/2014, 09:08
 
Fecha de Ingreso: marzo-2012
Mensajes: 180
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Funcion imprimir su valor en dos sitios

Gracias, en una función no puedo retornar más de una cosa no?
  #6 (permalink)  
Antiguo 16/04/2014, 23:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Funcion imprimir su valor en dos sitios

Cita:
Iniciado por manelmanel8 Ver Mensaje
Gracias, en una función no puedo retornar más de una cosa no?
Depende del lenguaje como lo haces...... en PHP puedes devolver un arreglo de todo lo que tu quieras o sea... lo que necesites y lo "desempaquetas" con la funcion list()

Código PHP:
<?php

    
function hacer_algo($p1,$p2)
     {
     
// algo
     
return array($r1,$r2,r3);
     }

// desempaqueto variables
list ($a,$b,$c) = hacer_algo($p1,$p2);

$a, $b y $c serian tus $r1,$r2,r3 o sea lo que querias devolver con return y empaqueastes en la salida de la funcion
__________________
Salu2!

Etiquetas: funcion, select, sql, valor
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 18:20.