Foros del Web » Programando para Internet » PHP »

¿como hago esta consulta en PHP?

Estas en el tema de ¿como hago esta consulta en PHP? en el foro de PHP en Foros del Web. Hola a todos, necesito realizar una consulta en PHP a una tabla "contenido" extrayendo el valor del campo "url" pero cuando el campo "usuario" sea ...
  #1 (permalink)  
Antiguo 30/07/2003, 14:00
 
Fecha de Ingreso: noviembre-2002
Mensajes: 190
Antigüedad: 22 años
Puntos: 0
Exclamación ¿como hago esta consulta en PHP?

Hola a todos, necesito realizar una consulta en PHP a una tabla "contenido" extrayendo el valor del campo "url" pero cuando el campo "usuario" sea 22 y el campo "idpais" sea AR, lo intente hacer así:

Código PHP:
$r2 mysql_query("SELECT url FROM contenido WHERE usuario = 22  AND idpais = AR",$conectar
pero claro si idpais no es un valor número, me tira error
¿alguna solución?

estos valores, usuario y idpais son generados por unas variables.

Graicas!!
  #2 (permalink)  
Antiguo 30/07/2003, 14:26
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

En SQL las cadenas de texot se delimitan con '. Asi:

AND idpais = 'AR'

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 30/07/2003, 20:51
 
Fecha de Ingreso: noviembre-2002
Mensajes: 190
Antigüedad: 22 años
Puntos: 0
si, si Gracias se nota que eh leido poco.

-----------Una consulta más-------------------------

tengo que seleccionar de la tabla "contenido del campo "url" como habia dicho anteriormente.
Para seleccionar el contenido del campo "url" tienen que ser "idusuario = 22 y idpais = AR, ahora bien si AR no existe en el campo "idpais", entonces necesito que busque la fila que posee WW en el campo idpais.

yo lo estoy haciendo así;

Código PHP:
$r2 mysql_query("SELECT url FROM contenido WHERE idusuario = 22  AND idpais = 'AR'",$link) or die ("Error: ".mysql_error()); 
y si esta consulta no da ningun resultado, necesito que haga esta otra
Código PHP:
  $r3 mysql_query("SELECT url FROM contenido WHERE idusuario = 22  AND idpais = 'WW'",$link) or die ("Error: ".mysql_error()); 
después tomo el resultado y lo imprimo
Código PHP:
list($resultado) = mysql_fetch_row($r3);
echo 
$resultado
¿cómo lo puedo armar a esto?
¿hay alguna forma de hacerlo, en la que no tenga que consultar 2 veces la base?

Saludos y gracias!

Última edición por erama; 30/07/2003 a las 21:06
  #4 (permalink)  
Antiguo 30/07/2003, 23:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Con mysql_num_rows() puedes obtener el total de registros que te arroje una consulta .. (en tu caso esas $r2 y $r3 .. ) si te arroja +0 pues ya lo tienes .. "else" .. la otra consulta ..

También tienes COUNT(*) de Msyql (función) que es mucho más optima para calcular el total de registros que puede arrojar una consulta que hagas ..

A este total lo puedes acceder con:

Código PHP:
<?
$r2
="SELECT COUNT(*) FROM ....... lo que tienes .....";
$consulta=mysql_query($r2);

// se accede al único registro que arroja una consulta tipo COUNT() 
$total=mysql_result($consulta,0);

// Se compara ..
if ($total >0){
    
$r="SELECT .. el que tenias ..."// tu $r2 SQL 
} else {
     
$r="SELECT .. el que corresponda"// tu $r3 SQL
}

// Ejecutamos la consulta que salga del condicional
$consulta=mysql_query($r);

// Y un bucle para leer los posibles registros que se obtengan ..
while ($registro=mysql_fetch_array($consulta)){
   
// se obtiene un array asociativo .. donde el indice es el nombre del campo que uses en tu SQL  ...
   
echo $registro['nose_campo'];
   echo 
$registro['nose_campo'];
}
?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 30/07/2003 a las 23:45
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 22:21.