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

    motore di ricerca per db mysql


    Salve, sono un novizio della programazione php.
    Attualmente sto creando un programma di contabilita' personale semplice in cui si visualizzano i movimenti di un ipotetico conto bancario.
    Adesso vorrei creare un motore di ricerca che mi faccia vedere determinati dati contabili impostati mediante dei criteri quali la data del movimento bancario, il tipo di transazione e il metodo di pagamento.

    Volevo chiedere tra quelli proposti nel http://php.html.it/script/, quale sarebbe quello piu' consono alle mie esigenze e se c'e' qualcosa che spiega come utilizzarli.


    Lo script seguente dovrebbe far vedere cio' che vorrei ma esce questo messaggio di errore quando carico i dati:
    Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'data='3/03/2007'and transazione='24' and metodo='24'' at line 1


    <?php
    include "config.php";
    connetti();

    $select='select *';
    $from='from transazioni';
    $where='where 1';

    $data=$_POST['data'];
    if($data!=""){
    $where.="and data='$data'";
    }

    $transazione=$_POST['transazione'];
    if($transazione!=''){
    $where.="and transazione='$transazione' ";
    }

    $metodo=$_POST['metodo'];
    if($metodo!=''){
    $where.="and metodo='$metodo'";
    }

    $dati=mysql_query($select.$from.$where);

    if (!$dati) {
    exit(' Error: ' . mysql_error() . '</p>');
    }

    while($res=mysql_fetch_array($dati)){
    $id=$res["id"];
    $id_conto=$res["id_conto"];
    $data=$res["data"];
    $transazione=$res["transazione"];
    $conto=$res["conto"];
    $debito=$res["debito"];
    $credito=$res["credito"];
    $metodo=$res["metodo"];
    $note=$res["note"];

    echo("<tr align=\"center\" >
    <td>$data</td><td>$transazione</td><td>$debito</td><td>$credito</td><td>$metodo</td><td>$note</td>

    </tr>");
    }
    ?>


  2. #2
    modo strano per costruire una query....

    prova a lasciare uno spazio tra una condizione e l'altra.

    Occhio che per mysql quella data scritta cosi' data='3/03/2007' viene considerata stringa o peggio se il campo usato fosse di tipo DATE la vedresti interpretata come 2003-03-20

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    grazie per il tuo interessamento!!

    hai ragione credo che il problema vada ricercato nella data perchè nella tabella è in formato DATE mentre io la inserisco nel campo come una stringa.
    Pero' quando non seleziono la data come condizione di ricerca, il motore non funziona lo stesso.

    la query che ne viene fuori è questa: :master:
    select *from transazioniwhere 1 and data='2007-07-03' and transazione = '24' and metodo='24'

    la query sembra essere eseguita bene però non funziona.

    Comunque nella query seleziono tutti i campi per brevita' nel codice, questo non potrebbe creare qualche problema visto che come condizione di ricerca imposto solo tre parametri(la data, la transazione e il metodo) mentre dovrei visualizzare tutti i campi della tabella

  4. #4
    traduci il "non funziona" in qualcosa di chiaro anche per noi che leggiamo.

    se vedi nella stampa della query mancano degli spazi nella stringa generata.

    deve essere:

    select * from transazioni where 1 and data='2007-07-03' and transazione = '24' and metodo='24'

    e non

    select *from transazioniwhere 1 and data='2007-07-03' and transazione = '24' and metodo='24'

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    scusatemi
    per la prossima occasione sarò più chiaro.

    comunque grazie per il tuo suggerimento,il programma inizia a funzionare.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.