Foros del Web » Programando para Internet » PHP »

pg_fetch_array

Estas en el tema de pg_fetch_array en el foro de PHP en Foros del Web. Hola amigos, quisiera que me pudieran ayudar con este problema que tengo, estoy trabajando con phpPgAdmin y dentro de un esquema tengo creada una función ...
  #1 (permalink)  
Antiguo 25/06/2014, 14:52
 
Fecha de Ingreso: septiembre-2008
Mensajes: 72
Antigüedad: 15 años, 7 meses
Puntos: 0
pg_fetch_array

Hola amigos, quisiera que me pudieran ayudar con este problema que tengo, estoy trabajando con phpPgAdmin y dentro de un esquema tengo creada una función llamada ferr(interger, interger)

Código SQL:
Ver original
  1. DECLARE
  2.         id INTEGER:=0;
  3.     BEGIN
  4.         SELECT id_ferr INTO id FROM test.user_ferr WHERE user_id=$1 AND valid=1;
  5.         IF id<=0 OR id IS NULL THEN
  6.             INSERT INTO test.user_ferr(user_id, ferr_id) VALUES ($1, $2)RETURNING id_ferr INTO id;     
  7.         END IF;
  8.         RETURN id;
  9.     END;
)

Volviendo a la programación, recibo una serie de variables de mi formulario, donde ejecuto otras sentencias también. Pero cuando llego a parte de consultar mi función esta mi gran problema:

Al comienzo de mi php declaro mis variables

if(!$user=$_POST['user']){ Aquí va mi condición y mensaje}
if(!$ferrId=$_POST['ferrId']){Aquí va mi condición y mensaje}

Código PHP:
Ver original
  1. $sql="select test.ferr($user, $ferrId);";
  2.     $result=pg_query($conn, $sql);
  3.     $row=pg_fetch_array($result);
  4.    
  5.     $ferrId=$row[0];
  6.         $ferrId=$row[1];
  7.         $ferrId=$row[2];
  8.  
  9.  
  10.  
  11.  
  12. $sqlIns="insert into test.ferr_c (farr_id, herr_id, user_id) values (".$row[2].", $herr, $ID);";
  13.     $resultIns=pg_query($conn, $sqlIns);
  14.     if(pg_affected_rows($resultIns)==0){
  15.         $mje=false;
  16.         $errmesg.="Error";
  17.     }
  #2 (permalink)  
Antiguo 25/06/2014, 15:45
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: pg_fetch_array

Cita:
Iniciado por tuuutooo Ver Mensaje
Hola amigos, quisiera que me pudieran ayudar con este problema que tengo, estoy trabajando con phpPgAdmin y dentro de un esquema tengo creada una función llamada ferr(interger, interger)

Código SQL:
Ver original
  1. DECLARE    
  2.         id INTEGER:=0;
  3.     BEGIN
  4.         SELECT id_ferr INTO id FROM test.user_ferr WHERE user_id=$1 AND valid=1;
  5.         IF id<=0 OR id IS NULL THEN
  6.             INSERT INTO test.user_ferr(user_id, ferr_id) VALUES ($1, $2)RETURNING id_ferr INTO id;        
  7.         END IF;
  8.         RETURN id;
  9.       END;
)

Volviendo a la programación, recibo una serie de variables de mi formulario, donde ejecuto otras sentencias también. Pero cuando llego a parte de consultar mi función esta mi gran problema:

Al comienzo de mi php declaro mis variables

if(!$user=$_POST['user']){ Aquí va mi condición y mensaje}
if(!$ferrId=$_POST['ferrId']){Aquí va mi condición y mensaje}

