- Home
- Categorie
- Coding e Sistemistica
- Coding
- Script php
-
Script php
Salve a voi tutti,
Ho in mente di realizzare il seguente script...
In pratica voglio munire l utente che si iscrive al sito di una propria bacheca dove gli altri utenti possono lasciare dei messaggi ect...
Creo il form e fin qui' ok...ciò che nn ho ancora capito come fare e se per esempio:
Io Marco scrivo sulla bacheca di Paolo voglio che nella bacheca di Marco esca scritto che io ho appunto scritto sulla bacheca di Paolo...sembra una banalità ma non ho capito come fare questa cosa...simile a facebook per intenderci meglio...
Consigli?
-
Perdonami se dico una stupidaggine (è il mio primo intervento...)
Però non potresti semplicemnte affiancare ad ogni utente una variabile di sessione contenente il numero di risposte effettuate?
-
Ciao carlitos1982,
con le variabili di sessione non è fattibile poichè le sessioni sono individuali. L'utente X non può condividere variabili di sessioni con altri utenti.Supponiamo che la tabella degli utenti siano così strutturata:
Utente: ID , username, altreInfoSi può creare una tabella Bacheca e la possiamo strutturare così:
bacheca: ID, utente_ID,writer_ID,testoAdesso mettiamo che X voglia scrivere sulla bacheca di Y.
Si esegue una query inserendo nella tabella Bacheca la seguente tupla:
-> bacheca: [ID autoincrementato], ID di Y, ID di X, Testo scritto da XPer visualizzare la bacheca di Y è sufficiente eseguire una select di questo tipo:
Query:"SELECT testo,writer_ID as scritto_da FROM bacheca WHERE utente_ID = [ID di Y]"Questa può essere una struttura elementare di partenza.
Ciao

-
Si può creare una tabella Bacheca e la possiamo strutturare così:
bacheca: ID, utente_ID,writer_ID,testoAdesso mettiamo che X voglia scrivere sulla bacheca di Y.
Si esegue una query inserendo nella tabella Bacheca la seguente tupla:
-> bacheca: [ID autoincrementato], ID di Y, ID di X, Testo scritto da XCiao

Ciao,e grazie della risposta
Volevo chiederti nella tabella bacheca nel campo utente_ID e **writer_ID
andrò a inserire gli id unici relativi alla tabella utenti..giusto?
**
-
@Bazarop said:
Per visualizzare la bacheca di Y è sufficiente eseguire una select di questo tipo:
Query:"SELECT testo,writer_ID as scritto_da FROM bacheca WHERE utente_ID = [ID di Y]"Questa può essere una struttura elementare di partenza.
Ciao

