Newsgroup: it.comp.www.php
Titolo: 2 domane: Visualizzare gli "a capo" di una textarea, risalire all'id che si autoincrementa

1) Ho un campo di tipo textarea che salvo in un db mysql sotto forma di un
varchar(250).
Il problema è che se l'utente digita nella textarea qualcosa e ogni tanto va
a capo il testo, quando viene visualizzato in un'altra pagina, viene scritto
tutto sulla stessa riga.
C'è un modo per far si che vengano salvati anche gli "a capo" senza che
l'utente inserisca ad esempio il tag <br>?
2) Quando eseguo una "INSERT INTO" per aggiungere un nuovo elemento in una
tabella vorrei sapere che id (chiave che si auto incrementa) gli viene
assegnato, è possibile? C'è una funzione che mi restituisce questo valore?
Grazie in anticipo

 
Questa la so!!
mysql_insert_id()

 assegnato, è possibile? C'è una funzione che mi restituisce questo valore?
mysql_insert_id()
Mett.

> mysql_insert_id()
Cavolo va benissimo ma solo dopo la query, il problema è che restituisce '0'
se richiamato all'interno della query stessa che aggiunge la riga :( Vorrei
fare in modo che nella INSERT INTO venga messo come valore di un campo ad
esempio immagine45 dove 45 è l'id della nuova riga/tupla. Come poso fare?

esempio immagine45 dove 45 č l'id della nuova riga/tupla. Come poso fare?
Se č cosě il nome dell'immagine te lo puoi costruire dinamicamente
quando fai la select, non ti serve inserirlo nel database, oltretutto
risparmi spazio.
Se proprio vuoi fare cosě, devi usare 2 query, dopo l'insert devi fare
un UPDATE.
Ciao
Francesco Mazzi
Webmaster di AltroPC.it - 
http://www.altropc.it
 
Project Admin di "PHP Reservation - Online booking system" - 
http://phpreservation.sourceforge.net
Dev.Staff di E-Xoopport - 
http://dev.e-xoopport.it

*Fabio* ha scritto:

Credo che sia impossibile (ma non vorrei dire cag@te) risolvere on fly 
il valore dell'id ma potresti fare in questo modo:
subito dopo l'INSERT INTO un UPDATE del campo che ti interessa con la 
clausola WHERE id=$last_insert_id con $last_insert_id=mysql_insert_id().
Forse è una procedura troppo ridondante ma non me ne vengono in mente altre.

 Forse è una procedura troppo ridondante ma non me ne vengono in mente
altre.
Ho fatto proprio così.... si in effetti mi sa che è impossibile anche perchè
la query non è ancora stata eseguita quindi è impossibile sapere il valore
di ritorno di mysql_insert_id()... a meno che non ci sia una funzione che
restituisce il prossimo valore di id che verrà utilizzato.

 restituisce il prossimo valore di id che verrà utilizzato.
Tendenzialmente, il prossimo valore di ritorno di mysql_insert_id() è 
l'ultimo assegnato + 1, ma credo sia regola generale.
C'è da dire, però, che phpmyadmin mostra il prossimo ID alla voce 
"Prossimo Autoindex" nella pagina riepilogativa della tabella 
selezionata; ciò significa che un modo per calcolare il prossimo 
autoindex c'è. Basta andare a spulciare nel codice di phpmyadmin e 
vedere come fa.
Mett.

*Fabio* ha scritto:

E fare due query?
1a:
//probabilmente ho fatto qualche errore di sintassi ma il concetto é:
sql = "SELECT COUNT(*) as 'counted_id' FROM tabella_nome"
$result = mysql_query($sqlquery);
//casto il risultato ad intero
$last_id = (int)mysql_fetscharray(result["counted_id"]);
e la 2a:
beh la tua INSERT usando come valore per l'id $last_id ottenuto prima!!
Spero di non aver detto castronerie ma farei così...
Lorenzo. :-)

 vedere come fa.
Phpmyadmin recupera il prossimo autoindex con questa funzione:
number_format($showtable['Auto_increment'], 0, 
$number_decimal_separator, $number_thousands_separator)
Mett.

mett wrote:

IMHO non è affidabile (già discussa in un altro thread), è predittiva ma
fallibile..
-- 
www.iuz-lab.info

 Spero di non aver detto castronerie ma farei così...
Non credo sia corretto perchè così assegneresti come id solamente il count
di tutti quelli esistenti... potresti aver cancellato delle righe e in
questo modo $last_id sarebbe inferiore all'id effettivamente utilizzabile.
Addirittura rischieresti di assegnare un id già in uso. (se ho capito bene
quello che volevi fare :) )