www.dedoshop.com
Pagina 1 di 3 123 UltimaUltima
Risultati da 1 a 20 di 58

Discussione: Aiuto Database Sql

  1. #1
    Regular Member
    Data Registrazione
    Mar 2012
    Messaggi
    281

    Aiuto Database Sql

    Ciao a tutti avrei una domanda da porvi, ho da poco creato un sito che tratta perlopiù di materiale sclastico però mi trovo ad avere un grosso quesito, nelle pagine dedite agli appunti delle varie materie ci ho messo una barra della ricerca, la mia domanda è come faccio ad impostare questa barra affinchè cerchi i contenuti in un database..? es: utente 1 cerca Pippo e la barra lo reindirizza ad una pagina contenente tutti gli appunti su Pippo..

    grazie in anticipo..

  2. #2
    Regular Member
    Data Registrazione
    Jul 2011
    Località
    Fi
    Messaggi
    287
    devi fare un codice in php, che fa la richiesta all'sql.. però i dati che devi trovare.. ci sono già nell'sql?

    in pratica, dai un nome alla barra di ricerca tipo "name='ricerca'" nel form, metti la destinazione al file ricerca.php

    nel file ricerca php, non devi fare altro che fare una richiesta tipo "SELECT * FROM tabella WHERE colonna=$_POST[ricerca]"

    tabella e colonna.. potrebbero essere tipo

    database
    e
    chiave

    sarà pieno di errori di sintassi.. ma viene una roba simile
    Ultima modifica di cbr900cc; 26-06-12 alle 08: 32

  3. #3
    Regular Member
    Data Registrazione
    Mar 2012
    Messaggi
    281
    ok..quindi per avere il tutto funzionale..come devo strutturare il mio dtabase sql..esso è un database di appunti di storia, e per il momento non ho materiale da metterci poichè non avendo ancora terminato il sito non aveva senso cominciare a scrivere delgi appunti, supponiamo ora che io faccia un database senza informazioni e che con uno script leghi esso alla barra della ricerca in futuro quando avro materiale come posso inserirlo da phpMyadmin oppure devo rifare il tutto in locale e poi trasferirlo sul sito web con conseguente riscrittura dello script in php..? 2) una volta che ho il materiale, come faccio a inserirlo nel database..? 3) Quando nella form l'utente scrivera, come nell'esempio di prima, pippo la barra lo reindirizzerà ad una pagina contenente tutti gli appunti su pippo...cioè io devo fare solo creare il database e poi la pagina in html dove sono contenuti tutti gli appunti su pippo si creerà da sola..?

    grazie per le risposte..

  4. #4
    Regular Member
    Data Registrazione
    Jul 2011
    Località
    Fi
    Messaggi
    287
    hai 2 opzioni, o schiaffi tutto dal phpmyadmin, o ti fai una paginina che compili, per aggiungere i dati al database....
    per la tabella, fai una roba simile
    nome tabella: tabella
    colonne : ID TITOLO TESTO

    una cosa simile, quindi hai 3 colonne, quindi devi dire all'sql quando cerchi qualcosa, che deve cercarla dentro una di quelle colonne, e con un ciclo while e il mysql_fetch_array, scarichi tutti i dati che l'sql ti restituisce, ogni ciclo, una risposta.. fino a che non ha trovato più nulla...

    ma php, lo conosci? altrimenti è un casino...

    la pagina html dei risultati, te la crea il php!

  5. #5
    Regular Member
    Data Registrazione
    Mar 2012
    Messaggi
    281
    ok..il php lo conosco è con l'sql che diciamo sto familiarizzando..quindi per creare database non è sufficiente immagino access...e poi trasferisco tutto online..? secondo io ho compreso dai vari tutorial che in un database si inseriscono delle informazioni..ma le mie informazioni sono dei file..cioè l'utente finale dovrà vedere come risultato della sua ricerca finale una pagina con una prima serie di appunti in formato .doc .txt che può scaricare, un'altra serie di appunti e via così...come una specie di lista...

  6. #6
    Master member L'avatar di TheLinuxMafia
    Data Registrazione
    Jun 2012
    Messaggi
    2,950
    Allora ci provo
    prima cosa che database usi: Mysql, postgres .....
    Crea un database, chiamalo appunti.
    In questo database crei una tabella storia, il codice per creare la tabella è questo se usi mysql, ma dovrebbe andare anche per altri DB.

    CREATE TABLE IF NOT EXISTS `storia` (
    `id` varchar(250) NOT NULL,
    `titolo` varchar(250) NOT NULL,
    `testo` varchar(250) NOT NULL,
    KEY `id` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

    Così hai creato una tabella con 3 campi
    ID = id univoco per rintracciare sempre quel record.
    titolo = il titolo dell'appunto.
    testo = il testo dell'appunto.

    Con i campi creati puoi inserire testo fino a 250 caratteri altrimenti devi cambiare tipologia ma per iniziare va bene.

    crea una pagina con i parametri di connessione al db:

    <?php

    error_reporting(E_ALL);

    $_CONFIG['host'] = "localhost";
    $_CONFIG['user'] = "utentedb";
    $_CONFIG['pass'] = "passworddb";
    $_CONFIG['dbname'] = "nomedb";

    $conn = mysql_connect($_CONFIG['host'], $_CONFIG['user'], $_CONFIG['pass']) or die('Impossibile stabilire una connessione');
    mysql_select_db($_CONFIG['dbname']);
    ?>

    salva e chiamalo config.php

    per la ricerca puoi creare un form semplice:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ricerca Appunti</title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />

    </head>

    <body>
    <form method="post" action="sql.php">
    <table width="900px" class="table" cellpadding="3" cellspacing="3" align="center">
    <tr>
    <td>Cerca Titolo:</td>
    <td><input type="text name="titolo" id="titolo" /></td>
    </tr>
    <tr>
    <td><input type="submit" value="Avanti" /></td>
    </tr>
    </table>
    </form>
    </body>
    </html>


    Fatto questo crea una pagina e chiamala sql.php



    <?php
    include_once("config.php");

    $query_appunti = "SELECT * FROM appunti where titolo LIKE %'". $_REQUEST['id'] ."'% ";
    $appunti = mysql_query($query_appunti, $conn) or die(mysql_error());
    $row_appunti = mysql_fetch_assoc($appunti);
    $totalRows_appunti = mysql_num_rows($appunti);


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ricerca Appunti</title>
    <link href="css/style.css" rel="stylesheet" type="text/css" />

    </head>

    <body>
    <table width="900px" class="table" cellpadding="3" cellspacing="3" align="center">
    <tr>
    <td>Titolo</td>
    <td>Testo</td>
    </tr>
    <?php do { ?>
    <tr>
    <td><?php echo $row_appunti['titolo']; ?></td>
    <td><?php echo $row_appunti['testo']; ?></td>
    </tr>
    <?php } while ($row_appunti= mysql_fetch_assoc($appunti)); ?>
    </table>
    </body>
    </html>


    Prova un po e dimmi dove hai problemi.
    Ultima modifica di TheLinuxMafia; 26-06-12 alle 09: 49

  7. #7
    Regular Member
    Data Registrazione
    Mar 2012
    Messaggi
    281
    Prima di tutto volevo ringraziarti perchè mi hai chiarito le idee in modo più che eccelente..seconda cosa io ho creato una barra della ricerca il codire relativo alla barra della ricerca si può integrare anche con la mia..è allegata al messaggio...
    File Allegati File Allegati
    Ultima modifica di crash212; 26-06-12 alle 10: 20

  8. #8
    Master member L'avatar di TheLinuxMafia
    Data Registrazione
    Jun 2012
    Messaggi
    2,950
    E' un codice preso online o lo hai fatto tu ?
    Ti spiego il perchè di questa domanda.
    Spesso i codici presi un po in giro, sono perfetti ed anche abbastanza avanzati con un po di java ed ajax, ma se non capisci bene il codice come è fatto e come funziona, ci perdi mesi per adattarlo alle tue esigenze.
    Io di solito per ottenere un risultato soddisfacente creo comunque un qualcosa di funzionante per poi passare ad "affinarlo" magari inserendo un po di javascript/ajax.
    Quello che ti ho scritto su (tra l'altro a volo ed a mente quindi da testare) è un codice minimale per fare quello che ti serve.
    In seguito potresti integrare un menù a tendina dove poter scegliere direttamente il titolo degli appunti da consultare e visualizzarlo nella stessa pagina senza ricaricarla, però secondo il mio parere è meglio che parti da un prodotto funzionante e semplice da capire.

  9. #9
    Regular Member
    Data Registrazione
    Mar 2012
    Messaggi
    281
    Diciamo che lo la barra dell ricerca lo presa e poi ho modificato il file.css per renderlo simile alla barra della apple se mi dai un email possiamo continuare a parlare li poichè mi carica a fatica il forum e magari visto che sei più competente volevo chiederti se volevi far parte del progetto poichè ora come ora sto cercando un po di gente..se ti va se no continuiamo qui..non c'è problema..

  10. #10
    Master member L'avatar di TheLinuxMafia
    Data Registrazione
    Jun 2012
    Messaggi
    2,950
    Possiamo tranquillamente continuare qui, anche se l'argomento non è strettamente inerente al forum, magari a qualcuno interessa e può prendere spunto anche da noi.

  11. #11
    Regular Member
    Data Registrazione
    Mar 2012
    Messaggi
    281
    Ok allora..tornando al discorso di prima si può integrare il codice in quella barra della ricerca...?

  12. #12
    Master member L'avatar di TheLinuxMafia
    Data Registrazione
    Jun 2012
    Messaggi
    2,950
    Si quello è solo uno stile, ma poi il risultato della query dove lo vuoi visualizzare ?

  13. #13
    Master member L'avatar di TheLinuxMafia
    Data Registrazione
    Jun 2012
    Messaggi
    2,950
    crea un file style.css e scrivi dentro questo




    body {
    background:#f8f8f8;
    }

    #search {

    }

    #search input[type="text"] {
    background: url(search-white.png) no-repeat 10px 6px #fcfcfc;
    border: 1px solid #d1d1d1;
    font: bold 12px Arial,Helvetica,Sans-serif;
    color: #bebebe;
    width: 150px;
    padding: 6px 15px 6px 35px;
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    border-radius: 20px;
    text-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset;
    -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) inset;
    -webkit-transition: all 0.7s ease 0s;
    -moz-transition: all 0.7s ease 0s;
    -o-transition: all 0.7s ease 0s;
    transition: all 0.7s ease 0s;
    }

    #search input[type="text"]:focus {
    width: 200px;
    }




    nella root dove metti lo script inserisci le due immagini che trovi nell'archivio.

    Il form della ricerca deve essere così

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ricerca Appunti</title>
    <link href="style.css" rel="stylesheet" type="text/css" />

    </head>

    <body>
    <form method="post" action="sql.php">
    <table width="900px" class="table" cellpadding="3" cellspacing="3" align="center">
    <tr>
    <td>Cerca Titolo:</td>
    <td><input type="text name="titolo" id="search" /></td>
    </tr>
    <tr>
    <td><input type="submit" value="Avanti" /></td>
    </tr>
    </table>
    </form>
    </body>
    </html>

  14. #14
    Regular Member
    Data Registrazione
    Mar 2012
    Messaggi
    281
    Grazie...veramente mi hai chiarito molto le cose...quindi diciamo che se io volessi fare la stessa cosa per un altra sezione tipo appunti di italiano.. creo un database con mysql e poi modifico le informazioni in config.php con le informazioni dell'altro database..?

  15. #15
    Master member L'avatar di TheLinuxMafia
    Data Registrazione
    Jun 2012
    Messaggi
    2,950
    Usa questa come pagina di ricerca

    <html>
    <head>
    <style>

    body {
    background:#555;
    }

    #search {

    }

    #search input[type="text"] {
    background: url(search-dark.png) no-repeat 10px 6px #444;
    border: 0 none;
    font: bold 12px Arial,Helvetica,Sans-serif;
    color: #777;
    width: 150px;
    padding: 6px 15px 6px 35px;
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    border-radius: 20px;
    text-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
    -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 3px rgba(0, 0, 0, 0.2) inset;
    -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 3px rgba(0, 0, 0, 0.2) inset;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 3px rgba(0, 0, 0, 0.2) inset;
    -webkit-transition: all 0.7s ease 0s;
    -moz-transition: all 0.7s ease 0s;
    -o-transition: all 0.7s ease 0s;
    transition: all 0.7s ease 0s;
    }

    #search input[type="text"]:focus {
    width: 200px;
    }

    </style>
    </head>

    <body>
    <form method="post" action="sql.php" id="search">
    <input name="q" type="text" size="40" placeholder="Search..." />
    <input type="submit" value="Avanti" />
    </form>
    </body>
    </html>

  16. #16
    Master member L'avatar di TheLinuxMafia
    Data Registrazione
    Jun 2012
    Messaggi
    2,950
    [QUOTE=crash212;63095]Grazie...veramente mi hai chiarito molto le cose...quindi diciamo che se io volessi fare la stessa cosa per un altra sezione tipo appunti di italiano.. creo un database con mysql e poi modifico le informazioni in config.php con le informazioni dell'altro database..?[/QUOTE]

    No il database resta 1 solo, devi inserire le tabelle all'interno, crei una tabella italiano

    CREATE TABLE IF NOT EXISTS `italiano` (
    `id` varchar(250) NOT NULL,
    `titolo` varchar(250) NOT NULL,
    `testo` varchar(250) NOT NULL,
    KEY `id` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;


    Con questo codice in pratica

    CREATE TABLE IF NOT EXISTS `italiano` : Crea una tabella nel database selezionato che si chiama italiano

    `id` varchar(250) NOT NULL, : nella tabella italiano crea il campo id che può essere di massimo 250 caratteri e non può essere nulla cioè vuoto
    `titolo` varchar(250) NOT NULL, : nella tabella italiano crea il campo titolo che può essere di massimo 250 caratteri e non può essere nulla cioè vuoto
    `testo` varchar(250) NOT NULL, : nella tabella italiano crea il campo testo che può essere di massimo 250 caratteri e non può essere nulla cioè vuoto

    KEY `id` (`id`) : Assegna al campo id la chiave primaria.

  17. #17
    Regular Member
    Data Registrazione
    Mar 2012
    Messaggi
    281
    Bhe allora è veramente comodo credevo si dovessero creare più tabelle perciò lo script in php riconosce tramite le key words inserite all'interno della barra a che tabella attingere e di conseguenza ridà le informazioni desiderate..? Ho capito bene..?

  18. #18
    Master member L'avatar di TheLinuxMafia
    Data Registrazione
    Jun 2012
    Messaggi
    2,950
    Diciamo di si, non devi fare confusione fra Database che è il contenitore generale, le tabelle ed i record, per farti capire:

    Database appunti
    ____|________________
    | | |
    storia italiano matematica
    _______|______ |
    | | | |
    id titolo testo|
    ______|________
    | | |
    id titolo testo


    Spero di essermi spiegato !

    Logicamente la stringa di ricerca cambia, nel file config tu fai la connessione al server database e selezioni il database che ti interessa.
    Nella stringa di ricerca tu selezioni la tabella che ti interessa:

    Select * from storia : seleziona tutti i record dalla tabella storia e ti restituisce un array con i risultati

    Select * from italiano : ti seleziona tutti i record dalla tabella italiano

    Select * from storia where id = xxxx : ti restituisce come risultato tutti i record che hanno come id xxxx

  19. #19
    Regular Member
    Data Registrazione
    Mar 2012
    Messaggi
    281
    Giusto per non fare vaccate te lo chiedo anche se potra sembrare ovvio nello script config.php l'host,user, pass, db, li vanno inseriti i dati del mio database..?

  20. #20
    Master member L'avatar di TheLinuxMafia
    Data Registrazione
    Jun 2012
    Messaggi
    2,950
    Si vanno inseriti i tuoi dati.

Pagina 1 di 3 123 UltimaUltima

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  

realizzazione siti internet ed e-commerce mugello