[Progetto] [PHP]ottenere dato e rielaborarlo in un database

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
pandaubuntu
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 451
Iscrizione: mercoledì 6 luglio 2011, 8:12

[Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da pandaubuntu »

io per il momento conosco solo il c++, il PHP lo conosco poco (sintassi, creazione di una variabile insomma le basi).
in pratica dovrei far si che un client inserisca un valore in una textbox e con il bottone mi cerchi nel database.
uso altervista, che ha phpmyadmin.
solo che non ho molto tempo per sudiarlo al momento.
NON MI INTERESSA LA PAPPA PRONTA ma la spiegazione (ma pappa + spiegazione và benissimo)
Avatar utente
Sorriso.
Prode Principiante
Messaggi: 29
Iscrizione: martedì 30 agosto 2011, 20:56

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da Sorriso. »

pandaubuntu ha scritto: io per il momento conosco solo il c++, il PHP lo conosco poco (sintassi, creazione di una variabile insomma le basi).
in pratica dovrei far si che un client inserisca un valore in una textbox e con il bottone mi cerchi nel database.
uso altervista, che ha phpmyadmin.
solo che non ho molto tempo per sudiarlo al momento.
NON MI INTERESSA LA PAPPA PRONTA ma la spiegazione (ma pappa + spiegazione và benissimo)
Spiega bene cosa vuoi fare con i dati nel database.
Avatar utente
pandaubuntu
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 451
Iscrizione: mercoledì 6 luglio 2011, 8:12

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da pandaubuntu »

in pratica dovrei creare una sottospece di libreria e ogni libro deve avere i valori di
-Lingua
-Valutazione
-URL di download
-Titolo
-Autore

Solo quello che non so è come collegarmi al mio database phpmyadmin, mostrarne i risultati come variabile e ottenere i dati dalt client e usare ciò per interrogare il database.
(cioé più o meno tutto)
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da Zoff »

Ma a te serve il programma o vuoi imparare a programmare con PHP?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
Sorriso.
Prode Principiante
Messaggi: 29
Iscrizione: martedì 30 agosto 2011, 20:56

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da Sorriso. »

Zoff ha scritto: Ma a te serve il programma o vuoi imparare a programmare con PHP?
Penso il programma  (yes).
pandaubuntu ha scritto: in pratica dovrei creare una sottospece di libreria e ogni libro deve avere i valori di
-Lingua
-Valutazione
-URL di download
-Titolo
-Autore

Solo quello che non so è come collegarmi al mio database phpmyadmin, mostrarne i risultati come variabile e ottenere i dati dalt client e usare ciò per interrogare il database.
(cioé più o meno tutto)
Allora ciò che devi fare è relativamente semplice. Innanzi tutto hai bisogno di creare la tabella nel database, di seguito il codice ( SQL ) per crearla:

Codice: Seleziona tutto

CREATE TABLE `book` (
  `book_id` int(11) NOT NULL auto_increment,
  `book_autore` varchar(40) NOT NULL default '',
  `book_titolo` varchar(100) NOT NULL default '',
  `book_descrizione` text NOT NULL,
  `book_lingua` varchar(40) NOT NULL default ", 
  `book_val` varchar(40) NOT NULL default ",
  `book_data` date NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`book_id`)
) ;
Te lo spiego brevemente.
Noi con il seguente codice andiamo a creare una tabella ( nel database specificato ) di nome book. Con le seguenti colonne: book_id, book_autore etc. etc.
Ci sono due parti particolare nel nostro codice SQL:
1) dove andiamo a settare la colonna book_data, come vedi l'attributo default è messo a
0000-00-00 00:00:00 e sta per: anno-mese-giorno ora-minuto-secondo.
2) fai attenzione alla penultima riga del nostro codice, viene utilizzata la funzione PRIMARY KEY(). Questa serve a indicare al nostro "compilatore" quale delle seguenti "chiavi" vada per prima.

Fatto questo, crea un pagina chiamata db.php e di seguito il codice della pagina:

Codice: Seleziona tutto

<?
$dbhost = "localhost";
$dbname = "my_blog";
$dbuser = "username";
$dbpass = "password";
$connect = @mysql_connect($dbhost, $dbuser, $dbpass) or die (mysql_error());
@mysql_select_db($dbname) or die (mysql_error());
?>
Bé qui c'è ben poco da spiegare. Noi andiamo semplicemente a inserire le informazioni che ci serviranno in seguito per connetterci al nostro db.

