Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [PhP / MySQL MSSQL]

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    18

    [PhP / MySQL MSSQL]

    Salve a tutti.
    Sto realizzzando un applicazione che dovrebbe richiedere di essere installata sia usando mysql che mssql.

    Per realizzare questo ho fatto una funzione che switch le procedure mysql e mssql.
    La cosa strana è che se nella funzione faccio un return di questo tipo :

    Codice PHP:
        return mysql_fetch_array($result_gen); 
    successivamente nella pagina dove richiamo la funzione il while sembrerebbe andare in loop infinito.

    Se però effettuo la procedura senza funzione "funziona" correttamente


    Codice PHP:
            $result_prt mysql_query($query_prt$connessione);
        while(
    $row_prt mysql_fetch_array($result_prt)){ 
    Sembrerebbe che accettasse mysql_fetch_array solo nel while non dal return di una funzione.

    Qualcuno mi sa dire il perchè?

    Grazie a tutti!!
    Ciauz

  2. #2
    Return ha due funzioni, ritornare un valore e chiudere la funzione.

    Se tu scrivi return mysql_fetch_array($result_gen); gli stai dicendo "Restituisci al chiamante un array contenente i risultati di una riga del database e chiudi la funzione".

    Al ritorno non avresti un puntatore al risultato della query ma un array con la sola prima riga del risultato, while probabilmente non ti va in loop, va proprio in errore

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    18
    Ho capito.Come posso ovviare a questa cosa?

  4. #4
    Potresti provare a farti restituire $result_gen direttamente ma non so se questo possa provocare problemi a livello di connessione e visibilità delle variabili, inoltre non ti risolve il problema della doppia ambivalenza del DB (Mysql o MSsql).

    Oppure potresti creare un array di array dentro la funzione e farti restituire questo:
    Codice PHP:
    while($row_prt mysql_fetch_array($result_prt))
       
    $arr_prt[]=$row_prt;
    ...
    //chiudi connessioni e roba varia
    return $arr_prt
    Non so se ti da errore ma prova, potresti anche fare direttamente
    Codice PHP:
    while($arr_prt[] = mysql_fetch_array($result_prt))
    ...
    //chiudi connessioni e roba varia
    return $arr_prt
    ma tocca vedere sempre se non dia errore

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    18
    Provato ma niente.

    Praticamente dovrei riscrivere tutto il programma in base mysql o mssql?

    Alla fine sarebbe una sostituzione si nomi però cmq rende il software poco gestibile :-D!

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    18
    Provato tutte le soluzioni possibile ma niente...mi sembra strano che nessuno abbia mai pensato a fare una cosa simile alla mia.
    La soluzione sarebbe sotituire mysql con mssql in tutte le funzioni ma diventa davvero scomodo da gestire.

    Qualcuno sa notizie in merito?

    Grazie

  7. #7
    usa un'abstraction layer di quelli già pronti (pdo oppure odbc)

    in questo modo puoi accedere a qualsiasi database soltanto cambiando pochi parametri
    Armageddon - Chief Developer

    Stiamo cercando collaboratori!

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.