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

    Problema update mysql in php

    Salve a tutti,
    sto creando un piccolo script in php per SMF.
    Lo script funziona solo che da qualche problema

    codice:
    updateMemberData($row['ID_MEMBER'], array('avatar' => 9, 'validation_code' => '\'\''));
    così funziona notate l'array avatar = 9
    mentre se metto
    codice:
    updateMemberData($row['ID_MEMBER'], array('avatar' => 'foto.jpg', 'validation_code' => '\'\''));
    avatar = 'foto.jpg' sul database appare bianco.
    quale può essere la causa?

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    il primo è un numero (9) il secondo una strina ('foto.jpg'), controlla di che tipo è il campo sul db, vedrai che è numrico, cambialo in varchar

  3. #3
    poi se per caso il campo del database pensi che vai a salvare stringe molto lunghe ti conviene di impostare il campo in TEXT
    perchè in varchar il massimo è 255

  4. #4
    Originariamente inviato da serdominik
    poi se per caso il campo del database pensi che vai a salvare stringe molto lunghe ti conviene di impostare il campo in TEXT
    perchè in varchar il massimo è 255
    non è un problema di database perchè dal sito tranquillamente carico avatar e nel database viene inserito url. Il problema è in quella stringa php.

  5. #5
    xkè non posti la funzione: updateMemberData
    nella sua interezza? potrebbe esserci qualcosa di errato all'interno

  6. #6
    Originariamente inviato da serdominik
    xkè non posti la funzione: updateMemberData
    nella sua interezza? potrebbe esserci qualcosa di errato all'interno
    eccolo
    Codice PHP:
    function updateMemberData($members$data)
    {
        global 
    $db_prefix$modSettings$ID_MEMBER$user_info;

        if (
    is_array($members))
            
    $condition 'ID_MEMBER IN (' implode(', '$members) . ')
            LIMIT ' 
    count($members);
        elseif (
    $members === null)
            
    $condition '1';
        else
            
    $condition 'ID_MEMBER = ' $members '
            LIMIT 1'
    ;

        if (isset(
    $modSettings['integrate_change_member_data']) && function_exists($modSettings['integrate_change_member_data']))
        {
            
    // Only a few member variables are really interesting for integration.
            
    $integration_vars = array(
                
    'memberName',
                
    'realName',
                
    'emailAddress',
                
    'ID_GROUP',
                
    'gender',
                
    'birthdate',
                
    'websiteTitle',
                
    'websiteUrl',
                
    'location',
                
    'hideEmail',
                
    'timeFormat',
                
    'timeOffset',
                
    'avatar',
                
    'lngfile',
            );
            
    $vars_to_integrate array_intersect($integration_varsarray_keys($data));

            
    // Only proceed if there are any variables left to call the integration function.
            
    if (count($vars_to_integrate) != 0)
            {
                
    // Fetch a list of memberNames if necessary
                
    if ((!is_array($members) && $members === $ID_MEMBER) || (is_array($members) && count($members) == && in_array($ID_MEMBER$members)))
                    
    $memberNames = array($user_info['username']);
                else
                {
                    
    $memberNames = array();
                    
    $request db_query("
                        SELECT memberName
                        FROM 
    {$db_prefix}members
                        WHERE 
    $condition"__FILE____LINE__);
                    while (
    $row mysql_fetch_assoc($request))
                        
    $memberNames[] = $row['memberName'];
                    
    mysql_free_result($request);
                }

                if (!empty(
    $memberNames))
                    foreach (
    $vars_to_integrate as $var)
                        
    call_user_func($modSettings['integrate_change_member_data'], $memberNames$varstripslashes($data[$var]));
            }
        }

        foreach (
    $data as $var => $val)
        {
            if (
    $val === '+')
                
    $data[$var] = $var ' + 1';
            elseif (
    $val === '-')
                
    $data[$var] = $var ' - 1';
        }

        
    // Ensure posts, instantMessages, and unreadMessages never go below 0.
        
    foreach(array('posts''instantMessages''unreadMessages') as $type)
            if (isset(
    $data[$type]) && preg_match('~^' $type ' - ([\d]+)~'$data[$type], $match) === 1)
                
    $data[$type] = 'CASE WHEN ' $type ' <= ' $match[1] . ' THEN 0 ELSE ' $data[$type] . ' END';

        
    $setString '';
        foreach (
    $data as $var => $val)
        {
            
    $setString .= "
                
    $var = $val,";
        }

        
    db_query("
            UPDATE 
    {$db_prefix}members
            SET" 
    substr($setString0, -1) . '
            WHERE ' 
    $condition__FILE____LINE__);

        
    updateStats('postgroups'$conditionarray_keys($data));

        
    // Clear any caching?
        
    if (!empty($modSettings['cache_enable']) && $modSettings['cache_enable'] >= && !empty($members))
        {
            if (!
    is_array($members))
                
    $members = array($members);

            foreach (
    $members as $member)
            {
                if (
    $modSettings['cache_enable'] == 3)
                {
                    
    cache_put_data('member_data-profile-' $membernull120);
                    
    cache_put_data('member_data-normal-' $membernull120);
                    
    cache_put_data('member_data-minimal-' $membernull120);
                }
                
    cache_put_data('user_settings-' $membernull60);
            }
        }


  7. #7
    a mio avviso c'è un po' di confusione nella funzione:
    ci sono 3 foreach consegutivi prendo il primo e il terzo:
    Codice PHP:
    foreach ($data as $var => $val)
        {
            if (
    $val === '+')
                
    $data[$var] = $var ' + 1';
            elseif (
    $val === '-')
                
    $data[$var] = $var ' - 1';
        } 
    l'altro
    Codice PHP:
    $setString '';
        foreach (
    $data as $var => $val)
        {
            
    $setString .= "
                
    $var = $val,";
        } 
    il terzo beh sembra almeno funzionare
    ma il primo fai un'assegnazione alla variabile $data[$var] sia nell'if che nel elseif

    sicuro che tutto questo sia ok? o c'è un po' di confusione?

  8. #8
    Originariamente inviato da serdominik
    a mio avviso c'è un po' di confusione nella funzione:
    ci sono 3 foreach consegutivi prendo il primo e il terzo:
    Codice PHP:
    foreach ($data as $var => $val)
        {
            if (
    $val === '+')
                
    $data[$var] = $var ' + 1';
            elseif (
    $val === '-')
                
    $data[$var] = $var ' - 1';
        } 
    l'altro
    Codice PHP:
    $setString '';
        foreach (
    $data as $var => $val)
        {
            
    $setString .= "
                
    $var = $val,";
        } 
    il terzo beh sembra almeno funzionare
    ma il primo fai un'assegnazione alla variabile $data[$var] sia nell'if che nel elseif

    sicuro che tutto questo sia ok? o c'è un po' di confusione?
    il codice non l'ho fatto io.. è di SimpleMachinesForum dovrebbe essere corretto dato che non mi da nessun problema.

  9. #9
    Originariamente inviato da ShanReWeT
    il codice non l'ho fatto io.. è di SimpleMachinesForum dovrebbe essere corretto dato che non mi da nessun problema.
    allora guarda dovresti + provare a chiedere sui loro forum visto che è un cms/forum conviene + chiedere a loro che ci lavorano su quel software

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