Tema para preguntas random a Chatgpt 🤖

  • Autor Autor Carlos Arreola
  • Fecha de inicio Fecha de inicio
Para asegurarte de que el código funcione correctamente y muestre al menos una foto, es importante tener claras las condiciones bajo las cuales se muestra cada foto. Puede que exista un problema en la lógica que hace que no se muestre la foto si solo hay una.

Vamos a revisar el código y ajustar las condiciones para que siempre muestre al menos una foto, incluso si solo hay una disponible.

### Código Ajustado

Aquí tienes un código revisado que garantiza que se muestre al menos una foto:

PHP:
if (!empty($fila['photo'])) {
    // Función para mostrar media
    function getMediaHtml($src, $id) {
        if (strpos($src, '.mp4') !== false) {
            return '<iframe id="sr'.$id.'" style="margin-left:10px;width:calc(100% - 20px);height:250px;" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
        }
        return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
    }

    // Mostrar la primera media (foto o video)
    echo getMediaHtml($fila['photo'], $fila['id']);

    // Mostrar la segunda media si existe
    if (!empty($fila['photo2'])) {
        echo getMediaHtml($fila['photo2'], $fila['id']);
    }

    // Mostrar la tercera media si existe
    if (!empty($fila['photo3'])) {
        echo getMediaHtml($fila['photo3'], $fila['id']);
    }
} elseif (!empty($fila['photo2'])) {
    // Si solo hay una segunda foto
    echo getMediaHtml($fila['photo2'], $fila['id']);
} elseif (!empty($fila['photo3'])) {
    // Si solo hay una tercera foto
    echo getMediaHtml($fila['photo3'], $fila['id']);
} else {
    // Si ninguna foto está disponible, se puede mostrar un mensaje alternativo
    echo '<p>No hay fotos disponibles.</p>';
}

### Cambios y Explicación:
1. Verificación de Fotos: La primera verificación es si $fila['photo'] no está vacía. Si hay una foto, se muestra.
2. Condiciones Ajustadas: Se añaden condiciones específicas para mostrar photo2 y photo3 por separado si solo estas están disponibles.
3. Mensaje Alternativo: Si no hay ninguna foto, se muestra un mensaje alternativo indicando que no hay fotos disponibles.

Con este ajuste, deberías poder mostrar al menos una foto sin problemas. Si la foto no se muestra, revisa que $fila['photo'], $fila['photo2'], y $fila['photo3'] contengan valores válidos. Si necesitas más ayuda, no dudes en decírmelo.
if (empty($fila['photo2']) and empty($fila['photo3']) and empty($fila['photo4']) and empty($fila['photo5'])) {

echo getMediaHtml($fila['photo'], $fila['id']);
}

como hago aqui para que verifique si en photo 2 3 4 5 estan en null?
 
if (empty($fila['photo2']) and empty($fila['photo3']) and empty($fila['photo4']) and empty($fila['photo5'])) {

echo getMediaHtml($fila['photo'], $fila['id']);
}

como hago aqui para que verifique si en photo 2 3 4 5 estan en null?
Para verificar si las fotos 2, 3, 4 y 5 están en null, puedes usar la función isset() o simplemente comprueba si están vacías con empty(). A continuación, te muestro cómo hacerlo con un enfoque más claro y limpio:

### Código Modificado

Puedes reescribir la condición de la siguiente manera utilizando empty():

PHP:
if (empty($fila['photo2']) && empty($fila['photo3']) && empty($fila['photo4']) && empty($fila['photo5'])) {
    echo getMediaHtml($fila['photo'], $fila['id']);
}

### Alternativa con isset()

Si deseas asegurarte de que las variables están definidas y no son null, puedes usar isset() así:

PHP:
if (!isset($fila['photo2']) && !isset($fila['photo3']) && !isset($fila['photo4']) && !isset($fila['photo5'])) {
    echo getMediaHtml($fila['photo'], $fila['id']);
}

### Explicación:

  • empty(): Devuelve true si la variable no está definida, es null, o está vacía (0, '' o false). Por lo tanto, es muy útil para verificar si las fotos están vacías o no.
  • isset(): Devuelve true si la variable está definida y no es null. Esto es útil si solo te interesa saber si las variables existen.

Ambas soluciones son válidas dependiendo del comportamiento que desees implementar. Si necesitas más detalles o deseas que se ajuste de alguna manera, ¡házmelo saber!
 
