Crear función para hacer query moldeable

Iniciado por Servia, 3 Febrero 2011, 21:50 PM

0 Miembros y 1 Visitante están viendo este tema.

Servia

Señores, señoras tengo un problema y de nuevo acudo a ustedes ;-)

Me gustaría crear una función que me añada de forma automática los campos a actualizar de un query.
Me explico; tengo estos datos:
-jugador
-email
-vida
-arma

Hay un formulario de edición y quiero que al recibir los datos la función detecte los que no están vacíos y proceda a añadirlos al query posterior.

$campo1=creaquery($_POST['jugador']);
$campo2=creaquery($_POST['email']);
$campo3=creaquery($_POST['vida']);
$campo4=creaquery($_POST['arma']);

$user=$_SESSION['userlogin'];

function creaquery ($campo){
  if($campo!=''){
  $querido=NOMBREDEL CAMPO .'=' . $campo; // formar el jugador=$jugador
  }

}

$query="UPDATE db_game SET $querido WHERE user='$user' ";


Como lo hago?

Diabliyo

Cita de: Servia en  3 Febrero 2011, 21:50 PMfunction creaquery ($campo){
  if($campo!=''){
  $querido=NOMBREDEL CAMPO .'=' . $campo; // formar el jugador=$jugador
  }

}

No te entiendo muy bien y ademas si lo estas programando tu, dejame decirte que es pesimo la forma como lo estas pensando... En fin, si quieres comprobar si una cadena esta vacia no es necesario hagas esto de !=''.

Basta con:

Código (php) [Seleccionar]
<?php
$dato
$_POST["campo"];

if( !
$campo ) echo 'Campo vacio';
else echo 
'Campo contiene informacion';
?>


Saludos !

Servia

#2
LOL

Primero, ni que mi código sea malo deberías decir que es pésimo, esta sección es de desarrollo precisamente.
Segundo, parece que no hayas leído lo que he escrito.

Me gustaría crear una función que añada de forma automática los campos a actualizar de un query.


Edito: Por ejemplo, yo no he criticado tus aplicaciones porque no sabías ni que eran las pretty urls.

~ Yoya ~

Código (php) [Seleccionar]
function creaquery($campo, $user = $_SESSION['userlogin'])
{
if(!empty($campo))
{
$querido="NOMBREDEL CAMPO = ".$campo;
$query = mysql_query("UPDATE db_game SET $querido WHERE user='$user'");

                 if($query)
                 {
                    return TRUE;
                 }
        }

           return FALSE;
}


La he probado y funciona correctamente. Si todo esta bien devuelve True(1) y si no False(0), por si necesitas comprobar que el campo se haya actualizado correctamente.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Shell Root

Tampoco entendí muy bien lo que quieres hacer... pero quizás esto te pueda servir...
Código (php) [Seleccionar]
foreach($_POST as $sNameInput => $sValueInput){
  if( (strlen($sValueInput) > 0) ){ echo "$".$sNameInput." = ".$sValueInput." <br/>"; }
  elseif( ($sValueInput == "") || empty($sValueInput) ){ echo "$".$sNameInput." = <i>null</i> <br/>"; }
}
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Servia

Perfecto!
Gracias, muchas gracias!
La combinación de ambos códigos genera lo que necesitaba!
Shell Root, había buscado mucho como mostrar el nombre de la var, pues en todos sitios decían que no se podía.

Encontré este que también sirve pero el tuyo es más cómodo.
function var_name (&$iVar, &$aDefinedVars)
    {
    foreach ($aDefinedVars as $k=>$v)
        $aDefinedVars_0[$k] = $v;

    $iVarSave = $iVar;
    $iVar     =!$iVar;

    $aDiffKeys = array_keys (array_diff_assoc ($aDefinedVars_0, $aDefinedVars));
    $iVar      = $iVarSave;

    return $aDiffKeys[0];
    }


Lo dejo añadido, para quién busque en google el tema :P