- Home
- Categorie
- Coding e Sistemistica
- Coding
- Script php
-
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]