Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - PHP problemi con l'inserimento dati in mysql
Forum - PHP - PHP problemi con l'inserimento dati in mysql

Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 21:29
Martedì, 24/11/2009
Salve ragazzi, sto creando un database che mi gestisca le scadenze degli alimenti in frigo ma come al solito incontro sempre qualche problema.
Il database funziona, inserisce gli alimenti solo che vorrei che per la categoria FRUTTA&VERDURA(voce in mysql: frvr) una visualizzazione in automatico della scadenza.

p.e. Supponiamo di voler inserire "insalata", OK inserita! Essendo che l'insalata non ha una data ben precisa di scadenza, come magari potrebbe averla il latte ecc..., vorrei che questa data di scadenza corrispondesse a 4gg dall'inserimento del prodotto nel database (es. Inserisco l'insalata il 22/11/2009 -> scadenza: 26/11/2009).
Il calcolo della data di scadenza va, solo che non riesco ad inserire questo dato nel database mysql....Dove sbaglio?Grazie.
PS. Volevo chiedere anche come si fa ad andare a capo nella stampa a video delle stringhe.
Grazie anticipatamente a tutti.

DATABASE MYSQL:

CREATE TABLE dispensa (
    -> frvr varchar(40) NOT NULL default '',
    -> al_frigo varchar(40) NOT NULL default '',
    -> al_sc varchar(40) NOT NULL default '',
    -> al_cong varchar(40) NOT NULL default '',
    -> carni_snsca varchar(40) NOT NULL default '',
    -> scadenza date NOT NULL default '0000-00-00',
    -> data_ins date NOT NULL default '0000-00-00',
    -> id int(10) unsigned NOT NULL auto_increment,
    -> PRIMARY KEY (id)
    -> );



SORGENTE PHP:

<head>
<title>Database_frigo</title>

</head>

<body>

<?php if (isset($_GET['add_al'])): //L'utente vuole aggiungere un alimento ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label>alimento: <input type="text" name="frvr" />
</label>
<input type="submit" value="Carica" />
</form>

<?php else: //Default page display

// Connettiti col server database
$dbcnx = @mysql_connect('localhost', 'root', 'admin');
if(!$dbcnx) {
  echo "Impossibile connettersi al Server";
}

// Seleziona il database scadenze
if(!@mysql_select_db('scadenze')) {
  echo "Errore nel selezionare il database!..Controllare che il database esista!";
}

//Calcolo data di scadenza
for($i = (date("d")); $i < ((date("d"))+4); $i++);
$data_scadenza = (date("$i-m-y"));
  echo "$data_scadenza";


//Se un alimento viene caricato -> aggiungilo al databse
if (isset($_POST['frvr'])) {
  $frvr = $_POST['frvr'];
  $data_scadenza = $data_scadenza['scadenza'];
  $sql = "INSERT INTO dispensa SET
          frvr='$frvr',
      data_ins=CURDATE,
      scadenza='$data_scadenza'";

if(@mysql_query($sql)) {
  echo "L'alimento < $frvr > e' stato inserito correttamente!";
} else {
  echo "WARNING. Non e' stato possibile caricare l'alimento < $frvr >.";
  }
}
?>
<br />
<br />
<?php
echo "Qui di seguito e' riportata la lista FRUTTA&VERDURA:";
  
//Richiedi le informazioni dell'alimento (frvr)
$resultfrvr = @mysql_query('SELECT frvr FROM dispensa');
$resultdata_ins = @mysql_query('SELECT data_ins FROM dispensa');
$resultscadenza = @mysql_query('SELECT scadenza FROM dispensa');
if(!$resultfrvr &&
   !$resultdata_ins &&
   !$resultscadenza) {
     echo "Errore!..Informazioni non disponibili!";
}

//Mostra l'alimento nel paragrafo
while($row  = mysql_fetch_array($resultfrvr)) {
        echo '<p>' . $row['frvr'] . '</p';
}

//Mostra la data dell'inserimento dell'alimento nel paragrafo
while($row  = mysql_fetch_array($resultdata_ins)) {
        echo '<p>' . $row['data_ins'] . '</p';
}

//Mostra la data dell'inserimento dell'alimento nel paragrafo
while($row  = mysql_fetch_array($resultscadenza)) {
        echo '<p>' . $row['scadenza'] . '</p';
}


//Questo link caricherà una nuova pagina con il form di invio delle informazioni
echo '<p><a href="' . $_SERVER['PHP_SELF'] .
     '?add_al">Nuovo alimento da caricare</a></p>';

endif;
?>

</body>

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:20
Mercoledì, 25/11/2009
la data di scadenza non và inserita nel database come la visualizzi
usando la funzione date()

nel database andrebbero inseriti solo i numeri dopo e lui che te li separa a seconda della maschera che hai impostato.

se vuoi fare una cosa molto velocemente e usare la funzione date()
allora ti consiglio di modificare il campo del database da DATE a Varchar 255
e non avresti più problemi


PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 12:43
Mercoledì, 25/11/2009
Ciao, innanzitutto grazie per avermi risposto.:)
Ho fatto come dici te a sostituire date con varchar(255) ma mi visualizza solo il primo numero. (es: data scadenza: 29-11-2009, invece di visualizzarmi la data per intero mi visualizza solo il 2). Ho controllato nel database mysql ed effettivamente mi da solo il valore 2, invece di tutta la data...Come può essere?8-|8-|8-|
Deo modificare qualcosa nel codice php?..Grazie ancora.

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 14:35
Mercoledì, 25/11/2009
Testo quotato

Postato originariamente da giocala88:

Ciao, innanzitutto grazie per avermi risposto.:)
Ho fatto come dici te a sostituire date con varchar(255) ma mi visualizza solo il primo numero. (es: data scadenza: 29-11-2009, invece di visualizzarmi la data per intero mi visualizza solo il 2). Ho controllato nel database mysql ed effettivamente mi da solo il valore 2, invece di tutta la data...Come può essere?8-|8-|8-|
Deo modificare qualcosa nel codice php?..Grazie ancora.
  



strano che ti salva un solo numero.
forse i trattini o caratteri come simboli non li salva
prova a cambiare tra varchar(255) a TexT
dovrebbe funzionarti.




PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 17:36
Mercoledì, 25/11/2009
Niente da fare...continua a salvarmi solo il primo numero...bah?!8-|8-|8-|8-|8-|
..Cosa posso fare?..sono bloccato...:d

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:02
Giovedì, 26/11/2009
se ti salva solo il primo numero nel campo Text allora e di sicuro un tuo errore di scrittura.

perchè il campo text accetta tutti i tipi di simboli e lunghezze
proprio come se fosse un file di testo.

non riesco a capire,
anche perchè la query e settata bene.

if (isset($_POST['frvr'])) {
  $frvr = $_POST['frvr'];
  $data_scadenza = $data_scadenza['scadenza'];
  $sql = "INSERT INTO dispensa SET
          frvr='$frvr',
      data_ins=CURDATE,
      scadenza='$data_scadenza'";
}

ti consiglio di guardarti ogni parte del codice.
probabilmente ci sarà qualche errore che non riesci a vedere
a volte sono quasi invisibili ai nostri occhi che crediamo siano corretti.

prova un echo "$data_scadenza"

almeno per vedere se il risultato appare.



PM Quote
Avatar
giocala88 (Normal User)
Expert


Messaggi: 243
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 12:10
Giovedì, 26/11/2009
Con
echo "$data_scadenza"
mi visualizza la data correttamente...infatti è per questo che non riesco a capire!8-|8-|
Comunque seguirò il tuo consiglio e controllerò il codice, vediamo un po' se è una questione di settaggio..
Grazie ancora e ci sentiamo per eventuali aggiornamenti.;)
Ciauz.

PM Quote