Now, crea una pagina "insert-book.php" e di seguito il suo codice:

Codice: Seleziona tutto

<html>
<head>
<title>Add Book</title>
</head>
<body>
<h1>Inserisci un libro</h1>
<?

//includiamo il file di configurazione
include "db.php";

//valorizziamo le variabili con i dati ricevuti dal form
if(isset($_POST['submit'])){
  if(isset($_POST['autore'])){
    $autore = addslashes($_POST['autore']);
  }
  if(isset($_POST['titolo'])){
    $titolo = addslashes($_POST['titolo']);
  }
  if(isset($_POST['descrizione'])){
    $articolo = addslashes($_POST['articolo']);
  }

  // popoliamo i campi della tabella articoli con i dati ricevuti dal form
  $sql = "INSERT INTO book (book_autore, book_titolo, book_descrizione, book_data) VALUES ('$autore', '$titolo', '$descrizione', now())";

  // se l'inserimento ha avuto successo inviamo una notifica
  if (@mysql_query($sql) or die (mysql_error())){
    echo "Articolo inserito con successo.";
  } 
}else{
  // se non sono stati inviati dati dal form mostriamo il modulo per l'inserimento
  ?>
<form action="insert_book.php" method="post">
Autore:<br>
<input name="autore" type="text" size="20"><br>
Titolo:<br>
<input name="titolo" type="text" size="30"><br>
Valutazione:<br>
<select name="val">
 <option name="ottimo" value="Ottimo" />
 <option name="buono" value="Buono"  />
 <option name="gradevole" value="Gradevole" />
 <option name="noioso" value="Noioso" />
</select>
Articolo:<br>
<textarea name="book" cols="40" rows="10"></textarea><br>
<input name="submit" type="submit" value="Invia">
</form>
  <?
}
?>
</body>
</html>
Non ci hai capito nulla, poco male ci sono io che ti spiego! Allora la nostra bella paginetta che sta facendo? In realtà per quanto strano possa sembrare. In questo momento fa poco più di tre azioni. Ovvero:
1) includi il file db.php
2) prendi le informazioni
3) mostra form
4) inserisci informazioni

Poi studiando il php capirai meglio come funziona effettivamente la pagina.

Ci siamo quasi.

Bene, adesso crea un'altra pagina "index.php" e come al solito, ecco il codice:

Codice: Seleziona tutto

<html>
<head>
<title>Il mio Blog</title>
</head>
<body>
<h1>Un blog in PHP</h1>
<?

// includiamo il file di configurazione
include "config.php";

// estraiamo i dati relativi agli articoli dalla tabella
$sql = "SELECT * FROM book ORDER BY book_data DESC";
$query = @mysql_query($sql) or die (mysql_error());

//verifichiamo che siano presenti records
if(mysql_num_rows($query) > 0){
  // se la tabella contiene records mostriamo tutti gli articoli attraverso un ciclo
  while($row = mysql_fetch_array($query)){
    $book_id = $row['book_id'];
    $autore = stripslashes($row['book_autore']);
    $titolo = stripslashes($row['book_titolo']);
    $data = $row['book_data'];
    $descrizione = stripslashes($row['book_descrizione']);
    $val = stripslashes($row['book_val']);
   

    echo "<h2>".$titolo."</h2>";
   
    echo $descrizione; 
    echo "<br><br>";
   
    // formattiamo la data nel formato europeo
    $data = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $data);

    // stampiamo una serie di informazioni
    echo  "Scritto da <b>". $autore . "</b>";
    echo  "| Articolo postato il <b>" . $data . "</b>";
    echo  "| Valutazione: <b>" .$val. "</b>";
    echo "<hr>";
  } 
}else{
  // se in tabella non ci sono records...
  echo "Nessun articolo presente.";
}
?>
</body>
</html>
Ecco, ora hai la visione del tuo libro.

Un piccolo accorgimento, se ci sono degli errori, cerca di correggerli da solo, senza postarli. Perché così facendo prenderai familiarità con i codici ( script ) e magari impari anche qualche cosa.
Spero di esserti stato di aiuto.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da Zoff »

Se lo scopo è didattico consiglio all'utente che ha aperto la discussione di non guardare il codice postato perché seppur funzionante rappresenta un cattivo esempio di programmazione web.

Se invece serve solo che funzioni allora se soddisfa le sue necessità tanto di guadagnato.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
Sorriso.
Prode Principiante
Messaggi: 29
Iscrizione: martedì 30 agosto 2011, 20:56

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da Sorriso. »

Zoff ha scritto: Se lo scopo è didattico consiglio all'utente che ha aperto la discussione di non guardare il codice postato perché seppur funzionante rappresenta un cattivo esempio di programmazione web.

Se invece serve solo che funzioni allora se soddisfa le sue necessità tanto di guadagnato.
Perché rappresenta un cattivo esempio di programmazione web?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da Zoff »

Perché mescoli computazione PHP e codice HTML e usi lo stile procedurale che è obsoleto.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
robytrevi
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 10901
Iscrizione: lunedì 10 marzo 2008, 14:12
Desktop: mate
Distribuzione: Xenial 32 bit
Località: Modena(provincia)

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da robytrevi »

Mi siedo qui buono buono ad imparare qualcosa
Ubuntu 16.04 (Mate), Arch (Gnome-shell), Fedora21(gnome-shell), Debian Jessie(openbox), Windows 7 ; Dell Inspiron 1501; AMD Turion 64x2; ATI XPress 1100 (vista come Radeon Xpress 200M)
Quando si richiede supporto postare il comando "lsb_release -ds && echo $DESKTOP_SESSION && uname -m"
Avatar utente
pandaubuntu
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 451
Iscrizione: mercoledì 6 luglio 2011, 8:12

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da pandaubuntu »

c'é un problema
1° manca l'indirizzo di download (l'ho aggiunto come varchar con set 150) ma non sò aggiungerlo in php
2° nel inser-book le scitte della valutazione non si vedono (e l'url manca)
per il resto va bene

poi secondo me ho fatto qualche errore nel inserire i dati del database perché quando ho aperto index.php mi ha dato errore (database not found

Codice: Seleziona tutto

<?
$dbhost = "http://www142.altervista.org/";
$dbname = "my_glidercity";
$dbuser = "glidercity";
$dbpass = "(te piacerebbe)";
$connect = @mysql_connect($dbhost, $dbuser, $dbpass) or die (mysql_error());
@mysql_select_db($dbname) or die (mysql_error());?>
si intende che te piacerebbe non è la password :P

io quando faccio log-in inserisco glidercity e password ....
poi c'é scritto sotto phpmyadmin my_glidercity quindi direi che è quello solo forse ho sbagliato
Zoff ha scritto: tutti e due solo che questo mi serviva un pò velocemente e già che c'éro mi sono letto la spiegazione.
intanto ho più o meno capito come si creano XD
Ma a te serve il programma o vuoi imparare a programmare con PHP?
Ultima modifica di Anonymous il domenica 11 settembre 2011, 18:40, modificato 1 volta in totale.
Avatar utente
pandaubuntu
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 451
Iscrizione: mercoledì 6 luglio 2011, 8:12

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da pandaubuntu »

allora mi sono risolto da solo il problema del log-in al db e la sua lettura.
mi manca solo una cosa.
nel modulo di aggiunta di un libro come aggiungo il campo url.
e come fare una ricerca nel database
Ultima modifica di Anonymous il domenica 11 settembre 2011, 18:59, modificato 1 volta in totale.
Avatar utente
pandaubuntu
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 451
Iscrizione: mercoledì 6 luglio 2011, 8:12

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da pandaubuntu »

up
mi serve solo come fare la ricerca nel database
AlexDiste
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2299
Iscrizione: martedì 18 agosto 2009, 9:25

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da AlexDiste »

con un opportuna query SQL di select condizionata:

SELECT campi FROM tabella WHERE condizione di ricerca. Quindi dei fare una form in html per permettere l' input dei dati il submit della form va ad una pagina php che li legge e ti genere la quey da fare, poi la esegui e mostri i risultati
Avatar utente
pandaubuntu
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 451
Iscrizione: mercoledì 6 luglio 2011, 8:12

Re: [Progetto] [PHP]ottenere dato e rielaborarlo in un database

Messaggio da pandaubuntu »

mi sono messo un pò a studiare e in parte ho migliorato (forse meglio dire adattato) il tuo script alle mie esigenze ma mi è rimasto un dubbio e una curiosità.
1° come faccio a fare una ricerca data una variabile
2° potresti spiegarmi un pò meglio la pagina dove ci sono le pagine (l'ultima che mi hai fatto)

in particolare questa parte

if(mysql_num_rows($query) > 0){
questo dice se il numero di records è maggiore di 0 esegui

 
while($row = mysql_fetch_array($query)){
questa non l'ho capita, come mai mi mostra tutti i risultatti anziché sempre lo stesso?
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti