Foros del Web » Programando para Internet » PHP »

Comando Basico en PHP para MySQL

Estas en el tema de Comando Basico en PHP para MySQL en el foro de PHP en Foros del Web. Buenas a Todos. Primero Dar los Datos Para que Se Entienda lo que quiero hacer. Primero el Codigo que yo uso: Código: <? $sss = ...
  #1 (permalink)  
Antiguo 12/07/2006, 08:50
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 12 años, 3 meses
Puntos: 84
Comando Basico en PHP para MySQL

Buenas a Todos. Primero Dar los Datos Para que Se Entienda lo que quiero hacer.

Primero el Codigo que yo uso:

Código:
<?
$sss = mysql_query("Select * from pfalse where id='1' ") ;
while ($js = mysql_fetch_array($sss)) { 
$html = $js[html] ; 
$status = $js[status] ; 
}
if ($status == 'on') { echo $html ; exit() ; }
?>
Vale, Lo que Quiero hacer con ese codigo es cojer los datos de la fila que tenga el id 1 de una tabla q se yame pfalse .

Hasta Ahi todo correcto, Ya que eso funciona.

Inconvenientes:
+ el While buska por Toda la Tabla , por lo que tardaria mas en una tabla que tuviera 1500 campos que en 1 que tuviera solo 1 campo.

Tonces mi pregunta es, Como puedo Obtener el dato de 1 campo que se en que fila esta sin tener que buskar por toda la base de datos.

He leido por ahi un comando yamado mysql_result pero no entiendo su sintaxis.

Alguien me Puede ayudar ?
  #2 (permalink)  
Antiguo 12/07/2006, 09:00
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
De acuerdo

Pues mysql_result() no te ayuda eficientar tus resultados, unicamente obtiene los "datos" de tu consulta. Para poder hacer mas eficiente tu busqueda tendrias que agregar mas parametros de busqueda.

Saludillos.
  #3 (permalink)  
Antiguo 12/07/2006, 09:15
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 12 años, 3 meses
Puntos: 84
No es eso, es piyar los datos de un sitio que ya me conozco, Creo que ya lo tengo echo pero si alguien me puede decir si el comando esta bien ..

Código:
$gstatus = mysql_query("Select status from pfalse where id='1' ") ;
$status = mysql_result($gstatus, 0) ;
Y en la variable $status me saldria el contenido de la celda status de la fila 1 verdad ?
  #4 (permalink)  
Antiguo 12/07/2006, 09:31
 
Fecha de Ingreso: junio-2006
Mensajes: 87
Antigüedad: 11 años, 5 meses
Puntos: 0
Si solo quieres leer el primer registro puedes hacer esto:
Código PHP:
<?
$sss 
mysql_query("Select * from pfalse where id='1' ") ;
if (
$js mysql_fetch_array($sss)) { 
$html $js[html] ; 
$status $js[status] ; 
}
if (
$status == 'on') { echo $html ; exit() ; }
?>
Cambias el while por un if, para así comprobar que ha leido un dato.
Si sólo quieres mostrar los registros que tienen un 'on' en status, lo puedes añadir en la consulta de la BBDD.

El último código que has puesto si que te leería el primer registro de la consulta.
  #5 (permalink)  
Antiguo 12/07/2006, 09:41
 
Fecha de Ingreso: mayo-2006
Mensajes: 43
Antigüedad: 11 años, 6 meses
Puntos: 0
O tambien lo puedes hacer asi :

<?
$sss = mysql_query("Select * from pfalse where id='1' ") ;
if (mysql_num_rows($sss)) { // De esta forma se si el query encontro algun registro
$js = mysql_fetch_array($sss);
$html = $js[html] ;
$status = $js[status] ;
}
if ($status == 'on') { echo $html ; exit() ; }
?>
  #6 (permalink)  
Antiguo 12/07/2006, 09:49
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 12 años, 3 meses
Puntos: 84
Muchas Gracias a todos :)

Muchas Veces me Quitan los hosting por "User demasiados recursos del sistema" .

A que puede deberse ? A un Codigo excesivamente complicado ( osea que podria ser mas sencillo pero q haciendolo por otros lados carga mucho el ordenador ) ?

Ahora estoy Simplificando scripts para qno pase eso, pero no se si es por eso el problema :(
  #7 (permalink)  
Antiguo 12/07/2006, 10:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Realmente no sé que deseas hacer exactamente .. pero viendo tu código .. usando más SQL (Lenguaje estructurado de consultas) podría quedar en:

Código PHP:
$sss mysql_query("Select id from pfalse where id='1' AND status='on'");
$resultado=mysql_query($sss) or die(mysql_error());
if (
mysql_num_row($resultado) == 1){
   echo 
$html;

Las diferencias son (vs a lo que tu haces):
1) No llamo a todos los campos de la tabla implicada .. sobre todo cuando ni los voy a usar como era el caso del ejemplo. Es decir no uso "SELECT * ..." (con el *) sino que obtengo sólo el "id" por ejemplo .. o nombro en general los nombres de los campos que voy a usar .. ninguno más.

2) Como parece que el objetivo de la consulta es determinar si tal campo con tal Identificador (id) tiene su campo "status" tal valor .. obtengo sólo los campos con esa condición y sólo ese (o esos) .. ninguno más .. así que no hay bucle que usar ni condición extra en PHP que hacer. Ya lo hice en SQL.

Como en este caso sé que voy a obtener un sólo registro (supoco . .no sé si ese "ID" se repite en la tabla.. asumo que no) o ninguno .. cuento los resultados (ni voy al resultado directo por: mysql_result() ... ).

Usando más SQL todavía .. puedes "Contar" registros (tra-la-la xD) con SQL:

Código PHP:
$sss mysql_query("Select COUNT(*) from pfalse where id='1' AND status='on'"); 
y ver en mysql_result($resultado,0) el valor .. 1 o 0 en este caso ...


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 17:15.