Sto sviluppando (almeno ci provo) una chat. Dunque ho una classe, chiamata Chat, dove all'interno di essa c'è il costruttore della chat ed in più tutte le funzioni relative ad essa.
Tra queste funzioni c'è anche la funzione di aggiornamento che non riesco implementareclass ChatRoom
{
var $id_chatroom = 0;
var $chat_type = "";
var $chat_title = "";
var $chat_topic = "";
var $chat_moderator = "";
var $start_time = 0;
var $end_time = 0;
var $welcome_msg = "";
var $max_users= 25;
var $error = 0;
//main constructor function of the class ChatRoom;
function ChatRoom($id_chatroom)
{
...
}
...
}
Quello che vorrei fare è aggiornare alcuni o tutti i campi di una chatroom ...
- Se passo il valore di un campo alla mia funzione ... lo scrive nello DB
- Se non passo il valore di un campo ... vorrei che non tocca per niente il valore già esistente nello DB.
Il mio pensiero era questo ...
1) Chiamare la funzione get_info_chatroom (già implementata), dove mi legge il DB e mi restituisce all'interno di un array tutti i valori della riga richiesta.
2) Se ho passato il valore alla mia funzione me lo inserisce ad un array che sto costruendo ...(e.s: $chatroom_ha)
3) Se non passo nessun valore ... prende il valore corrispodente dall'array che ho ottenuto prima con la "get_info_chatroom" e lo assegna nell'array nuovo che sto costruendo ...
Il problema è che non mi fa il punto 3) ...
Praticamente se non gli passo nessun valore, legge i valori di default che stanno all'inizio della classe, e mi sostittuisce i valori esistenti nello DB con quelli di default.
Ecco la parte che mi da dei problemi(sicuramente piena di errori) :
function set_chatroomFN($id_chatroom, $chat_type, $chat_title, $chat_topic, $chat_moderator, $start_time, $end_time, $welcome_msg, $max_users)
{
$old_chatroom_ha= $this->get_info_chatroomFN($id_chatroom);
// questa funzione mi legge una riga che contiene tutti i dati di una chatroom
if(isset($chat_type))
$chatroom_ha['chat_type']= $chat_type;
else
$chatroom_ha['chat_type']= $old_chatroom_ha['chat_type'];
...
}
Qualquno mi potrebbe dire come posso fare?
Grazie in anticipo