Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2015, 06:04
MartinFernandoAndres
 
Fecha de Ingreso: febrero-2015
Mensajes: 27
Antigüedad: 9 años, 2 meses
Puntos: 0
Exclamación Update dentro de funcion php

Buenos, tenia una duda

Este codigo yo lo veo lógico, pero no funciona el update cuando sube la imagen (o las imagenes)

Funciona todo menos eso

Código HTML:
 <form action="test.php?miSelect=<?php echo $selected_val?>" method="post" enctype="multipart/form-data">
	  <label for="archivo">Archivo:</label>
	  <input type="file" name="archivo[]" multiple id="archivo" />
	  <br/>
	  <input type="submit" value="Enviar" />
	</form> 
Código PHP:
if ($_SERVER['REQUEST_METHOD'] == 'POST')
            {
            
$files $_FILES['archivo']['name'];
            
$upload = new Multiupload();  
            
$isUpload $upload->upFiles($files$campoElejido$FotIdi);
            }else{
            }

            class 
Multiupload {
                public function 
upFiles($files = array(), $campoElejido$FotIdi)  {
                    
$i 0;             
                    foreach(
$files as $file) {
                        if(
$_FILES['archivo']['tmp_name'][$i])  {
                            
$selected_val$_GET["miSelect"];
                            
$varPathImagen "images/autos/" .$selected_val ."/";
                            
$trozos[$i] = explode("."$_FILES["archivo"]["name"][$i]);
                            
$extension[$i] = end($trozos[$i]);
                            if(
$this->checkExtension($extension[$i]) === TRUE)  {
                                
$_FILES['archivo']['name'][$i] = $this->checkExists($trozos[$i]);      
                                if(
move_uploaded_file($_FILES['archivo']['tmp_name'][$i], $varPathImagen .$_FILES['archivo']['name'][$i]))  {
                                    
$updata ".." ."/" ."$varPathImagen" .$_FILES['archivo']['name'][$i];
                                    echo 
"Exito!";
                                    
//Actualizamos datos en registro EXITSTEN, agregando la direecion de una foto
                                    
$paso "UPDATE tblfoto SET $campoElejido = '$updata' WHERE FotId = $FotIdi";
                                    
$stmtmm $mysqli->prepare ($paso);
                                    
$stmtmm->execute();
                                } 
                            }else{
                                echo 
"la extension no esta permitida";
                            }
                        }else{
                            echo 
"sin imagen";
                        }
                        echo 
"<br />";
                        
$i++;     
                    }   
                }

                private function 
checkExtension($extension)
                {
                    
$extensiones = array("jpg","png","gif","pdf");
                    if(
in_array(strtolower($extension), $extensiones))
                    {
                        return 
TRUE;
                    }else{
                        return 
FALSE;
                    }
                }
                private function 
checkExists($file)
                {
                    
$archivo $file[0] . '.' end($file);
                    
$i 0;
                    while(
file_exists('files/'.$archivo))
                    {
                        
$i++;
                        
$archivo $file[0]."(".$i.")".".".end($file);       
                    }
                    return 
$archivo;
                }
            }; 
El $campoElejido es donde se tiene que guardar la ruta de la imagen
(y el $FotIdi es la fila donde se tiene que guardar)

$varPathImagen es la ruta de la foto (y el $updata la ruta más el nombre

Cuando hago un echo de $updata aparece bien:
UPDATE tblfoto SET FotUrl2 = '../images/autos/199/FotoPrueba.jpg' WHERE FotId = 445

La conexión la hace bien, por que probe poner
Código PHP:
    if ($mysqli->connect_errno) {
        echo 
"Fallo la conexion a la base de datos";
        die(
'Connect Error: ' $mysqli->connect_errno);
        exit;
        } 
Pero no saltaba el error

Cuando hago la subida salta Fatal error: Call to a member function prepare() on a non-object in /public_html/PreProduccion/test.php on line 463
(es la linea $stmtmm = $mysqli->prepare ($paso); )

Alguien tiene idea de lo que puede estar pasando?

Ayuda!

Última edición por MartinFernandoAndres; 20/03/2015 a las 06:13