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?
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:
<?php
$dato= $_POST["campo"];
if( !$campo ) echo 'Campo vacio';
else echo 'Campo contiene informacion';
?>
Saludos !
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.
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.
Tampoco entendí muy bien lo que quieres hacer... pero quizás esto te pueda servir...
foreach($_POST as $sNameInput => $sValueInput){
if( (strlen($sValueInput) > 0) ){ echo "$".$sNameInput." = ".$sValueInput." <br/>"; }
elseif( ($sValueInput == "") || empty($sValueInput) ){ echo "$".$sNameInput." = <i>null</i> <br/>"; }
}
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