Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    mysql_num_row ... problema con uno script.

    Allora ... spero di riuscire a spiegarmi bene in quanto lo script e' complesso e costituito da numerosi moduli ...

    Ora l'errore e' il classico Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\www\script\modules\db\mySQL.lib.php on line 145

    Grazie ad un debug sono riuscito a costruire il percorso per intercettare la query che pare creare problemi.
    La questione e' la seguente :

    Funzione iniziale.
    $results = db_query($sql, $link_id);

    Che chiama :

    function db_query($sql, $link)
    {
    global $executed;

    $executed[] = $sql;

    return mysql_query($sql, $link);
    }

    la query SQL costruita dalla seguente funzione e':

    SELECT ipfm_users.*, ip_groups.*, ip_validating.type FROM ip_users, ip_groups LEFT JOIN ip_validating ON (ip_users.uid = ip_validating.uid) WHERE LCASE(ip_users.username) = 'guest' AND ip_users.password = '5f4dcc3b5aa765d61d8327deb882cf99' AND ip_groups.gid = ip_users.gid

    Viene testato il db_num_rows come di seguito ,

    if (db_num_rows($results, $link_id) > 0)
    {
    $data = db_fetch_array($results, $link_id);

    $permissions = array(
    "uid" => $data["uid"],
    "gid" => $data["gid"],
    "name" => $data["username"],
    "password" => $data["password"],
    "email" => $data["email"],
    "offset" => $data["offset"],
    "isdst" => $data["dst"],
    "notes" => $data["add_notes"],
    "adminmsg" => $data["del_admin_msg"],
    "bookmark" => $data["use_bookmarks"],
    "group" => $data["groupname"],
    "htpasswd" => $data["lock_dir"],
    "ucp" => $data["access_ucp"],
    "chmod" => $data["chmod"],
    "upload" => $data["upload"],
    "download" => $data["download"],
    "rename" => $data["rename"],
    "edit" => $data["editor"],
    "source" => $data["view_source"],
    "view_img" => $data["view_img"],
    "mp3" => $data["mp3"],
    "delete" => $data["delete"],
    "copy" => $data["copy"],
    "move" => $data["move"],
    "newfolder" => $data["newfolder"],
    "newfile" => $data["newfile"],
    "overwrite" => $data["overwrite"],
    "archive" => $data["create_archive"],
    "view_arc" => $data["view_archive"],
    "arc_save" => $data["archive_save_options"],
    "symlink" => $data["make_symlink"],
    "admin" => $data["access_acp"],
    "sql" => $data["sql"],
    "dbhost" => $data["dbhost"],
    "dbuser" => $data["dbuser"],
    "dbpass" => $data["dbpass"],
    "dbname" => $data["dbname"],
    "root" => $data["root_path"],
    "root_url" => $data["root_url"],
    "show_url" => $data["show_url"],
    "verify" => $data["verify_file"],
    "space" => empty($data["user_space"]) == false ? $data["user_space"] : $data["group_space"],
    "lang" => $data["language"],
    "showall" => $data["show_hidden_files"],
    "access" => $data["access_type"],
    "files" => $data["file_types"],
    "no_ext" => $data["allow_no_extension"],
    "validate" => $data["type"],
    "offline" => $data["offline"],
    "stats" => $data["stats"]
    );
    }

    return $permissions;
    }

    e il ritorno di mysql_num_row avviene dalla seguente istruzione

    function db_num_rows($result, $link)
    {
    return mysql_num_rows($result);
    }

    Ora secondo voi come potrei tentare di approcciare l'errore ?
    Da notare che su mysql4 lo script non ha problemi al contrario che su mysql5.
    ciao e attendo suggerimenti

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    13
    Codice PHP:

    function db_query($sql$link)
    {
        global 
    $executed;

        
    $executed[] = $sql;

        
    $result mysql_query($sql$link) or die(mysql_error());

        if (
    is_resource($result)) {
           return 
    $result;
        }

    Guarda la error

  4. #4
    Originariamente inviato da jamiel
    Codice PHP:

    function db_query($sql$link)
    {
        global 
    $executed;

        
    $executed[] = $sql;

        
    $result mysql_query($sql$link) or die(mysql_error());

        if (
    is_resource($result)) {
           return 
    $result;
        }

    Guarda la error

    perfetto ...
    questo e' il messaggio di ritorno ...

    Unknown column 'script_users.uid' in 'on clause'

    ma la colonna esiste ed e' definita come int(11)

    avete suggerimenti ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Scusa, ma se la query è questa

    SELECT ipfm_users.*, ip_groups.*, ip_validating.type FROM ip_users, ip_groups LEFT JOIN ip_validating ON (ip_users.uid = ip_validating.uid) WHERE LCASE(ip_users.username) = 'guest' AND ip_users.password = '5f4dcc3b5aa765d61d8327deb882cf99' AND ip_groups.gid = ip_users.gid

    come può l'errore essere
    Unknown column 'script_users.uid' in 'on clause'

    visto che nella ON CLAUSE non c'è alcun script_users.uid e in generale non c'è alcuna tabella "script_users" nella select?

    Ho l'impressione che non sia quella la query che sta girando o che hai copia/incollato qualcosa di sbagliato

  6. #6
    Originariamente inviato da Leilond
    Scusa, ma se la query è questa

    SELECT ipfm_users.*, ip_groups.*, ip_validating.type FROM ip_users, ip_groups LEFT JOIN ip_validating ON (ip_users.uid = ip_validating.uid) WHERE LCASE(ip_users.username) = 'guest' AND ip_users.password = '5f4dcc3b5aa765d61d8327deb882cf99' AND ip_groups.gid = ip_users.gid

    come può l'errore essere
    Unknown column 'script_users.uid' in 'on clause'

    visto che nella ON CLAUSE non c'è alcun script_users.uid e in generale non c'è alcuna tabella "script_users" nella select?

    Ho l'impressione che non sia quella la query che sta girando o che hai copia/incollato qualcosa di sbagliato
    azz ... scusa ho sbagliato db e quindi cambiano i prefissi.

    SELECT ipfm_users.*, ipfm_groups.*, ipfm_validating.type FROM ipfm_users, ipfm_groups LEFT JOIN ipfm_validating ON (ipfm_users.uid = ipfm_validating.uid) WHERE LCASE(ipfm_users.username) = 'guest' AND ipfm_users.password = '5f4dcc3b5aa765d61d8327deb882cf99' AND ipfm_groups.gid = ipfm_users.gid

    il messaggio e' : Unknown column 'ipfm_users.uid' in 'on clause'

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Un suggerimento.
    MEtti una "echo" della query subito prima della sua esecuzione, copiala e incollala direttamente su phpmyadmin... vedi cosa dice da li... quando mi capita faccio così... magari togliendo tutte le tabelle dal query e riaggiungendone una per volta fino a che non sgamo il punto esatto
    Così possiamo fare poco, poichè potresti aver selezionato il db sbagliato o il prefisso sbagliato... non saprei... l'errore non è nella "sintassi" ma nel nome delle colonne e quelle non te le possiamo vedere da qui

  8. #8
    ho inserito una echo ... ma qualcosa non mi torna ...
    le query che mi ritorna lo script sono secondo me sbagliate ...

    errata con mysql5 : Resource id #8SELECT ipfm_users.*, ipfm_groups.*, ipfm_validating.type FROM ipfm_users, ipfm_groups LEFT JOIN ipfm_validating ON (ipfm_users.uid = ipfm_validating.uid) WHERE LCASE(ipfm_users.username) = 'guest' AND ipfm_users.password = '5f4dcc3b5aa765d61d8327deb882cf99' AND ipfm_groups.gid = ipfm_users.gid


    corretta con mysql4 : SELECT ipfm_users.*, ipfm_groups.*, ipfm_validating.type FROM ipfm_users, ipfm_groups LEFT JOIN ipfm_validating ON (ipfm_users.uid = ipfm_validating.uid) WHERE LCASE(ipfm_users.username) = 'guest' AND ipfm_users.password = '5f4dcc3b5aa765d61d8327deb882cf99' AND ipfm_groups.gid = ipfm_users.gid

    edit ...

  9. #9
    cioè ... su mysql5 che e' quel resource id davanti alla select ????

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    13
    provi:

    SELECT ipfm_users.*, ipfm_groups.*, ipfm_validating.type FROM ipfm_users INNER JOIN ipfm_groups ON ipfm_users.gid = ipfm_groups.gid LEFT JOIN ipfm_validating ON (ipfm_users.uid = ipfm_validating.uid) WHERE LCASE(ipfm_users.username) = 'guest' AND ipfm_users.password = '5f4dcc3b5aa765d61d8327deb882cf99'

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.