Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Query Cercare un valore in più campi

    Ciao a tutti, sono nuovo!
    Lavoro in una tv e ho sentito la necessità di creare un database di archiviazione dove venissero inseriti tutti i riferimenti ai servizi girati e mandati in onda giorno per giorno.
    Tutto questo serve per andare a cercare eventuali interviste o immagini particolari di archivio.
    Ho rispolverato dalle mie sinapsi vecchi ricordi di php.......... un macello, comunque scopiazzando e aggiustando quà e là ho ottenuto un risultato soddisfacente.
    Il nuovo problema è il seguente.
    il DB mysql ha 1 sola tabella con un 15ina di campi ( ci sono voci come. l'operatore che ha eseguito le riprese, la data , il numero del nastro, nome intervistato ed altri).
    Ho inserito 5 campi che riguardano gli intervistati.
    Nel form di ricerca inserisco un testo in un campo text e tramite un menù a tendina scelgo in che campo della tabella cercare tale testo!
    Quando cerco il nome di un intervistato posso vedere solamente quel nome in 1 campo, io vorrei cercare quel nome in tutti i campi intervistato!
    Es:. campi del DB ( ovviamente salto tutti gli altri campi data, id, ecc..)
    1---intervista
    2---intervista1
    3---intervista2
    4---intervista3
    5---intervista4

    Io vorrei che quando scelgo intervista dal menù a tendina mi cerchi il dato in tutti questi campi.........
    Vi posto lo script ...
    i campi di ricerca sono 4 , 2 campo text e 2 menu tendina, li ho messi per stringere un pò le ricerche , es:. cerca "SIMONE" fra gli 'OPERATORI' nel "2011" 'DATA'.


    [PHP]
    <?
    //controlo che se il 2° modulo del form è vuoto prenda gli stessi valori del primo, // in modo da non doverli necessariamente compilare tutti e due
    if($cerca1=="zz" and $dato1=="")
    {$cerca1=$cerca and $dato1=$dato;}
    else {$cerca1=$_POST['cerca1'] and $dato1=$_POST['dato1'];}
    $cerca=$_POST['cerca'];
    $dato=$_POST['dato'];
    if($dato=="")
    {echo "<font color=\"red\"><h3>Se scrivi un testo da cercare è meglio!
    </h3></font>
    ";}
    if($cerca=="zz")
    {echo "<font color=\"red\"><h3>Pirlone!
    Non hai inserito la categoria</h3>
    </font>
    ";}
    // richiamo il file di configurazione require 'config.php';
    // richiamo connessione a MySQL require 'connect.php';
    echo "<table width=\"100%\">"; echo "<tr>";
    echo "<form name=cerca action='' method=post>";
    echo "<td >Dato da cercare :<input type=\"text\" name=\"dato\">";
    echo "in <select size=1 name=\"cerca\">
    <option value=\"zz\" >seleziona</option>
    <option value=\"reporter\">reporter</option>
    <option value=\"n\">nastro</option>
    <option value=\"argomento\">argomento</option>
    <option value=\"operatore\">operatore</option>
    <option value=\"redazione\">redazione</option>
    <option value=\"intervista\">intervistato</option>
    <option value=\"data \">data</option>
    </select> ";

    echo "
    Dato da cercare :<input type=\"text\" name=\"dato1\">";
    echo "in <select size=1 name=\"cerca1\">
    <option value=\"zz\" >seleziona</option>
    <option value=\"reporter\">reporter</option>
    <option value=\"n\">nastro</option>
    <option value=\"argomento\">argomento</option>
    <option value=\"operatore\">operatore</option>
    <option value=\"redazione\">redazione</option>
    <option value=\"intervista\">intervistato</option>
    <option value=\"data \">data</option>
    </select> ";
    echo "<tr><td><input type=\"submit\" value=\"Invia\"name= \"Antenna3\">";
    echo "<input type=\"reset\" value=\"RESET\" name=\"Antenna3\"></FORM></td></tr></TABLE>";
    //provo ad inserire un altro pulsante per visualizzare l'ultimo record inserito
    //echo "<input type=\"button\" value=\"Ultimo servizio\" onclick=\"javascript:location.href='query_ultimo.p hp'\"></FORM></td></tr></TABLE>";
    //SELECT id FROM nometabella ORDER BY id DESC LIMIT 0,1
    if($cerca!="zz" and $dato!="")
    { $cerca=mysql_query("Select * from antenna3 where $cerca like '%$dato%'AND $cerca1 LIKE '%$dato1%'ORDER BY data DESC");
    echo "
    I risultati ottenuti:

    ";
    while ($data = mysql_fetch_object($cerca))
    {
    $id = stripslashes($data->id);
    $time = stripslashes($data->data);
    $redazione = stripslashes($data->redazione);
    $operatore = stripslashes($data->operatore);
    $reporter = stripslashes($data->reporter);
    $nastro = stripslashes($data->nastro);
    $n = stripslashes($data->n);
    $na = stripslashes($data->na);
    $trak = stripslashes($data->trak);
    $localita = stripslashes($data->localita);
    $luogo = stripslashes($data->luogo);
    $argomento = stripslashes($data->argomento);
    $intervista= stripslashes($data->intervista);
    $inte = stripslashes($data->inte);
    $inter = stripslashes($data->inter);
    $interv = stripslashes($data->interv);
    $intervi = stripslashes($data->intervi);
    $intervis = stripslashes($data->intervis);
    $ore = stripslashes($data->ore);
    $minuti = stripslashes($data->minuti);
    $secondi = stripslashes($data->secondi);
    $frame = stripslashes($data->frame);
    $tg = stripslashes($data->tg);
    $edizione = stripslashes($data->edizione);
    if($id!=""){ echo"id : <font color=blue>$id</font>";}
    if($time!="") { echo"
    Data : <font color=blue>$time</font>";} if($redazione!="") { echo"
    redazione: <font color=blue>$redazione</font>";} if($argomento!="") { echo"
    argomento: <font color=blue>$argomento</font>";} if($intervista!="") { echo"
    intervista: <font color=blue>$intervista</font>";} if($inte!="") { echo"
    intervista1: <font color=blue>$inte</font>";} if($inter!="") { echo"
    intervista2: <font color=blue>$inter</font>";} if($interv!="") { echo"
    intervista3: <font color=blue>$interv</font>";} if($intervi!="") { echo"
    intervista4: <font color=blue>$intervi</font>";} if($intervis!="") { echo"
    intervista5: <font color=blue>$intervis</font>";} if($operatore!="") { echo"
    operatore: <font color=blue>$operatore</font>";} if($reporter!="") { echo"
    reporter: <font color=blue>$reporter</font>";} if($nastro!="") { echo"
    nastro tipo: <font color=orange>$nastro</font>";} if($n!="") { echo"numero: <font color=blue>$n</font>";} if($na!="")
    { echo"/ <font color=blue>$na</font>";} if($trak!="")
    { echo"traccia: <font color=blue>$trak</font>";} if($tg!="")
    { echo"
    edizione TG del: <font color=blue>$tg</font>";}
    if($edizione!="") { echo"/ <font color=blue>$edizione</font> ";}
    if($ore!="") { echo"
    Time code: [b]<font color=blue

  2. #2
    Non ho letto tutto il codice ma da quel poco ho visto il database, articolato su una sola tabella, è costruito male e quindi ti crea problemi.

    MySql è un database relazionale e, quindi, per essere costruito bene occorrono fare le relazioni.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  3. #3
    Vabbè, non mi hai aiutato poi molto!! hehehehe
    cosa intendi dire?
    che è una situazione irrisolvibile?
    che si potrebbe fare meglio ?
    Il Db era già fatto così, prima c'era uno script che non funzionava, io così per gioco ho rispolverato vecchie mie conoscenze ( molto scarse e molto vecchie ) per fare una cosina in qualche modo utile,
    chiaramente se mi fossi rivolto ad un programmatore veterano e professionista avrei ottenuto un super programma....................!
    Mi piacerebbe , per divertimento , risolvermi questa cosa da solo.
    Ho già consultato manuali e forum, ma non ho trovato situazioni di questo genere.

  4. #4
    Ok cercherò di essere più esplicito e chiaro.

    Ponaimo di avere un scenario tipo.
    Ogni "servizio":
    - può essere girato da uno o più "giornalisti";
    - girato da uno o più "operatori";
    - parlere di uno o più "argomenti";
    - coinvolgere uno o più "intervistati".

    In questo caso avremo un database con 5 tabelle di base:
    - "servizi" con campi: id, titolo servizio, data del servizio, varie ed eventuali;
    - "giornalisti" con campi: id, nome, cognome, sesso, telefono, email, etc etc;
    - "operatori" con campi: id, nome, cognome, sesso, telefono, email, etc etc;
    - "argomenti" con campi: id, argomento;
    - "intervistati" con campi: id, nome, cognome, sesso, telefono, email, etc etc;

    A questo punto avrai le tabelle per gestire le relazioni:
    - servizi_giornalisti: id, id_servizio, id_giornalista;
    etc etc per le altre relazioni...

    Un database così articolato sarà perfettamente manutenibile e ti consentirà di fare le query di ricerca in modo molto più semplice e corretto.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  5. #5
    diciamo che a me avere tutte quelle informazioni non interessa,
    lo scopo di questo archivio è quello di scoprire principalmente in che nastro si trovano determinate immagini ( che vengono inserite in argomento ), il telefono, sesso o altro dei giornalisti e operatori non è una informazione rilevante.

    un esempio pratico potrebbe essere :

    pippo il cameraman della redazione1, il 7 maggio 2011 fà un servizio sulla mela cotogna con il giornalista topolino,intervistando tizio caio e sempronio ,utilizzando il nastro 110/11.

    operatore -----> Pippo
    data -----> 07/05/2011
    redazione -----> 1
    argomento -----> mela , montagna , ecc.(su argomento descrivo il più possibile
    la tipologia di immagini realizzate)
    intervista 1-----> Tizio
    intervista 2-----> caio
    intervista 3-----> Sempronio
    giornalista -----> Topolino
    nastro -----> 110/11

    Questa cosa mi serve principalmente per andare a cercare eventuali immagini di repertorio,
    ad esempio mi servono immagini di montagna o di mela ,oppure le immagini di uno degli intervistati. e in ogni caso ( salvo rari casi) io devo trovare su che nastro stanno tali immagini.

    il DB è su 1 sola tabella con 15 campi, ci sono circa 5000 record.
    secondo te come sarebbe meglio dividerlo questo db? e soprattutto è possibile , una volta diviso, mettere tutti i record al loro posto giusto nelle nuove tabelle ( basterebbe recuperare i dati dal vecchio DB e reindirizzarli nei nuovi campi delle nuove tabelle con uno script? )

    Grazie per l'aiuto fino ad ora.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.