Código PHP:
Ver original
  1. $sql="select test.ferr($user, $ferrId);";
  2.     $result=pg_query($conn, $sql);
  3.     $row=pg_fetch_array($result);
  4.    
  5.     $ferrId=$row[0];
  6.         $ferrId=$row[1];
  7.         $ferrId=$row[2];
  8.  
  9.  
  10.  
  11.  
  12. $sqlIns="insert into test.ferr_c (farr_id, herr_id, user_id) values (".$row[2].", $herr, $ID);";
  13.     $resultIns=pg_query($conn, $sqlIns);
  14.     if(pg_affected_rows($resultIns)==0){
  15.         $mje=false;
  16.         $errmesg.="Error";
  17.     }

He leido tu mensaje como 3 o 4 veces y aun no entiendo que es lo que te pasa.

igualmente no entiendo porque haces esto:

Código PHP:
Ver original
  1. $ferrId=$row[0];
  2.         $ferrId=$row[1];
  3.         $ferrId=$row[2];
  4. //estar reescribiendo la variable $ferrId

hablas de que tienes una funcion ferr() que no veo por ningun lado.

a ver si te puedes explicar un poco mejor.
  #3 (permalink)  
Antiguo 25/06/2014, 16:07
 
Fecha de Ingreso: septiembre-2008
Mensajes: 72
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: pg_fetch_array

Haber, quizás me exprese mal, pero explico nuevamente.... Mi función es ferr que es primer SQL que agregue como código.

Esa función la invoco a través de la siguiente sentencia:

Código PHP:
Ver original
  1. $sql="select test.ferr($user, $ferrId);";
  2.     $result=pg_query($conn, $sql);
  3.     $row=pg_fetch_array($result);
  4.    
  5.         //PERO AQUI NO SE COMO RESCATAR LA VARIABLE  $ferrId, PARA PODER TRASPASARLA AL SIGUIENTE QUERY. NO SÉ COMO IGUALAR ESTO $ferrId=$row[]; PARA RESCATAR EL ID QUE AGREGUE AL INSERTAR.

Y esa sentencia realiza lo siguiente, función ferr que es igual test.ferr:

Código SQL:
Ver original
  1. DECLARE
  2.         id INTEGER:=0;
  3.     BEGIN
  4.         SELECT id_ferr INTO id FROM test.user_ferr WHERE user_id=$1 AND valid=1;
  5.         IF id<=0 OR id IS NULL THEN
  6.             INSERT INTO test.user_ferr(user_id, ferr_id) VALUES ($1, $2)RETURNING id_ferr INTO id;      
  7.         END IF;
  8.         RETURN id;
  9.     END;

Esa sentencia la tengo en la base de datos.

Espero haberme explicado mejor
  #4 (permalink)  
Antiguo 25/06/2014, 16:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: pg_fetch_array

Cita:
//PERO AQUI NO SE COMO RESCATAR LA VARIABLE $ferrId, PARA PODER TRASPASARLA AL SIGUIENTE QUERY. NO SÉ COMO IGUALAR ESTO $ferrId=$row[]; PARA RESCATAR EL ID QUE AGREGUE AL INSERTAR.
¿Y nosotros sabemos qué poner?

No, no te confundas, no somos adivinos.

Tu mismo puedes descubrir que tipos de datos y valor tienes ahí, para eso existe la función var_dump() que te permite inspeccionar una variable.

En dicho caso sólo te falta observar lo que tienes:
Código PHP:
Ver original
  1. $row=pg_fetch_array($result);
  2. var_dump($row);

¿Qué resulta?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 25/06/2014, 17:32
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: pg_fetch_array

Creo que tienes un problema de comceptos. Recuerda que estas en posteando en php
y segun el manual una funcion es esto:
Funciones definidas por el usuario

si lo que quieres es imprimir el resultado de tu consulta a la bd (que no es una funcion).
leete esto:
pg_fetch_array

Si lo que quieres es mostrar los datos en pantalla pues directamente haz:

Código PHP:
Ver original
  1. $row=pg_fetch_array($result);
  2. echo $row[0];
  3. echo $row[1];
  4. echo $row[2];

echale tambien un vistazo a pg_fetch_row

Etiquetas: formulario, select, sql, variable
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 10:49.