Foros del Web » Programando para Internet » PHP »

Problema con la funcion shuffle

Estas en el tema de Problema con la funcion shuffle en el foro de PHP en Foros del Web. Ayuda con la linea que puse en rojo, me marca un error Warning: shuffle() expects parameter 1 to be array, null given in /home/home/public_html/desarrollo/home/catalogo.php on ...
  #1 (permalink)  
Antiguo 24/11/2011, 13:45
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 18 años, 10 meses
Puntos: 1
Problema con la funcion shuffle

Ayuda con la linea que puse en rojo, me marca un error
Warning: shuffle() expects parameter 1 to be array, null given in /home/home/public_html/desarrollo/home/catalogo.php on line 381

Código PHP:
$query_productos "SELECT * FROM producto_productos WHERE IDProducto_Catalogo = '" $row_catalogo['IDProducto_Catalogo'] . "'";
        
$res_productos $mysql->query($query_productosfalse);
        while(
$row_productos mysql_fetch_array($res_productos)){
            
$arreglo_prod[] = $row_productos['IDProducto_Producto'];
        }
    
////    Esta es la lina 381
$arreglo_prod[] = shuffle($arreglo_prod);
//////////
        
$ultimo_prod array_pop($arreglo_prod);
        
$formacion_cat = ($row_catalogo['Formacion_catalogo'] == "Tipo4") ? 2;
        
$cuantos_prod_por_fila 3;

        if(
$totalRows_catalogo != 0){
            if(
$row_catalogo['Formacion_catalogo'] == "Tipo4"){
                for(
$i_cat 0$i_cat $cuantos_prod_por_fila$i_cat++){
                    if(
$arreglo_prod[$i_cat]){
                        
                        
$query_prod "SELECT * FROM producto_productos WHERE IDProducto_Producto = '" $arreglo_prod[$i_cat] . "'";
                        
$row_prod $mysql->query($query_prod);
                        
                        
$query_general_catalogo "SELECT * FROM producto_catalogos WHERE IDProducto_Catalogo = '" $row_prod['IDProducto_Catalogo'] . "'";
                        
$row_general_catalogo $mysql->query($query_general_catalogo);
                        
                        
$liga_demo_popup "index.php?id_seccion=" $id_seccion "&id_subseccion=" $id_subseccion "&IDProducto_Catalogo=" $row_catalogo['IDProducto_Catalogo'] . "&IDProducto_Producto=" $row_prod['IDProducto_Producto'] . "&agregado=" $row_catalogo['Nombre'];
    
?> 
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos
  #2 (permalink)  
Antiguo 24/11/2011, 13:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con la funcion shuffle

Es posible que la consulta no genere ningún resultado, y por lo tanto la variable que usas con shuffle() no existe.

Eso significa que dicho valor es NULL, procura declarar tus variables antes de usarlas.

Por ejemplo, si declaras dicha variable que se rellena en el while() antes del bucle, y la defines como array() te aseguro que no tendrás problemas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/11/2011, 18:48
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Problema con la funcion shuffle

Podrias ayudarme con un ejemplo, la verdad soy muy nuevo en esto
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos
  #4 (permalink)  
Antiguo 26/11/2011, 20:35
 
Fecha de Ingreso: noviembre-2011
Mensajes: 26
Antigüedad: 13 años
Puntos: 2
Respuesta: Problema con la funcion shuffle

Mira NULL significa que no tiene ningun valor, y si creas una variable que no tiene valor te daria error.Te voy a marcar las lineas donde puede estar el error.
Código PHP:
//De aca o anteriores
$query_productos "SELECT * FROM producto_productos WHERE IDProducto_Catalogo = '" $row_catalogo['IDProducto_Catalogo'] . "'";
        
$res_productos $mysql->query($query_productosfalse);
        while(
$row_productos mysql_fetch_array($res_productos)){
            
$arreglo_prod[] = $row_productos['IDProducto_Producto'];
        }
//Hasta aca

    ////    Esta es la lina 381
$arreglo_prod[] = shuffle($arreglo_prod);
//////////
        
$ultimo_prod array_pop($arreglo_prod);
        
$formacion_cat = ($row_catalogo['Formacion_catalogo'] == "Tipo4") ? 2;
        
$cuantos_prod_por_fila 3;

        if(
$totalRows_catalogo != 0){
            if(
$row_catalogo['Formacion_catalogo'] == "Tipo4"){
                for(
$i_cat 0$i_cat $cuantos_prod_por_fila$i_cat++){
                    if(
$arreglo_prod[$i_cat]){
                        
                        
$query_prod "SELECT * FROM producto_productos WHERE IDProducto_Producto = '" $arreglo_prod[$i_cat] . "'";
                        
$row_prod $mysql->query($query_prod);
                        
                        
$query_general_catalogo "SELECT * FROM producto_catalogos WHERE IDProducto_Catalogo = '" $row_prod['IDProducto_Catalogo'] . "'";
                        
$row_general_catalogo $mysql->query($query_general_catalogo);
                        
                        
$liga_demo_popup "index.php?id_seccion=" $id_seccion "&id_subseccion=" $id_subseccion "&IDProducto_Catalogo=" $row_catalogo['IDProducto_Catalogo'] . "&IDProducto_Producto=" $row_prod['IDProducto_Producto'] . "&agregado=" $row_catalogo['Nombre'];
    
?> 
Dame las lineas anteriores para saber si esta antes el error y no fijarnos tanto ahi.
Salu2 ultratutu9
  #5 (permalink)  
Antiguo 27/11/2011, 15:46
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Problema con la funcion shuffle

es un php de 1812 lineas, te lo mando adjunto o pego el codigo?
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos
  #6 (permalink)  
Antiguo 27/11/2011, 15:57
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: Problema con la funcion shuffle

Como ya te dijo Pateketrueke, es muy probable que la consulta no genere algún resultado, por consecuencia no entra al bucle y el array no es definido. Debes debugguear la consulta y ver si tira algún error.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #7 (permalink)  
Antiguo 27/11/2011, 17:35
 
Fecha de Ingreso: noviembre-2011
Mensajes: 26
Antigüedad: 13 años
Puntos: 2
Respuesta: Problema con la funcion shuffle

Mandamelo adjunto.

Salu2 ultratutu9
  #8 (permalink)  
Antiguo 27/11/2011, 20:13
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: Problema con la funcion shuffle

No puedo subir archivos adjuntos,

aki va un poko mas de codigo
Código PHP:
//////////////////////// Inicia la tabla de los catálogos ////////////////////////////////////
if(empty($IDProducto_Catalogo) && empty($comprar)){
if($totalRows_catalogo == 1){
    $query_brinco_catalogo = "SELECT * FROM producto_productos WHERE IDProducto_Catalogo = '$row_catalogo[IDProducto_Catalogo]'";
    $row_brinco_catalogo = $mysql->query($query_brinco_catalogo);
    $IDProducto_Catalogo = $row_brinco_catalogo['IDProducto_Catalogo'];
    if($row_catalogo['Redireccionar'] == "Si" && !empty($IDProducto_Catalogo)){
        $siguiente_paso = "index.php?id_seccion=$id_seccion&id_subseccion=$id_subseccion&IDProducto_Catalogo=$IDProducto_Catalogo";
        redirecciona($siguiente_paso);
    }
    $IDProducto_Catalogo = $_GET['IDProducto_Catalogo'];
}
?>
<script type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>

<table width="100%" border="0" align="center" cellspacing="5">
  <tr valign="top">
    <?php
  
do { // horizontal looper version 3
?>
    <td align="left">
    <?
        $query_productos 
"SELECT * FROM producto_productos WHERE IDProducto_Catalogo = '" $row_catalogo['IDProducto_Catalogo'] . "'";
        
$res_productos $mysql->query($query_productosfalse);
        while(
$row_productos mysql_fetch_array($res_productos)){
            
$arreglo_prod[] = $row_productos['IDProducto_Producto'];
        }
        
$arreglo_prod[] = shuffle($arreglo_prod);
        
$ultimo_prod array_pop($arreglo_prod);
        
$formacion_cat = ($row_catalogo['Formacion_catalogo'] == "Tipo4") ? 2;
        
$cuantos_prod_por_fila 3;

        if(
$totalRows_catalogo != 0){
            if(
$row_catalogo['Formacion_catalogo'] == "Tipo4"){
                for(
$i_cat 0$i_cat $cuantos_prod_por_fila$i_cat++){
                    if(
$arreglo_prod[$i_cat]){
                        
                        
$query_prod "SELECT * FROM producto_productos WHERE IDProducto_Producto = '" $arreglo_prod[$i_cat] . "'";
                        
$row_prod $mysql->query($query_prod);
                        
                        
$query_general_catalogo "SELECT * FROM producto_catalogos WHERE IDProducto_Catalogo = '" $row_prod['IDProducto_Catalogo'] . "'";
                        
$row_general_catalogo $mysql->query($query_general_catalogo);
                        
                        
$liga_demo_popup "index.php?id_seccion=" $id_seccion "&id_subseccion=" $id_subseccion "&IDProducto_Catalogo=" $row_catalogo['IDProducto_Catalogo'] . "&IDProducto_Producto=" $row_prod['IDProducto_Producto'] . "&agregado=" $row_catalogo['Nombre'];
    
?>
    <?
        
if($i_cat == 0){
    
?>
    <table width="100%" border="0" align="center" style="border-top:1px #ccc solid; height:40px;">
      <tr>
        <td align="left" class="fila_principal_titulo"><a class="titulo_promo_textos" href="index.php?id_seccion=<?=$id_seccion?>&amp;id_subseccion=<?=$id_subseccion?>&amp;IDProducto_Catalogo=<?=$row_catalogo['IDProducto_Catalogo']?>&amp;agregado=<? echo $row_catalogo['Nombre']; ?>"><?php echo $row_catalogo['Nombre']; ?></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a class="ver_mas" href="index.php?id_seccion=<?=$id_seccion?>&amp;id_subseccion=<?=$id_subseccion?>&amp;IDProducto_Catalogo=<?=$row_catalogo['IDProducto_Catalogo']?>&amp;agregado=<? echo $row_catalogo['Nombre']; ?>">Ver m&aacute;s &gt;&gt;</a></td>
      </tr>
    </table>
    <?
        
}
    
?>
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos

Etiquetas: funcion, html, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:18.