Visualizzazione risultati 1 fino 24 di 24

Discussione: Visual basic e connessione al db

  1. #1
    Guest

    Predefinito Visual basic e connessione al db

    Salve a tutti ho (ovviamente) una domanda da porvi.
    Sono riuscito a collegare una mia applicazione scritta in VB al database attraverso pagine in php con le query.
    Adesso sono riuscito a fare il register e i login. Loggando si entra in un profilo privato da cui si possono inserire dei voti ad esempio presi a scuola. Io adesso vorrei fare in modo di poter prendere questi dati e mostrarli in VB come posso fare?

  2. #2
    Guest

    Predefinito

    Ciao, premetto che conosco Visual Basic molto poco, peró credo che una via possa essere quella di creare delle pagine PHP che prelevino i dati dal database e li restituiscano in un formato come JSON o CSV. Dal tuo programma leggi poi i risultati e li visualizzi.
    Ultima modifica di noktalk : 31-10-2013 alle ore 22.16.56

  3. #3
    Guest

    Predefinito

    Volevo usare anche il le pagine PHP solo che di PHP ne capisco poco. E non so come scriptare la pagina col codice SQL. Potresti aiutarmi?

  4. #4
    Guest

    Predefinito

    Sì, però ti conviene leggere qualche tutorial per capire come fare, almeno inizi a buttare giù una bozza dello script e poi qui sistemiamo meglio le cose.

    Credo che la struttura dello script possa essere qualcosa di simile:
    1. verifichi quali informazioni sono richieste (per esempio voti di una materia o i voti di uno studente);
    2. in base alla richiesta (che per esempio può pervenire via GET) decidi quale query SQL utilizzare per il prelievo dei dati;
    3. una volta decisa la query la esegui e, se ci sono risultati, li visualizzi nel formato di tuo interesse (per esempio CSV).

  5. #5
    Guest

    Predefinito

    Quello che ho abbozzato è questo:

    Codice PHP:
    <?php

    $user
    = $_GET['username'];
    $materia = $_GET['materia'];

    $myconn=mysql_connect('localhost','xxxx','xxxx') or die ("Errore...");

    mysql_select_db('my_xxxxxxxxxx', $myconn) or die ("Errore...");

    $query "SELECT voto FROM Voti WHERE username='".$user"'" AND materia ='".$materia."'";

    $result= mysql_query($query, $myconn) or die ("Errore..");

    $numrows = mysql_num_rows($result);


    ?>
    Ultima modifica di alemoppo : 01-11-2013 alle ore 18.34.30 Motivo: +tag [php]

  6. #6
    Guest

    Predefinito

    Ok, per sicurezza ti consiglierei di fare un escape dei dati ricevuti via GET con mysql_real_escape_string. Tuttavia stai utilizzando le funzioni mysql_*, siccome non sono più supportate ufficialmente sarebbe meglio che usassi le funzioni di MySQLi. In ogni caso questo è un dettaglio che si può sistemare dopo.

    Ora, per prelevare i dati dalla query non devi usare mysql_num_rows, ma questo:
    Codice PHP:
    $data = array();

    while(
    $row = mysql_fetch_assoc($result) !== false)
    $data[] = $row;
    E quindi adesso i risultati sono in $data. Ora si tratta di capire come vuoi visualizzarli.

  7. #7
    Guest

    Predefinito

    Mi da quest errore: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /membri/informatcapertutti/getvoti.php on line 10

    In questa linea:
    Codice PHP:
    $query "SELECT voto FROM Voti WHERE username='".$user."'" AND materia ='".$materia."'";
    Ultima modifica di alemoppo : 01-11-2013 alle ore 18.34.50 Motivo: +tag [php]

  8. #8
    Guest

    Predefinito

    Manca l'uguale tra $query e la stringa

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    La query è mal formata (nota il colore della scritta "AND materia"... Hai pasticciato un po' con gli apici).
    Inoltre manca l'operatore di assegnamento.

    Codice PHP:
    $query = "SELECT voto FROM Voti WHERE username='".$user."' AND materia ='".$materia."'";
    Ciao!

    EDIT: anticipato... lascio per il discorso degli apici :P
    Ultima modifica di alemoppo : 01-11-2013 alle ore 18.37.42

  10. #10
    Guest

    Predefinito

    Immaginavo fossero gli apici AHAHAHAH Grazie ;)

    EDIT: Adesso manca solo convertirlo e visualizzarlo in VB
    Ultima modifica di informatcapertutti : 01-11-2013 alle ore 19.03.55

  11. #11
    Guest

    Predefinito

    Non avevo fatto caso agli apici :)

    Comunque per portare i dati in VB, ti basta visualizzarli nel formato di tuo interesse nella pagina PHP, leggerne il contenuto dal tuo programma e convertirlo in un'opportuna struttura di dati. Se per esempio vuoi usare JSON ti basta scrivere
    Codice PHP:
    header('content-type: text/plain');
    echo
    json_encode($data);
    Per il CSV ho dato uno sguardo e sembra un po' più laborioso (bisogna operare sui file e usare la funzione fputcsv), ma non è complicato. Se hai in mente qualche altro formato che ti sembra più comodo vediamo cosa si può fare.
    Ultima modifica di noktalk : 01-11-2013 alle ore 19.25.19

  12. #12
    Guest

    Predefinito

    Non ho mai fatto una cosa così quindi non conosco i formati

    EDIT:Ho provato a richiedere le info tramite URL quindi miosito.altervista.org/miapagina.php?username=miouser&materia=miamateria
    ma mi restituisce un errore
    Ultima modifica di informatcapertutti : 01-11-2013 alle ore 20.19.49

  13. #13
    Guest

    Predefinito

    Che errore ti restituisce? Comunque se riesci a trovare una libreria per Visual Basic che ti legga dei dati in formato JSON la cosa è molto spiccia, almeno dal punto di vista di PHP. Si tratta di leggere da Visual Basic il risultato della tua pagina PHP, darlo in pasto alla libreria JSON che ti restituisce una struttura dati pulita e usarla nel tuo programma.
    Ultima modifica di noktalk : 01-11-2013 alle ore 20.51.46

  14. #14
    Guest

    Predefinito

    Errore query...

  15. #15
    Guest

    Predefinito

    All'inizio dello script prova ad aggiungere:
    Codice PHP:
    error_reporting(E_ALL);
    Magari ci da qualche informazione in piú sull'errore.

  16. #16
    Guest

    Predefinito

    gli errori sono:

    Notice: Undefined index: username in /membri/informatcapertutti/getvoti.php on line 10

    Notice: Undefined index: materia in /membri/informatcapertutti/getvoti.php on line 11

  17. #17
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Dice che dalla query non trova le informazioni $row['username'] e $row['materia'], infatti hai selezionato soltanto "voto"!

    Codice:
    SELECT voto FROM ...
    Se vuoi selezionar tutti i dati, puoi usare l'asterisco:

    Codice:
    SELECT * FROM ...
    Anche se in effetti, 'username' e 'materia' è inutile che li prendi dalla query, perché li conosci già: li usi nel "WHERE" della query!

    Ciao!
    Ultima modifica di alemoppo : 02-11-2013 alle ore 14.05.58

  18. #18
    Guest

    Predefinito

    Niente sempre errore.. Mi sa che lo script è sbagliato

  19. #19
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Puoi scrivercelo qui?

    Ciao!

  20. #20
    Guest

    Predefinito

    Codice PHP:
    <?php

    error_reporting
    (E_ALL);

    $dbhost = "localhost";
    $dbname = "my_xxxx";
    $dbuser = "xxxx";
    $dbpass = "xxxx";

    $user = $_GET['user'];
    $materia = $_GET['materia'];

    $myconn=mysql_connect($dbhost,$dbuser, $dbpass) or die ("Errore connessione...");

    mysql_select_db($dbname, $myconn) or die ("Errore database...");

    $query = "SELECT voto FROM Voti WHERE username='".$user."' AND materia='".$materia."'";

    $result= mysql_query($query, $myconn) or die ("Errore query..");

    $data = array();

    while(
    $row = mysql_fetch_assoc($result) !== false)
    $data[] = $row;


    ?>
    Ultima modifica di alemoppo : 02-11-2013 alle ore 23.17.53 Motivo: +tag [php]

  21. #21
    Guest

    Predefinito

    Stando agli errori il problema non è nel codice, ma nella richiesta. La tua pagina deve essere richiamata cosí:
    Codice:
    /getvoti.php?user=aaa&materia=bbb

  22. #22
    Guest

    Predefinito

    La richiesta la faccio in questo modo ma mi restituisce errore

  23. #23
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Usa isset() per vedere se le variabili passate via GET sono settate.

    Per vedere eventuali errori di sintassi delle query, dovresti usare mysql_error().

    Valgono comunque gli accorgimenti già detti da notalk: occhio alle sql injection e l'uso di mysqli.

    p.s: sicuro di questa riga?
    Codice PHP:
    $data[] = $row;
    I dati veri e propri sono in $row['username'] e $row['materia']... In quel modo dovresti salvar l'intero array, ma occhio che avrai un array di array.

    Ciao!
    Ultima modifica di alemoppo : 03-11-2013 alle ore 00.27.35

  24. #24
    Guest

    Predefinito

    Non ho capito..

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •