Visualizzazione risultati 1 fino 22 di 22

Discussione: [PHP, MySQL] Problema con servizio di update

  1. #1
    Guest

    Question [PHP, MySQL] Problema con servizio di update

    Ciao a tutti! Ho un problema a far funzionare un servizio di update, che deve ottenere dal db l'ultima versione di un programma. Ecco il codice:
    update.php
    Codice PHP:
    <?php

    include("data.php");

    $conn = mysql_connect($dbhost, $user, $password) or die ('Error connecting to mysql');
    mysql_select_db($database);

    $query = 'SELECT * FROM Releases WHERE CodVer in (SELECT MAX(CodVer) FROM Releases)';
    $result = mysql_query($query);

    while(
    $row = mysql_fetch_row($result))
    {
    echo
    $row['CodVer'];
    echo
    $row['NumVer'];
    echo
    $row['Description'];
    }

    mysql_close($conn);

    ?>
    data.php
    Codice PHP:
    <?php

    $user
    ="nomeutente";
    $password="quellocheè";
    $database="nomedb";
    $dbhost = "nomehost";

    ?>
    L'errore è il seguente:
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/groups/g/go/gootor/htdocs/update.php on line 11

    Qualcuno mi può aiutare a risolverlo? Grazie in anticipo!

  2. #2
    Guest

    Predefinito

    c'è un errore nella query, dopo mysql_query($query) aggiungi or die(mysql_error());
    e posta l'errore che ti restituisce

  3. #3
    Guest

    Predefinito

    Oh! Dice "No database selected". :-/

  4. #4
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    prova con
    mysql_select_db($database, $conn);

  5. #5
    Guest

    Cool

    Citazione Originalmente inviato da mythologia
    prova con
    mysql_select_db($database, $conn);
    Continua a darmi il medesimo errore.

  6. #6
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    Prova a vedere se cosi ti da errore (dovrebbe dartelo, altrimenti non so dove sia l'errore):

    mysql_select_db($database, $conn) or die('errore nella selezione del DB');

  7. #7
    Guest

    Exclamation

    Citazione Originalmente inviato da mythologia
    Prova a vedere se cosi ti da errore (dovrebbe dartelo, altrimenti non so dove sia l'errore):

    mysql_select_db($database, $conn) or die('errore nella selezione del DB');
    Ecco! L'errore me lo dà proprio lì. Cosa devo fare quindi?

  8. #8
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    da phpmyadmin riesci ad accedere al database correttamente?
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  9. #9
    Guest

    Smile

    Citazione Originalmente inviato da Evcz
    da phpmyadmin riesci ad accedere al database correttamente?
    Sì, certo.

  10. #10
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

    Predefinito

    bah, allora non so che dire, proprio strano ...
    Controlla di aver scritto bene il nome del DB

  11. #11
    Guest

    Wink

    Citazione Originalmente inviato da mythologia
    bah, allora non so che dire, proprio strano ...
    Controlla di aver scritto bene il nome del DB
    Avevo fatto un errore banalissimo: avevo lasciato uno spazio prima del nome corretto!
    Ora non dà più errore, ma non visualizza nulla. Nella tabella Releases però ci sono 2 righe, perciò mi sembra strano. Magari è perché uso la funzione MAX sul campo chiave, che è un intero autoincrementante?

  12. #12
    L'avatar di mythologia
    mythologia non è connesso Moderatore
    Data registrazione
    05-01-2004
    Messaggi
    2,614

  13. #13
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Così per scrupolo, hai provato ad eseguire la stessa query in phpMyAdmin e vedere se riesce a spararti fuori qualche risultato? Perché quando ho provato da lì ad eseguire query annidate (come quella che vorresti eseguire tu) mi dava errore e mi hanno spiegato che è dovuto al fatto che la versione di MySQL di AlterVista non supporta queste query...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  14. #14
    Guest

    Predefinito

    In phpMyAdmin mi restituisce 1 riga ed è quella corretta, con CodVer, NumVer e Description. Comunque si tratta del MySQL di Sourceforge, quindi non ci dovrebbe essere problema per le queries annidate. :-)

    EDIT: Scusate per l'up, ma non ho ancora trovato una soluzione: anche se sembra non ci siano più errori, mostra solo una pagina bianca! Qualcuno mi può aiutare in qualche modo?
    Ultima modifica di funcool : 28-08-2006 alle ore 14.11.59

  15. #15
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Prova ad aggiungere questa riga di codice all'inizio della pagina per vedere se escono degli errori nascosti:
    Codice PHP:
    error_reporting (E_ALL);
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  16. #16
    Guest

    Predefinito

    fai così:
    $sql = "SELECT max(CodVer) as massimo FROM Releases";
    $result = mysql_query ( $sql ) or die("Errore nella selezione: " . mysql_error());
    $row = mysql_fetch_array( $result );
    $max = $row['massimo'];

    $sql2 = "SELECT * FROM releases WHERE codVer = $max";

    dovrebbe darti la stringa con CodVer massimo

  17. #17
    Guest

    Predefinito

    Ricapitolando, il codice ora è questo:

    Codice PHP:
    <?php

    error_reporting
    (E_ALL);

    include(
    "data.php");

    $conn = mysql_connect($dbhost, $user, $password) or die ('Error connecting to mysql');
    mysql_select_db($database, $conn) or die('Error while selecting DB');

    $sql = "SELECT max(CodVer) as massimo FROM Releases";
    $result = mysql_query ( $sql ) or die("Errore nella selezione: " . mysql_error());
    $row = mysql_fetch_array( $result );
    $max = $row['massimo'];

    $sql2 = "SELECT * FROM Releases WHERE codVer = $max";


    //$query = 'SELECT * FROM Releases WHERE CodVer in (SELECT MAX(CodVer) FROM Releases)';
    //$result = mysql_query($query) or die(mysql_error());

    $result = mysql_query($sql2) or die(mysql_error());

    while(
    $row = mysql_fetch_row($result))
    {
    echo
    $row['CodVer'];
    echo
    $row['NumVer'];
    echo
    $row['Description'];
    }

    mysql_close($conn);

    ?>
    Mi sono usciti fuori questi errori:
    Codice PHP:
    Notice: Undefined index: CodVer in /home/groups/g/go/gootor/htdocs/update.php on line 15

    Notice
    : Undefined index: NumVer in /home/groups/g/go/gootor/htdocs/update.php on line 16

    Notice
    : Undefined index: Description in /home/groups/g/go/gootor/htdocs/update.php on line 17
    Avete qualche suggerimento?

  18. #18
    Guest

    Predefinito

    mmm strano. per scrupolo: metti $result2 = mysql_query( $sql2 )

    anzi mi sembra un po' troppo strano visto e considerato che nella query ("dove selezioni codVer") non ti da errori... mmm mysql nel codice non è casesensitive ma php si
    l'errore è nel $row devi inserirli con maiuscole e minuscole corrette. Sono corrette?

  19. #19
    Guest

    Predefinito

    Fai così:
    Codice PHP:
    while($row = mysql_fetch_array($result))
    {
    echo
    $row['CodVer'];
    echo
    $row['NumVer'];
    echo
    $row['Description'];
    }
    bisogna usare mysql_fetch_array() perche mysql_fetch_row() restituisce un array con indici numerici e non associativi.
    Ultima modifica di tuttoeniente2 : 29-08-2006 alle ore 12.35.10

  20. #20
    Guest

    Thumbs up

    Perfetto! Ora funziona! Il problema era proprio quel mysql_fetch_array().
    Vi chiedo solo un'altra cosa: come posso concatenare quei 3 elementi separandoli da dei pipe (es.: "c1|d2|e3")? :-)

    EDIT -> Come non detto, ce l'ho fatta, bastava modificare l'echo così:
    Codice PHP:
    echo "{$row['CodVer']}|{$row['NumVer']}|{$row['Description']}";
    Grazie a tutti per il prezioso contributo!
    Ultima modifica di Syst3mCrash3r : 29-08-2006 alle ore 17.51.10

  21. #21
    Guest

    Predefinito

    anche se hai risolto ti posto un'altra soluzione al tuo ultimo quesito:

    echo $row['c1'] . " | " . $row['c2'] . " | " $row['c3'] ;

    ciaoo

  22. #22
    Guest

    Predefinito

    Ok, grazie ancora! ;-)

Regole di scrittura

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