[Progetto] Riccettario in php

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

[Progetto] Riccettario in php

Messaggio da tempestaluna »

Buongiorno a tutti voi, questa mattina mi sono messa a fare un ricettario tutto mio personalizzato come voglio io ed essendo alle prime armi in questione ho riscontrato il primo problema:

- sono riuscita a collegare la mia pagina in php con il db (premetto che uso lo xamp) riesco a caricare tutti i campi di testo ma nella mia pagina in php ho inserito dei form per la ricerca ed inserimento delle immagini; come faccio per caricare queste ultime del db? c'è qualcuno che può aiutarmi?

grazie mille
Avatar utente
Devi
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1348
Iscrizione: mercoledì 25 ottobre 2006, 18:58
Contatti:

Re: [Progetto] Riccettario in php

Messaggio da Devi »

Per poterti aiutare dovresti postare la struttura della tabella perchè:
1) se hai una chiave primaria contatore allora puoi fare tramite SQL cosi:

Codice: Seleziona tutto

SELECT * FROM tabella ORDER BY id DESC LIMIT n
dove n è il numero di record che ti interessa estrarre
2) se hai un campo data vale lo stesso discorso ma con istruzione sql così:

Codice: Seleziona tutto

SELECT * FROM tabella ORDER BY campo_data DESC LIMIT n
Altro non mi viene in mente...  :-\
E pluribus, unum
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

Re: [Progetto] Riccettario in php

Messaggio da tempestaluna »

allora vediamo un po' se così posso esserti di aiuto:

nel db ho una tabella con vari campi tra cui img1 img2..... e così via la chiave primaria è impostata su nome_ricetta nella pagina in php ho il seguente codice (non sò se è questo che mi stavi chiedendo):

Codice: Seleziona tutto

<?php require_once('Connections/ricettario.php'); ?>
<?php
$sql = 'ALTER TABLE `ricetta` ADD PRIMARY KEY(`nom_ricetta`)';
$currentPage = $_SERVER["PHP_SELF"];

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "ricetta")) {
  $insertSQL = sprintf("INSERT INTO ricetta (nom_ricetta, categoria, dosi, tempo, difficolta, vino, bibita, cottura, giudizio, ingrediente_base, ingrediente1, ingrediente2, ingrediente3, ingrediente4, ingrediente5, ingrediente6, ingrediente7, ingrediente8, ingrediente9, prima_iniziare, img1, img2, preparazione2, img3, preparazione3, img4, preparazione4, img5, preparazione5, img6, preparazione6, img7, preparazione7, img8, preparazione8, img9, preparazione9, img10, preparazione10, consiglio, variante, note) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['nome'], "text"),
                       GetSQLValueString($_POST['categoria'], "text"),
                       GetSQLValueString($_POST['dosi'], "text"),
                       GetSQLValueString($_POST['tempo'], "text"),
                       GetSQLValueString($_POST['difficolta'], "text"),
                       GetSQLValueString($_POST['vino'], "text"),
                       GetSQLValueString($_POST['bibita'], "text"),
                       GetSQLValueString($_POST['cottura'], "text"),
                       GetSQLValueString($_POST['giudizio'], "text"),
                       GetSQLValueString($_POST['ingrediente_base'], "text"),
                       GetSQLValueString($_POST['ingrediente1'], "text"),
                       GetSQLValueString($_POST['ingrediente2'], "text"),
                       GetSQLValueString($_POST['ingrediente3'], "text"),
                       GetSQLValueString($_POST['ingrediente4'], "text"),
                       GetSQLValueString($_POST['ingrediente5'], "text"),
                       GetSQLValueString($_POST['ingrediente6'], "text"),
                       GetSQLValueString($_POST['ingrediente7'], "text"),
                       GetSQLValueString($_POST['ingrediente8'], "text"),
                       GetSQLValueString($_POST['ingrediente9'], "text"),
                       GetSQLValueString($_POST['prima_iniziare'], "text"),
                       GetSQLValueString($_POST['img1'], "text"),
                       GetSQLValueString($_POST['img2'], "text"),
                       GetSQLValueString($_POST['preparazione2'], "text"),
                       GetSQLValueString($_POST['img3'], "text"),
                       GetSQLValueString($_POST['preparazione3'], "text"),
                       GetSQLValueString($_POST['img4'], "text"),
                       GetSQLValueString($_POST['preparazione4'], "text"),
                       GetSQLValueString($_POST['img5'], "text"),
                       GetSQLValueString($_POST['preparazione5'], "text"),
                       GetSQLValueString($_POST['img6'], "text"),
                       GetSQLValueString($_POST['preparazione6'], "text"),
                       GetSQLValueString($_POST['img7'], "text"),
                       GetSQLValueString($_POST['preparazione7'], "text"),
                       GetSQLValueString($_POST['img8'], "text"),
                       GetSQLValueString($_POST['preparazione8'], "text"),
                       GetSQLValueString($_POST['img9'], "text"),
                       GetSQLValueString($_POST['preparazione9'], "text"),
                       GetSQLValueString($_POST['img10'], "text"),
                       GetSQLValueString($_POST['preparazione10'], "text"),
                       GetSQLValueString($_POST['consiglio'], "text"),
                       GetSQLValueString($_POST['variante'], "text"),
                       GetSQLValueString($_POST['note'], "text"));

  mysql_select_db($database_ricettario, $ricettario);
  $Result1 = mysql_query($insertSQL, $ricettario) or die(mysql_error());

  $insertGoTo = "maschera.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

$maxRows_ricetta = 1;
$pageNum_ricetta = 0;
if (isset($_GET['pageNum_ricetta'])) {
  $pageNum_ricetta = $_GET['pageNum_ricetta'];
}
$startRow_ricetta = $pageNum_ricetta * $maxRows_ricetta;

mysql_select_db($database_ricettario, $ricettario);
$query_ricetta = "SELECT * FROM ricetta ORDER BY ricetta.nom_ricetta";
$query_limit_ricetta = sprintf("%s LIMIT %d, %d", $query_ricetta, $startRow_ricetta, $maxRows_ricetta);
$ricetta = mysql_query($query_limit_ricetta, $ricettario) or die(mysql_error());
$row_ricetta = mysql_fetch_assoc($ricetta);

if (isset($_GET['totalRows_ricetta'])) {
  $totalRows_ricetta = $_GET['totalRows_ricetta'];
} else {
  $all_ricetta = mysql_query($query_ricetta);
  $totalRows_ricetta = mysql_num_rows($all_ricetta);
}
$totalPages_ricetta = ceil($totalRows_ricetta/$maxRows_ricetta)-1;

$queryString_ricetta = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_ricetta") == false && 
        stristr($param, "totalRows_ricetta") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_ricetta = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_ricetta = sprintf("&totalRows_ricetta=%d%s", $totalRows_ricetta, $queryString_ricetta);
?>
e per inserire incampi nel db ho impostato così:

Codice: Seleziona tutto

    <form action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" name="ricetta">
      <input tabindex="1" name="nome" type="text" size="40" value="<?php echo $row_ricetta['nom_ricetta']; ?>"/>
      <input tabindex="45" name="inserisci ricetta" type="submit" class="bottone" value="inserisci"/>
      <input type="hidden" name="MM_insert" value="ricetta">
    </form>
solo che non sò come impostare i moduli per inserire le imagini; io ho messo così all'interno del mio form ma non funziona come mai?:

Codice: Seleziona tutto

        <input tabindex="23" name="img1" type="file" value="<?php echo $row_ricetta['img1']; ?>"/>
spero di essere stata un po' più chiara.
Avatar utente
garak
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1647
Iscrizione: lunedì 13 giugno 2005, 13:37
Desktop: Gnome
Distribuzione: Ubuntu 24.04
Sesso: Maschile
Località: Roma
Contatti:

Re: [Progetto] Riccettario in php

Messaggio da garak »

Ma i campi delle immagini sul database sono dei blob? Immagino di sì... comunque non puoi usare $_POST per recuperare un file, devi usare $_FILES.
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

Re: [Progetto] Riccettario in php

Messaggio da tempestaluna »

garak ha scritto: Ma i campi delle immagini sul database sono dei blob? Immagino di sì... comunque non puoi usare $_POST per recuperare un file, devi usare $_FILES.
cos'è blob?
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

Re: [Progetto] Riccettario in php

Messaggio da tempestaluna »

garak ha scritto: Ma i campi delle immagini sul database sono dei blob? Immagino di sì... comunque non puoi usare $_POST per recuperare un file, devi usare $_FILES.
ho provato a modificare come hai detto tu ma non funziona mi da errore e cmq il programma non me lo prende non c'è nessuno che può aiutarmi?
Avatar utente
frest
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 533
Iscrizione: lunedì 30 giugno 2008, 22:10

Re: [Progetto] Riccettario in php

Messaggio da frest »

per salvare le immagini nel db devi specificare il giusto tipo del campo nel db, blob penso che vada più che bene, se non sbaglio memorizza fino a 1,6 MB. per estrarre le immagini e visualizzarle il discorso cambia perchè se non ricordo male bisogna intervenire sul mime...cmq per non dirti cazzate, leggi questo articolo, spiega come creare un form per l'inserimento dei files nel db e come estrarli
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

Re: [Progetto] Riccettario in php

Messaggio da tempestaluna »

frest ha scritto: per salvare le immagini nel db devi specificare il giusto tipo del campo nel db, blob penso che vada più che bene, se non sbaglio memorizza fino a 1,6 MB. per estrarre le immagini e visualizzarle il discorso cambia perchè se non ricordo male bisogna intervenire sul mime...cmq per non dirti cazzate, leggi questo articolo, spiega come creare un form per l'inserimento dei files nel db e come estrarli
ho letto l'articolo che mi hai proposto ma non ci ho capito un granchè nel db ho impostato il mime come image/png e la trasformazione del browser text/plain:link mentre nella pagina in html me lo richiama in automatico così                        GetSQLValueString($_POST['img1'], "text"),
Avatar utente
garak
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1647
Iscrizione: lunedì 13 giugno 2005, 13:37
Desktop: Gnome
Distribuzione: Ubuntu 24.04
Sesso: Maschile
Località: Roma
Contatti:

Re: [Progetto] Riccettario in php

Messaggio da garak »

tempestaluna ha scritto: ho letto l'articolo che mi hai proposto ma non ci ho capito un granchè nel db ho impostato il mime come image/png e la trasformazione del browser text/plain:link mentre nella pagina in html me lo richiama in automatico così                        GetSQLValueString($_POST['img1'], "text"),
Se non capisci l'articolo, forse dovresti fare un passo indietro e studiare un po' i linguaggi (sia php che mysql).
Ad esempio: le impostazioni che citi come fatte "nel db", in realtà sono solo impostazioni di phpmyadmin, che è una semplice interfaccia di accesso al db, non è il db stesso.
Avatar utente
menelicte
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 596
Iscrizione: lunedì 4 giugno 2007, 0:04

Re: [Progetto] Riccettario in php

Messaggio da menelicte »

Io ti suggerirei di fare 2 passi indietro e riconsiderare la gestione delle immagini.

Invece di memorizzare le immagini direttamente nel DB potresti salvarle in una cartella del server, e memorizzare nel DB soltanto il path di ogni immagine (in una tabella a parte, in cui inserisci anche il riferimento alla ricetta corrispondente).
"Tentare è il primo passo verso il fallimento" Homer J.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti