Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    165

    [PHP/MYSQL] update con array

    salve, sto facendo una funzione che deve prendere da un'array i campi e i post presi dal form
    e questa funzione modifica i dati.

    La funzione è questa:
    Codice PHP:
      
     
    function updateProperty($data,$table,$val){
        if (!
    is_array($data)) $this->error('Data is not an array'__LINE__);
            foreach (
    $data as $k => $v $data[$k] = "'".$this->escape($v)."'";

        
    $this->query("UPDATE `".$table."` SET ".array_keys($data)."='".array_keys($data)."' WHERE ".$val."='".$val."'");
      
      } 
    e si usa cosi:
    Codice PHP:
    $updateArray = array(
                      
    'password' => md5($temp_pass),
                      
    'active' => 1
                      
    );

                    
    $allib->updateProperty($updateArray,'users'$row["email"]); 
    Però non mi modifica nulla,

    penso di aver sbagliato nella funzione e non so come risolvere perché essendo che sto pretendo spunto da una classe "php user class" e leggendo il loro forum non ci capisco nulla.


    Mi dite come posso fare?

    ha dimenticavo:
    this->query richiama mysql_query.


    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    Inizia con il fare un echo della query e posta l'output così capiamo dov'è l'errore
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  3. #3
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    165
    ho provato con la sua originale ma nulla.
    Codice PHP:
    function updateProperty($data,$table,$val){
       if(
    is_array($properties))
        {
          
    $i=1;
          
    $query "UPDATE `".$table."` SET ";

          foreach(
    $properties AS $k => $v)
          {
          
            
    $query .= "`".$this->escape($k)."` = '".$this->escape($v)."'".(($i++ < count($properties)) ? ', ' ' ');
          }

          
    $query .= "WHERE `".$val."` = '".$val."'";
          return 
    mysql_query($query$this->dbConn); 
        }
      else
        return 
    false;  
      } 

  4. #4
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    165
    niente mi salta fuori solo Array senza nulla

    Mi dici che modifiche devo fare?

    grazie mille.

    saluti.

  5. #5
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    Originariamente inviato da lu11
    niente mi salta fuori solo Array senza nulla

    Mi dici che modifiche devo fare?

    grazie mille.

    saluti.
    Come può saltare fuori Array ?

    Devi fare l'echo di questo:

    echo "UPDATE `".$table."` SET ".array_keys($data)."='".array_keys($data)."' WHERE ".$val."='".$val."'";
    Hai provato a creare un sito con Jaaxo Cms PHP5? new!

  6. #6
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    165
    ciao, ho provato come mi hai detto e viene fuori cosi:
    UPDATE `users` SET Array='Array' WHERE l.xxxx@EDITME.it='l.xxxx@EDITME.it'Array

    come mai ?

    grazie mille,
    il codice ultimo che usato è questo:
    Codice PHP:
    function updateProperty($data,$table,$val){
        if (!
    is_array($data)) $this->error('Data is not an array'__LINE__);
            foreach (
    $data as $k => $v $data[$k] = "'".$this->escape($v)."'";

        
    $this->query("UPDATE `".$table."` SET ".array_keys($data)."='".array_keys($data)."' WHERE ".$val."='".$val."'");
          echo 
    "UPDATE `".$table."` SET ".array_keys($data)."='".array_keys($data)."' WHERE ".$val."='".$val."'";

      } 
    grazie mille.

  7. #7
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    165
    ciao cosi comincia a funzionare solo se metto direttamente il campo email nella query:
    Codice PHP:
    function updateProperty($data,$table,$r,$p){
        if (!
    is_array($data)) $this->error('Data is not an array'__LINE__);
            foreach (
    $data as $k => $v ) {

        
    $this->query("UPDATE `".$table."` SET ".$k."='".$v."' WHERE email='".$p."'");
        
          echo 
    "UPDATE `".$table."` SET ".$k."='".$v."' WHERE email='".$p."'";
    }
      }
     
    $allib->updateProperty($updateArray,'users'$row["email"], $_POST["email"]); 
    Solo che io vorrei una cosa generica che la posso utilizzare per tutto quello che mi serve per editare.

    Non mi riesce ad fargli capire di prendere il campo Email = mi ci mette sempre l'email vera propria.

    Mi dici come posso risolvere?

    Grazie mille.

  8. #8
    Utente bannato
    Registrato dal
    Feb 2011
    Messaggi
    165
    risolto:
    Codice PHP:
     public function updateProperty($data,$table,$r,$p)
      {
        if(
    is_array($data))
        {
          
    $i=1;
          
    $query "UPDATE `".$table."` SET ";

          foreach(
    $data AS $k => $v)
          {
          
            
    $query .= "`".$this->escape($k)."` = '".$this->escape($v)."'".(($i++ < count($data)) ? ', ' ' ');
          }

          
    $query .= "WHERE `".$r."` = '".$p."'";
           echo 
    $query;
          return 
    mysql_query($query$this->dbConn); 
        }
      else
        return 
    false;
      } 
    grazie mille.

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.