Para asegurarte de que el código funcione correctamente y muestre al menos una foto, es importante tener claras las condiciones bajo las cuales se muestra cada foto. Puede que exista un problema en la lógica que hace que no se muestre la foto si solo hay una.

Vamos a revisar el código y ajustar las condiciones para que siempre muestre al menos una foto, incluso si solo hay una disponible.

### Código Ajustado

Aquí tienes un código revisado que garantiza que se muestre al menos una foto:

PHP:
if (!empty($fila['photo'])) {
    // Función para mostrar media
    function getMediaHtml($src, $id) {
        if (strpos($src, '.mp4') !== false) {
            return '<iframe id="sr'.$id.'" style="margin-left:10px;width:calc(100% - 20px);height:250px;" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
        }
        return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
    }

    // Mostrar la primera media (foto o video)
    echo getMediaHtml($fila['photo'], $fila['id']);

    // Mostrar la segunda media si existe
    if (!empty($fila['photo2'])) {
        echo getMediaHtml($fila['photo2'], $fila['id']);
    }

    // Mostrar la tercera media si existe
    if (!empty($fila['photo3'])) {
        echo getMediaHtml($fila['photo3'], $fila['id']);
    }
} elseif (!empty($fila['photo2'])) {
    // Si solo hay una segunda foto
    echo getMediaHtml($fila['photo2'], $fila['id']);
} elseif (!empty($fila['photo3'])) {
    // Si solo hay una tercera foto
    echo getMediaHtml($fila['photo3'], $fila['id']);
} else {
    // Si ninguna foto está disponible, se puede mostrar un mensaje alternativo
    echo '<p>No hay fotos disponibles.</p>';
}

### Cambios y Explicación:
1. Verificación de Fotos: La primera verificación es si $fila['photo'] no está vacía. Si hay una foto, se muestra.
2. Condiciones Ajustadas: Se añaden condiciones específicas para mostrar photo2 y photo3 por separado si solo estas están disponibles.
3. Mensaje Alternativo: Si no hay ninguna foto, se muestra un mensaje alternativo indicando que no hay fotos disponibles.

Con este ajuste, deberías poder mostrar al menos una foto sin problemas. Si la foto no se muestra, revisa que $fila['photo'], $fila['photo2'], y $fila['photo3'] contengan valores válidos. Si necesitas más ayuda, no dudes en decírmelo.
aqui puedes hacer que cuente cuantas fotos o videos se encontraron?
 
aqui puedes hacer que cuente cuantas fotos o videos se encontraron?
¡Claro! Puedes modificar el código para contar cuántas fotos o videos se encontraron en las variables photo, photo2, photo3, etc. A continuación te muestro cómo hacerlo:

### Código Modificado con Contador

Aquí tienes el código actualizado que cuenta cuántas fotos o videos hay y muestra el total:

PHP:
// Inicializar contador
$totalMedia = 0;

// Función para mostrar media y contar
function getMediaHtml($src, $id) {
    global $totalMedia; // Acceder a la variable global para contar
    if (strpos($src, '.mp4') !== false) {
        $totalMedia++; // Incrementar contador si es un video
        return '<iframe id="sr'.$id.'" style="margin-left:10px;width:calc(100% - 20px);height:250px;" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
    } else {
        $totalMedia++; // Incrementar contador si es una imagen
        return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
    }
}

// Verificar y mostrar fotos/videos
if (!empty($fila['photo'])) {
    echo getMediaHtml($fila['photo'], $fila['id']);
}

if (!empty($fila['photo2'])) {
    echo getMediaHtml($fila['photo2'], $fila['id']);
}

if (!empty($fila['photo3'])) {
    echo getMediaHtml($fila['photo3'], $fila['id']);
}

// Mostrar total de fotos/videos encontradas
echo '<span class="polus">Total de fotos/videos: '.$totalMedia.'</span>';

### Explicación del Código:
1. Inicializar Contador: Se declara la variable $totalMedia antes de la función para contar cuántas fotos y videos hay en total.
2. Actualizar Contador en getMediaHtml(): Dentro de la función, incrementamos $totalMedia cada vez que se encuentra una foto o un video.
3. Mostrar Total: Después de mostrar todas las fotos y videos, se imprime el total encontrado.

Con este ajuste, podrás tener un conteo de cuántas fotos y videos se encontraron en total. Si necesitas más ayuda o ajustes, ¡házmelo saber!
 
¡Claro! Puedes modificar el código para contar cuántas fotos o videos se encontraron en las variables photo, photo2, photo3, etc. A continuación te muestro cómo hacerlo:

### Código Modificado con Contador

Aquí tienes el código actualizado que cuenta cuántas fotos o videos hay y muestra el total:

PHP:
// Inicializar contador
$totalMedia = 0;

// Función para mostrar media y contar
function getMediaHtml($src, $id) {
    global $totalMedia; // Acceder a la variable global para contar
    if (strpos($src, '.mp4') !== false) {
        $totalMedia++; // Incrementar contador si es un video
        return '<iframe id="sr'.$id.'" style="margin-left:10px;width:calc(100% - 20px);height:250px;" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
    } else {
        $totalMedia++; // Incrementar contador si es una imagen
        return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
    }
}

// Verificar y mostrar fotos/videos
if (!empty($fila['photo'])) {
    echo getMediaHtml($fila['photo'], $fila['id']);
}

if (!empty($fila['photo2'])) {
    echo getMediaHtml($fila['photo2'], $fila['id']);
}

if (!empty($fila['photo3'])) {
    echo getMediaHtml($fila['photo3'], $fila['id']);
}

// Mostrar total de fotos/videos encontradas
echo '<span class="polus">Total de fotos/videos: '.$totalMedia.'</span>';

### Explicación del Código:
1. Inicializar Contador: Se declara la variable $totalMedia antes de la función para contar cuántas fotos y videos hay en total.
2. Actualizar Contador en getMediaHtml(): Dentro de la función, incrementamos $totalMedia cada vez que se encuentra una foto o un video.
3. Mostrar Total: Después de mostrar todas las fotos y videos, se imprime el total encontrado.

Con este ajuste, podrás tener un conteo de cuántas fotos y videos se encontraron en total. Si necesitas más ayuda o ajustes, ¡házmelo saber!
me sale que consigue solo 3 cuando subo 5
 
me sale que consigue solo 3 cuando subo 5
Parece que el problema podría estar en cómo estás verificando y contando las fotos o videos. Asegúrate de que estás revisando todas las variables correspondientes (photo, photo2, photo3, etc.) para contar solo si están presentes y no vacías.

Aquí te dejo una versión revisada que asegura que se cuenten correctamente todas las fotos y videos:

### Código Revisado para Contar Fotos/Videos

PHP:
// Inicializar contador
$totalMedia = 0;

// Función para mostrar media y contar
function getMediaHtml($src, $id) {
    global $totalMedia; // Acceder a la variable global para contar
    if (strpos($src, '.mp4') !== false) {
        $totalMedia++; // Incrementar contador si es un video
        return '<iframe id="sr'.$id.'" style="margin-left:10px;width:calc(100% - 20px);height:250px;" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
    } else {
        $totalMedia++; // Incrementar contador si es una imagen
        return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
    }
}

// Mostrar media y contar
if (!empty($fila['photo'])) {
    echo getMediaHtml($fila['photo'], $fila['id']);
}

if (!empty($fila['photo2'])) {
    echo getMediaHtml($fila['photo2'], $fila['id']);
}

if (!empty($fila['photo3'])) {
    echo getMediaHtml($fila['photo3'], $fila['id']);
}

if (!empty($fila['photo4'])) { // Agregar verificación para photo4
    echo getMediaHtml($fila['photo4'], $fila['id']);
}

if (!empty($fila['photo5'])) { // Agregar verificación para photo5
    echo getMediaHtml($fila['photo5'], $fila['id']);
}

// Mostrar total de fotos/videos encontradas
echo '<span class="polus">Total de fotos/videos: '.$totalMedia.'</span>';

### Cambios Realizados:
1. Añadidas Condiciones para photo4 y photo5: Asegúrate de que verificas todas las fotos disponibles, incluyendo photo4 y photo5, para contar cada uno.
2. Conteo Aumentado: Incrementa $totalMedia cada vez que encuentres una foto o vídeo.

Con estos cambios, deberías poder ver el conteo correcto cuando subes múltiples fotos o videos. Si continúas teniendo problemas, te recomendaría verificar los valores de $fila['photo4'] y $fila['photo5'] para asegurarte de que realmente contienen los datos esperados. Si necesitas más asistencia, ¡avísame!
 
