Pubblicare in maniera permanente dei dati

  • Creatore Discussione Creatore Discussione Hackx
  • Data di inizio Data di inizio

Hackx

Utente Attivo
20 Ago 2013
108
0
16
Ciao a tutti :),

Come avrete capito dal titolo avrei bisogno di un vostro grande aiuto!!
La mia domanda è la seguente... tramite le sessioni come posso stampare a video, dopo aver compilato un modulo, in maniera permanente dei dati ...più semplicemente "pubblicazione annuncio".

Ecco qui il mio codice:

PHP:
<?php
session_start();

include "config.php";

if(isset($_POST['submit']))
{

if ( (!isset($_POST['titolo'])) || ($_POST['titolo'] == '' ))
{
echo 'Hai dimenticato di inserire il titolo.';
}
elseif (!preg_match("/^[A-z]+$/", $_POST['titolo']))
{
echo "Il titolo deve essere composto da sole lettere.";
} else {

//recupero i dati dal form
$titolo = $_POST['titolo'];

if (mysqli_query ($conn, "INSERT INTO Nome_tb (titolo) VALUES ('$titolo')") or die (mysqli_error ($conn)))
{

$q=mysqli_query($conn,"SELECT * FROM Nome_tb WHERE titolo = '$titolo'") or die (mysqli_error());
$f=mysqli_fetch_array($q);

//sessioni
$_SESSION['titolo'] = $titolo;

echo $_SESSION['titolo'];

} else {

echo "Registrazione non Effettuata";

   } 
  }
 }
?>

Vi ringrazio moltissimo,
Andrea
 
Il metodo più veloce se lo vuoi fare in maniera permanente potresti salvare i dati che recuperi dal modulo in una tabella del db e dopo le richiami. Altrimenti usando le sessioni sarebbe visibile solo alla persona che compila il form e avrebbe una vita limitata.
 
Il metodo più veloce se lo vuoi fare in maniera permanente potresti salvare i dati che recuperi dal modulo in una tabella del db e dopo le richiami. Altrimenti usando le sessioni sarebbe visibile solo alla persona che compila il form e avrebbe una vita limitata.

Ciao salvo salvi !
Innanzitutto grazie per la risposta :)

Il mio codice quindi è sbagliato ? .. poiché in teoria ho cercato di fare in modo che i dati scritti nel form venissero trasportati nel DB e poi tramite le sessioni stampati a video in maniera permanente.

Mi hai un po spiazzato ! .. ma se memorizzo (come fatto nel mio codice) i dati nel DB.. come posso poi .. automaticamente ad ogni compilazione form, da parte degli utenti, far pubblicare un annuncio sotto l'altro ?

poiché io posso "interrogare" il DB con SELECT e poi far stampare a video .. ma sarebbe una cosa statica o mi sbaglio ?

Ti ringrazio moltissimo,
Andrea
 
Non è sbagliato ma diciamo che è inutile immagazzinare quella variabile nella sessione, poichè basta estrarla dal db.

Per far visualizzare dopo gli annunci devi estrarre tutti i dati dal db e stamparli con un ciclo while,.

Io non uso mysqli quindi non ti posso dare il codice....

Però uso PDO =) e quindi provo a fartelo capire con un esempio:

PHP:
$q= "SELECT * FROM Nome_tbl ORDER BY ID DESC LIMIT 0,20";
$select = $pdo->prepare($q);
$select->execute();
$select->setFetchMode(PDO::FETCH_ASSOC);
while($row = $select->fetch){
echo '<h1>'.$row['titolo'].'</h1>';
}

dove limit 0,20 mi prende solamente gli ultimi 20 risultati.

Fammi sapere se non mi sono spiegato bene
 
Ciao ancora salvo salvi :) !

Avrai capito che sono ancora all'inizio :) .. però mi sto dando davvero tanto da fare per cercare di capire al meglio tutto ciò che mi potrebbe essere utile !!

Peccato questa differenza.. tu usi il PDO ed io utilizzo il mysqli.. non sono molti simili però cercherò quanto prima di capire al meglio il tuo esempio.

Volevo una conferma da uno molto più esperto di me..
- Le sessioni quindi se ho ben capito .. possiamo usarle per memorizzate temporaneamente dei dati, come ad esempio dati login, per poi distruggerle quando ci si disconnette con l'apposito comando.

-Mentre per pubblicare, per un tempo indeterminato, dei dati che tramite un form sono stati inseriti in un DB...possiamo farlo semplicemente interrogando il DB.

E' corretto ? :)

Ti ringrazio moltissimo,
Andrea
 
Ciao salvo salvi :) ..sono ancora io !

Allora penso di aver "risolto" così:

PHP:
$q=mysqli_query($conn,"SELECT * FROM offerte_lavoro ORDER BY ID DESC") or die (mysqli_error());

while ($row = mysqli_fetch_assoc($q)) {
echo $row['titolo'];
}

ma solo in parte..
poiché mi stampa tutto in maniera corretta.. ma una volta che rifaccio l'operazione oppure ricarico la pagina .. tutto mi scompare ! .. come se niente fosse stato pubblicato/stampato a video !


Ti ringrazio tantissimo,
Andrea
 
posta tutta la pagina

Ciao :)

Ecco qui tutto il codice:

PHP:
<?php

include "config.php";

if(isset($_POST['submit']))
{

if ( (!isset($_POST['titolo'])) || ($_POST['titolo'] == '' ))
{
echo 'Hai dimenticato di inserire il titolo.';
}
elseif (!preg_match("/^[A-z]+$/", $_POST['titolo']))
{
echo "Il titolo deve essere composto da sole lettere.";
} else {

//recupero i dati dal form
$titolo = $_POST['titolo'];

if (mysqli_query ($conn, "INSERT INTO Nome_tb (titolo) VALUES ('$titolo')") or die (mysqli_error ($conn)))
{

$q=mysqli_query($conn,"SELECT * FROM Nome_tb ORDER BY ID DESC") or die (mysqli_error());

while ($row = mysqli_fetch_assoc($q)) {
echo $row['titolo'].'<br/>';
}

   } 
  }
 }
?>

Ti ringrazio,
Andrea
 
PHP:
if (mysqli_query ($conn, "INSERT INTO Nome_tb (titolo) VALUES ('$titolo')") or die (mysqli_error ($conn))) 
{ 

$q=mysqli_query($conn,"SELECT * FROM Nome_tb ORDER BY ID DESC") or die (mysqli_error()); 

while ($row = mysqli_fetch_assoc($q)) { 
echo $row['titolo'].'<br/>'; 
} 

   }

Lo sbaglio è qui tu fai vedere i titoli sono se inserisci dei dati nel db,
cè un po di confusione... Tu vuoi far vedere i risultati in quale pagina?
ti consiglio di fare cosi
Pagina recupero form
PHP:
<?php 

include "config.php"; 

if(isset($_POST['submit'])) 
{ 

if ( (!isset($_POST['titolo'])) || ($_POST['titolo'] == '' )) 
{ 
echo 'Hai dimenticato di inserire il titolo.'; 
exit();
} 
elseif (!preg_match("/^[A-z]+$/", $_POST['titolo'])) 
{ 
echo "Il titolo deve essere composto da sole lettere."; 
exit();
else{
//recupero i dati dal form 
$titolo = $_POST['titolo']; 
if (mysqli_query ($conn, "INSERT INTO Nome_tb (titolo) VALUES ('$titolo')") or die (mysqli_error ($conn))) 
}

}//if

pagina per far visulaizzare i titoli:
PHP:
$q=mysqli_query($conn,"SELECT * FROM Nome_tb ORDER BY ID DESC") or die (mysqli_error()); 

while ($row = mysqli_fetch_assoc($q)) { 
echo $row['titolo'].'<br/>'; 
}
 
Ciao salvo salvi,

Ecco dove sbagliavo ! ...mi ero fissato che dovevo creare una sola pagina PHP .. quando invece creandone due .. avrei risolto tutto :) !
Per qualsiasi problema non esiterò a riscrivere su questo forum :D !

Grazie davvero :) !
Andrea
 

Discussioni simili