Qui visualizzo la bacheca di Y con ciò che ho scritto nella sua bacheca,allo stesso tempo però io dovrei visualizzare nella bacheca di X una sorta di notifica che tenga conto che ho scritto nella bacheca di Y
Del tipo "Hai appena scritto sulla bacheca di Y"
-
@carlitos1982 said:
Ciao,e grazie della risposta
Volevo chiederti nella tabella bacheca nel campo utente_ID e writer_ID
andrò a inserire gli id unici relativi alla tabella utenti..giusto?
Giusto.@carlitos1982 said:
Qui visualizzo la bacheca di Y con ciò che ho scritto nella sua bacheca,allo stesso tempo però io dovrei visualizzare nella bacheca di X una sorta di notifica che tenga conto che ho scritto nella bacheca di Y
Del tipo "Hai appena scritto sulla bacheca di Y"Così strutturata la tabella non va più bene, perchè bisognerebbe creare una struttura leggermente più complessa in grado di ordinare cronologicamente elementi diversi.
Bacheca: ID, user_ID, post_ID, notification_ID, altri tipi e/o dati...
Post: ID, content,writer_ID
Notification: ID, contentnotifacion_ID e post_ID fanno riferimento all'azione in bacheca, e di default hanno valore 0.
ES:
X scrive sulla bacheca di A//serisco il post nel DB
1.query: " INSERT into Post (content,writer_ID) VALUES ("Ciao, come stai?",[ID di X])"//inserisco la notifica nel DB
2.query: "INSERT into Notification (content) VALUES ("X ha scritto sulla bacheca di Y")"//collego il post alla bacheca di Y
3.query:"INSERT into Bacheca (user_ID,post_ID) VALUES ([ID di Y],[ID del Post scritto]);//collego la notifica alla bacheca di X
4.query:"INSERT into Bacheca (user_ID,notification_ID) VALUES ([ID di X],[ID della notifica])Questa può essere una soluzione di PARTENZA.
Ciao
-
Comincio con il progettare la cosa secondo la tua base...se ho problemi posto....:)
-
Scusami...per conoscere l id del profilo della bacheca su cui sto scrivendo devo usare get?Cioè se io Marco scrivo sulla bacheca di Paolo per ricavarmi Paolo devo usare il Get giusto?
-
Si, se hai nell'url l'id utente del proprietario della bacheca.
Per esempio, se sono sulla bacheca di Paolo, potrei avere un url di questo tipo: http ://nwww.miosito.net/?page=wall&profile=IDPAOLO
Dove al posto di IDPAOLO vi è ovviamente l'id di Paolo.Ciao
-
Sono arrivato qui
//collego il post alla bacheca di Y
3.query:"INSERT into Bacheca (user_ID,post_ID) VALUES ([ID di Y],[ID del Post scritto]);Come faccio a recuperarmi l id dell ultimo post inserito??
Avevo fatto cosi'
[PHP]
$query = "INSERT into post (content,writer_id) VALUES ('$testo', '$id')";
$result = @mysql_query($query) or die (mysql_error());
$ultimo_id = mysql_insert_id();[/PHP]
Mi da valore 0 però $ultimo_id nel database
-
Strano, se la query va a buon fine, mysql_insert_id() dovrebbe restituirti giusto l'id(chiave primaria autoincrementata) dell'ultimo inserimento.
Il problema potrebbe essere questo, tratto dal manuale ufficiale:
"The ID generated for an AUTO_INCREMENT column by the previous query on success, 0 if the previous query does not generate an AUTO_INCREMENT value, or FALSE if no MySQL connection was established. "Post ha un campo id(o il nome che gli hai dato) settato come chiave primaria e con autoincremento?
-
Ho risolto...ora che ho terminato con gli insert non mi resta che cominciare con la visualizzazione
-
Ottimo!
Solo per curiosità, qual'era il problema?
-
Ho risolto diciamo in maniera "casareccia"
Ho creato due query separate[PHP]
//qui recupero l id dell ultimo post inserito
$strsqlultima100="SELECT id FROM post ORDER BY id DESC LIMIT 1";
$query100=mysql_query("$strsqlultima100") or die("Errore query database: " . mysql_error());while ($riga100 = mysql_fetch_array($query100)) {
$ultimoid=$riga100['id'];
//inserimento in bacheca
$query33 = "INSERT into bacheca (user_id,post_id) VALUES ('$idamico','$ultimoid')";
$result33 = mysql_query($query33) or die (mysql_error());}
}[/PHP]
Con mysql id mi dava sempre 0 come risultato
-
Però così sprechi risorse.
Qualcosa non va nel codice o nel database(molto più probabilmente).Se id è con autoincremento, non dovrebbe restituire 0.
0 lo restituisce solo quando la query eseguita non comprende un campo che viene incrementato automaticamente.
-
Ora funziona
[PHP]
if (isset($_POST['message_wall']))
{//inserisco nella tabella post il contentuto l id unico di chi scrive e l id unico di chi riceve il messaggio
$testo=addslashes($_POST['message_wall']);
$query = "INSERT into post (content,writer_id,id_ricevente) VALUES ('$testo', '$id','$idamico')";
$result = mysql_query($query) or die (mysql_error());
$ultimo_id = mysql_insert_id();//inserisco in bacheca l id dell ultimo post inserito e l id univoco di chi scrive
$query33 = "INSERT into bacheca (user_id,post_id) VALUES ('$idamico','$ultimo_id')";
$result33 = @mysql_query($query33) or die (mysql_error());[/PHP]