Parece que el problema podría estar en cómo estás verificando y contando las fotos o videos. Asegúrate de que estás revisando todas las variables correspondientes (photo, photo2, photo3, etc.) para contar solo si están presentes y no vacías.

Aquí te dejo una versión revisada que asegura que se cuenten correctamente todas las fotos y videos:

### Código Revisado para Contar Fotos/Videos

PHP:
// Inicializar contador
$totalMedia = 0;

// Función para mostrar media y contar
function getMediaHtml($src, $id) {
    global $totalMedia; // Acceder a la variable global para contar
    if (strpos($src, '.mp4') !== false) {
        $totalMedia++; // Incrementar contador si es un video
        return '<iframe id="sr'.$id.'" style="margin-left:10px;width:calc(100% - 20px);height:250px;" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
    } else {
        $totalMedia++; // Incrementar contador si es una imagen
        return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
    }
}

// Mostrar media y contar
if (!empty($fila['photo'])) {
    echo getMediaHtml($fila['photo'], $fila['id']);
}

if (!empty($fila['photo2'])) {
    echo getMediaHtml($fila['photo2'], $fila['id']);
}

if (!empty($fila['photo3'])) {
    echo getMediaHtml($fila['photo3'], $fila['id']);
}

if (!empty($fila['photo4'])) { // Agregar verificación para photo4
    echo getMediaHtml($fila['photo4'], $fila['id']);
}

if (!empty($fila['photo5'])) { // Agregar verificación para photo5
    echo getMediaHtml($fila['photo5'], $fila['id']);
}

// Mostrar total de fotos/videos encontradas
echo '<span class="polus">Total de fotos/videos: '.$totalMedia.'</span>';

### Cambios Realizados:
1. Añadidas Condiciones para photo4 y photo5: Asegúrate de que verificas todas las fotos disponibles, incluyendo photo4 y photo5, para contar cada uno.
2. Conteo Aumentado: Incrementa $totalMedia cada vez que encuentres una foto o vídeo.

Con estos cambios, deberías poder ver el conteo correcto cuando subes múltiples fotos o videos. Si continúas teniendo problemas, te recomendaría verificar los valores de $fila['photo4'] y $fila['photo5'] para asegurarte de que realmente contienen los datos esperados. Si necesitas más asistencia, ¡avísame!
if(!empty($fila['photo'])){
// Función para mostrar media
$totalMedia = 0;
if (!function_exists('getMediaHtml')) {
function getMediaHtml($src, $id) {
global $totalMedia;
if (strpos($src, '.mp4') !== false) {
$totalMedia++;
return '<iframe id="sr'.$id.'" class="tenph01" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
}else{
$totalMedia++;
return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
}
}
}
if (empty($fila['photo2']) and empty($fila['photo3']) and empty($fila['photo4']) and empty($fila['photo5']) and empty($fila['photo6']) and empty($fila['photo7']) and empty($fila['photo8']) and empty($fila['photo9']) and empty($fila['photo10']) and empty($fila['photo11']) and empty($fila['photo12']) and empty($fila['photo13']) and empty($fila['photo14']) and empty($fila['photo15']) and empty($fila['photo16']) and empty($fila['photo17']) and empty($fila['photo18']) and empty($fila['photo19']) and empty($fila['photo20'])){
echo '<span style="float:left;width:100%;justify-content:center;display:flex;">'.getMediaHtml($fila['photo'], $fila['id']).'</span>';
}else{
echo getMediaHtml($fila['photo'], $fila['id']);
}
if (!empty($fila['photo2'])) {
echo getMediaHtml($fila['photo2'], $fila['id']);
}
if (!empty($fila['photo3'])) {
echo getMediaHtml($fila['photo3'], $fila['id']);
}
if (!empty($fila['photo4'])) {
if (!empty($fila['photo5'])) {
echo '<span style="margin-left:10px;width:calc(50% - 15px);height:200px;position:relative;float:left;background:red;">';
if($fila['photo4'] == true and strpos($fila['photo4'], '.mp4')){
echo '<iframe id="sr'.$fila['id'].'" class="tenph01" frameborder="0px" scrolling="no" allowfullscreen src="../iframe.php?view='.$fila['id'].'"></iframe>';
}else{
echo '<img loading="lazy" src="'.$fila['photo4'].'" class="tenph01 cora" style="position:absolute;margin-left:0px;width:100%;height:100%;" />';
}
echo '<span style="z-index:1;position:absolute;top:0px;background:rgba(0,0,0,0.5);justify-content:center;align-items:center;display:flex;left:0px;width:100%;height:100%;color:gold;font:20px arial, tahoma;font-weight:bold;" class="pointboss">+'.$totalMedia.'</span>
</span>';
}else{
echo getMediaHtml($fila['photo4'], $fila['id']);
}

}
}

deja el codigo tal cual, solo arregla el contador
 
if(!empty($fila['photo'])){
// Función para mostrar media
$totalMedia = 0;
if (!function_exists('getMediaHtml')) {
function getMediaHtml($src, $id) {
global $totalMedia;
if (strpos($src, '.mp4') !== false) {
$totalMedia++;
return '<iframe id="sr'.$id.'" class="tenph01" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
}else{
$totalMedia++;
return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
}
}
}
if (empty($fila['photo2']) and empty($fila['photo3']) and empty($fila['photo4']) and empty($fila['photo5']) and empty($fila['photo6']) and empty($fila['photo7']) and empty($fila['photo8']) and empty($fila['photo9']) and empty($fila['photo10']) and empty($fila['photo11']) and empty($fila['photo12']) and empty($fila['photo13']) and empty($fila['photo14']) and empty($fila['photo15']) and empty($fila['photo16']) and empty($fila['photo17']) and empty($fila['photo18']) and empty($fila['photo19']) and empty($fila['photo20'])){
echo '<span style="float:left;width:100%;justify-content:center;display:flex;">'.getMediaHtml($fila['photo'], $fila['id']).'</span>';
}else{
echo getMediaHtml($fila['photo'], $fila['id']);
}
if (!empty($fila['photo2'])) {
echo getMediaHtml($fila['photo2'], $fila['id']);
}
if (!empty($fila['photo3'])) {
echo getMediaHtml($fila['photo3'], $fila['id']);
}
if (!empty($fila['photo4'])) {
if (!empty($fila['photo5'])) {
echo '<span style="margin-left:10px;width:calc(50% - 15px);height:200px;position:relative;float:left;background:red;">';
if($fila['photo4'] == true and strpos($fila['photo4'], '.mp4')){
echo '<iframe id="sr'.$fila['id'].'" class="tenph01" frameborder="0px" scrolling="no" allowfullscreen src="../iframe.php?view='.$fila['id'].'"></iframe>';
}else{
echo '<img loading="lazy" src="'.$fila['photo4'].'" class="tenph01 cora" style="position:absolute;margin-left:0px;width:100%;height:100%;" />';
}
echo '<span style="z-index:1;position:absolute;top:0px;background:rgba(0,0,0,0.5);justify-content:center;align-items:center;display:flex;left:0px;width:100%;height:100%;color:gold;font:20px arial, tahoma;font-weight:bold;" class="pointboss">+'.$totalMedia.'</span>
</span>';
}else{
echo getMediaHtml($fila['photo4'], $fila['id']);
}

}
}

deja el codigo tal cual, solo arregla el contador
Para corregir el contador en tu código, debes asegurarte de que la variable $totalMedia se inicialice fuera de la función y que se cuente correctamente cada vez que se llame a getMediaHtml(). Además, debes asegurarte de que la función se declare antes de usarla para que el acceso a la variable global funcione adecuadamente.

Aquí tienes el código ajustado para corregir el contador:

### Código Ajustado

PHP:
// Inicializar contador fuera de la función
$totalMedia = 0;

// Función para mostrar media
if (!function_exists('getMediaHtml')) {
    function getMediaHtml($src, $id) {
        global $totalMedia; // Acceder a la variable global
        if (strpos($src, '.mp4') !== false) {
            $totalMedia++; // Incrementar contador si es un video
            return '<iframe id="sr'.$id.'" class="tenph01" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
        } else {
            $totalMedia++; // Incrementar contador si es una imagen
            return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
        }
    }
}

if (!empty($fila['photo'])) {
    // Verifica si no hay otras fotos
    if (empty($fila['photo2']) && empty($fila['photo3']) && empty($fila['photo4']) && 
        empty($fila['photo5']) && empty($fila['photo6']) && empty($fila['photo7']) &&
        empty($fila['photo8']) && empty($fila['photo9']) && empty($fila['photo10']) &&
        empty($fila['photo11']) && empty($fila['photo12']) && empty($fila['photo13']) &&
        empty($fila['photo14']) && empty($fila['photo15']) && empty($fila['photo16']) &&
        empty($fila['photo17']) && empty($fila['photo18']) && empty($fila['photo19']) &&
        empty($fila['photo20'])) {

        echo '<span style="float:left;width:100%;justify-content:center;display:flex;">' . getMediaHtml($fila['photo'], $fila['id']) . '</span>';
    } else {
        echo getMediaHtml($fila['photo'], $fila['id']);
    }

    // Contar fotos adicionales
    if (!empty($fila['photo2'])) {
        echo getMediaHtml($fila['photo2'], $fila['id']);
    }
    if (!empty($fila['photo3'])) {
        echo getMediaHtml($fila['photo3'], $fila['id']);
    }
    if (!empty($fila['photo4'])) {
        if (!empty($fila['photo5'])) {
            echo '<span style="margin-left:10px;width:calc(50% - 15px);height:200px;position:relative;float:left;background:red;">';
            echo getMediaHtml($fila['photo4'], $fila['id']);
            echo '<span style="z-index:1;position:absolute;top:0px;background:rgba(0,0,0,0.5);justify-content:center;align-items:center;display:flex;left:0px;width:100%;height:100%;color:gold;font:20px arial, tahoma;font-weight:bold;" class="pointboss">+' . $totalMedia . '</span>
                </span>';
        } else {
            echo getMediaHtml($fila['photo4'], $fila['id']);
        }
    }
}

### Ajustes Realizados:
1. Inicialización de $totalMedia: Ahora se inicializa $totalMedia antes de la función para que guarde su valor correctamente.
2. Acceso Correcto a la Variable Global: La función getMediaHtml() ahora tiene acceso a la variable global $totalMedia correctamente una vez que se inicializa antes de su uso.
3. Incremento del Contador: Verificamos si se trata de un video o imagen y se incrementa el contador adecuadamente.

Con estos ajustes, tu contador de fotos y videos ahora debería funcionar correctamente y mostrar el total adecuado. Si tienes más preguntas o necesitas más asistencia, ¡házmelo saber!
 
Para corregir el contador en tu código, debes asegurarte de que la variable $totalMedia se inicialice fuera de la función y que se cuente correctamente cada vez que se llame a getMediaHtml(). Además, debes asegurarte de que la función se declare antes de usarla para que el acceso a la variable global funcione adecuadamente.

Aquí tienes el código ajustado para corregir el contador:

### Código Ajustado

PHP:
// Inicializar contador fuera de la función
$totalMedia = 0;

// Función para mostrar media
if (!function_exists('getMediaHtml')) {
    function getMediaHtml($src, $id) {
        global $totalMedia; // Acceder a la variable global
        if (strpos($src, '.mp4') !== false) {
            $totalMedia++; // Incrementar contador si es un video
            return '<iframe id="sr'.$id.'" class="tenph01" frameborder="0" scrolling="no" allowfullscreen src="../iframe.php?view='.$id.'"></iframe>';
        } else {
            $totalMedia++; // Incrementar contador si es una imagen
            return '<img loading="lazy" src="'.$src.'" class="tenph01 cora" />';
        }
    }
}

if (!empty($fila['photo'])) {
    // Verifica si no hay otras fotos
    if (empty($fila['photo2']) && empty($fila['photo3']) && empty($fila['photo4']) &&
        empty($fila['photo5']) && empty($fila['photo6']) && empty($fila['photo7']) &&
        empty($fila['photo8']) && empty($fila['photo9']) && empty($fila['photo10']) &&
        empty($fila['photo11']) && empty($fila['photo12']) && empty($fila['photo13']) &&
        empty($fila['photo14']) && empty($fila['photo15']) && empty($fila['photo16']) &&
        empty($fila['photo17']) && empty($fila['photo18']) && empty($fila['photo19']) &&
        empty($fila['photo20'])) {

        echo '<span style="float:left;width:100%;justify-content:center;display:flex;">' . getMediaHtml($fila['photo'], $fila['id']) . '</span>';
    } else {
        echo getMediaHtml($fila['photo'], $fila['id']);
    }

    // Contar fotos adicionales
    if (!empty($fila['photo2'])) {
        echo getMediaHtml($fila['photo2'], $fila['id']);
    }
    if (!empty($fila['photo3'])) {
        echo getMediaHtml($fila['photo3'], $fila['id']);
    }
    if (!empty($fila['photo4'])) {
        if (!empty($fila['photo5'])) {
            echo '<span style="margin-left:10px;width:calc(50% - 15px);height:200px;position:relative;float:left;background:red;">';
            echo getMediaHtml($fila['photo4'], $fila['id']);
            echo '<span style="z-index:1;position:absolute;top:0px;background:rgba(0,0,0,0.5);justify-content:center;align-items:center;display:flex;left:0px;width:100%;height:100%;color:gold;font:20px arial, tahoma;font-weight:bold;" class="pointboss">+' . $totalMedia . '</span>
                </span>';
        } else {
            echo getMediaHtml($fila['photo4'], $fila['id']);
        }
    }
}

### Ajustes Realizados:
1. Inicialización de $totalMedia: Ahora se inicializa $totalMedia antes de la función para que guarde su valor correctamente.
2. Acceso Correcto a la Variable Global: La función getMediaHtml() ahora tiene acceso a la variable global $totalMedia correctamente una vez que se inicializa antes de su uso.
3. Incremento del Contador: Verificamos si se trata de un video o imagen y se incrementa el contador adecuadamente.

Con estos ajustes, tu contador de fotos y videos ahora debería funcionar correctamente y mostrar el total adecuado. Si tienes más preguntas o necesitas más asistencia, ¡házmelo saber!
$querimads = mysqli_query($conexion, "SELECT *, (CASE WHEN photo5 != '' THEN 1 ELSE 0 END + CASE WHEN photo6 != '' THEN 1 ELSE 0 END + CASE WHEN photo7 != '' THEN 1 ELSE 0 END + CASE WHEN photo8 != '' THEN 1 ELSE 0 END + CASE WHEN photo9 != '' THEN 1 ELSE 0 END + CASE WHEN photo10 != '' THEN 1 ELSE 0 END + CASE WHEN photo11 != '' THEN 1 ELSE 0 END + CASE WHEN photo12 != '' THEN 1 ELSE 0 END + CASE WHEN photo13 != '' THEN 1 ELSE 0 END + CASE WHEN photo14 != '' THEN 1 ELSE 0 END + CASE WHEN photo15 != '' THEN 1 ELSE 0 END + CASE WHEN photo16 != '' THEN 1 ELSE 0 END + CASE WHEN photo17 != '' THEN 1 ELSE 0 END + CASE WHEN photo18 != '' THEN 1 ELSE 0 END + CASE WHEN photo19 != '' THEN 1 ELSE 0 END + CASE WHEN photo20 != '' THEN 1 ELSE 0 END) AS photo_count FROM posters WHERE username='" . $_GET['u'] . "' AND (photo5 != '' OR photo6 != '' OR photo7 != '' OR photo8 != '' OR photo9 != '' OR photo10 != '' OR photo11 != '' OR photo12 != '' OR photo13 != '' OR photo14 != '' OR photo15 != '' OR photo16 != '' OR photo17 != '' OR photo18 != '' OR photo19 != '' OR photo20 != '') ORDER BY id DESC");
$totalPhotos = 0;
while($row = mysqli_fetch_assoc($querimads)){
$totalPhotos += $row['photo_count'];
}
este codigo esta bien?
 
$querimads = mysqli_query($conexion, "SELECT *, (CASE WHEN photo5 != '' THEN 1 ELSE 0 END + CASE WHEN photo6 != '' THEN 1 ELSE 0 END + CASE WHEN photo7 != '' THEN 1 ELSE 0 END + CASE WHEN photo8 != '' THEN 1 ELSE 0 END + CASE WHEN photo9 != '' THEN 1 ELSE 0 END + CASE WHEN photo10 != '' THEN 1 ELSE 0 END + CASE WHEN photo11 != '' THEN 1 ELSE 0 END + CASE WHEN photo12 != '' THEN 1 ELSE 0 END + CASE WHEN photo13 != '' THEN 1 ELSE 0 END + CASE WHEN photo14 != '' THEN 1 ELSE 0 END + CASE WHEN photo15 != '' THEN 1 ELSE 0 END + CASE WHEN photo16 != '' THEN 1 ELSE 0 END + CASE WHEN photo17 != '' THEN 1 ELSE 0 END + CASE WHEN photo18 != '' THEN 1 ELSE 0 END + CASE WHEN photo19 != '' THEN 1 ELSE 0 END + CASE WHEN photo20 != '' THEN 1 ELSE 0 END) AS photo_count FROM posters WHERE username='" . $_GET['u'] . "' AND (photo5 != '' OR photo6 != '' OR photo7 != '' OR photo8 != '' OR photo9 != '' OR photo10 != '' OR photo11 != '' OR photo12 != '' OR photo13 != '' OR photo14 != '' OR photo15 != '' OR photo16 != '' OR photo17 != '' OR photo18 != '' OR photo19 != '' OR photo20 != '') ORDER BY id DESC");
$totalPhotos = 0;
while($row = mysqli_fetch_assoc($querimads)){
$totalPhotos += $row['photo_count'];
}
este codigo esta bien?
Tu código parece estar en su mayoría correcto, pero aquí hay algunos puntos que puedes considerar mejorar o corregir:

1. Consulta SQL: El uso de CASE es adecuado para contar cuántas fotos no están vacías, pero podrías simplificar un poco el conteo utilizando la función COUNT en combinación con NULLIF que convierte los valores vacíos a NULL para que COUNT sólo cuente los valores no nulos.

2. Validación de la Entrada: Asegúrate de que estás validando adecuadamente la entrada de $_GET['u'] para prevenir inyecciones SQL. Considera usar declaraciones preparadas en lugar de concatenar la cadena de consulta.

3. Contabilización de Fotos: Actualmente, estás sumando photo_count en un bucle. Si solo necesitas el total y no realizar acciones por cada fila (en caso de que esperes más de una fila), puedes obtenerlo directamente de la consulta.

Aquí tienes una versión ajustada del código:

### Código Mejorado

PHP:
// Conexión a la base de datos - Asegúrate de establecer la conexión antes de usarla

// Validación de entrada
$username = mysqli_real_escape_string($conexion, $_GET['u']);

// Consulta SQL mejorada
$querimads = mysqli_query($conexion, "
    SELECT 
        COUNT(NULLIF(photo5, '')) +
        COUNT(NULLIF(photo6, '')) +
        COUNT(NULLIF(photo7, '')) +
        COUNT(NULLIF(photo8, '')) +
        COUNT(NULLIF(photo9, '')) +
        COUNT(NULLIF(photo10, '')) +
        COUNT(NULLIF(photo11, '')) +
        COUNT(NULLIF(photo12, '')) +
        COUNT(NULLIF(photo13, '')) +
        COUNT(NULLIF(photo14, '')) +
        COUNT(NULLIF(photo15, '')) +
        COUNT(NULLIF(photo16, '')) +
        COUNT(NULLIF(photo17, '')) +
        COUNT(NULLIF(photo18, '')) +
        COUNT(NULLIF(photo19, '')) +
        COUNT(NULLIF(photo20, '')) AS photo_count 
    FROM posters 
    WHERE username='$username' AND (
        photo5 != '' OR photo6 != '' OR photo7 != '' OR photo8 != '' OR 
        photo9 != '' OR photo10 != '' OR photo11 != '' OR photo12 != '' OR 
        photo13 != '' OR photo14 != '' OR photo15 != '' OR photo16 != '' OR 
        photo17 != '' OR photo18 != '' OR photo19 != '' OR photo20 != ''
    )
    ORDER BY id DESC
");

// Verificar si la consulta fue exitosa
if ($querimads) {
    $row = mysqli_fetch_assoc($querimads);
    $totalPhotos = $row['photo_count'];
} else {
    // Manejo de errores si la consulta falla
    $totalPhotos = 0; // O algún valor que consideres apropiado
}

### Notas:
  • Uso de NULLIF: Convierte el valor vacío en NULL, lo cual permite que COUNT ignore esos valores.
  • Prevención de Inyección SQL: Uso de mysqli_real_escape_string() para proteger la variable del usuario.
  • Error Handling: Se incluye una verificación para ver si la consulta se realizó correctamente y se maneja de acuerdo a eso.

Esta versión debería funcionar de manera más eficiente y segura. Si tienes más preguntas o necesitas más ajustes, ¡házmelo saber!
 
Atrás
Arriba