Originalmente inviato da
alemoppo
Potresti mostrare il codice "intero"? Cioè non capisco bene, ad esempio dove è la parte dove dovrebbe esser assegnata solo la prima parte del testo (nell'implementazione senza array).
Ciao!
Ti ringrazio ancora della risposta.
Guarda, in realtà il codice è pressoché il medesimo mostrato. Nel dettaglio:
pagina_comandi.inc.php
Codice HTML:
<form action="main.php?page=values" method="post">
<select name=values>
<option value="Oggetto">Usa l'oggetto</option>
<option value="Dialogo">Usa il dialogo</option>
<option value="Arma">Usa l'arma</option>
</select>
</form>
values.inc.php (è una pagina "invisibile", che si chiude subito e che serve a operare un valore)
Codice PHP:
$login = $_SESSION['login'];
$id = $_SESSION['id_chat'];
//setto messaggio intero da inserire nella tabella chat
if (query('get',$_POST['values'])=='Oggetto') {
$text = "$login sceglie di usare l'oggetto (questo oggetto ti permette di bla bla)";
} elseif (query('get',$_POST['values'])=='Dialogo') {
$text = "$login sceglie di usare il dialogo (il dialogo ti permette di bla bla)";
} elseif (query('get',$_POST['values'])=='Arma') {
$text = "$login sceglie di usare arma (arma ti permette di bla bla)";
}
query_ok("INSERT INTO chat (id, user, text) VALUES ('$id', '$login', '$text')");
echo "<script type='text/javascript'> document.location = 'main.php?page=pagina_comandi'; </script>";
/*Redirigo alla pagina dei comandi*/
Tutto questo funziona perfettamente, e non ho alcun problema con l'inserimento del testo.
Il testo viene inserito nella sua interezza.
Questo testo poi lo recupero con il SELECT nella pagina in cui compaiono tutti i risultati relativi a $id:
Codice PHP:
$show= query_ok("SELECT chat.*, user.*
FROM chat
LEFT JOIN user ON user.name = chat.user
WHERE chat.id = ".$_SESSION['id_chat']."
ORDER BY id", 'result');
while ($row = query_ok($show, 'fetch'))
{
//results
}
Tutto funziona perfettamente,
Il mio unico problema è che, usando il form select di pagina_comandi.inc.php, il risultato deve essere visulizzato in 2 modi diversi, ossia:
se chat.user == $login -> vede tutto $text (incluso il messaggio tra le due parentesi)
se chat.user != $login -> vede solo la prima parte di $text (senza il messaggio tra le due parentesi)
è qui che nasce il mio gap.
Non so come rendere questa funzionalità e non so se agire direttamente nell'insert o agire nel SELECT/WHILE