
Puko
Dseda
Verificación en dos pasos activada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
cuando busco y luego borro, aparece toda la lista
Para evitar que toda la lista aparezca cuando borras el texto del campo de búsqueda, necesitarás agregar una comprobación para que el contenedor de resultados esté vacío si no hay texto en el input. Aquí está la corrección en el JavaScript:cuando busco y luego borro, aparece toda la lista
<script>
const data = [
{ nombre: "Manzana", imagen: "https://via.placeholder.com/50?text=A", url: "https://example.com/manzana" },
{ nombre: "Banana", imagen: "https://via.placeholder.com/50?text=B", url: "https://example.com/banana" },
{ nombre: "Uva", imagen: "https://via.placeholder.com/50?text=U", url: "https://example.com/uva" },
{ nombre: "Pera", imagen: "https://via.placeholder.com/50?text=P", url: "https://example.com/pera" },
{ nombre: "Durazno", imagen: "https://via.placeholder.com/50?text=D", url: "https://example.com/durazno" },
];
const searchInput = document.getElementById('search');
const resultsContainer = document.getElementById('results');
searchInput.addEventListener('input', function() {
const query = this.value.toLowerCase();
resultsContainer.innerHTML = '';
if (query === '') {
return; // Si el input está vacío, no hacemos nada y salimos de la función
}
const filteredData = data.filter(item => item.nombre.toLowerCase().includes(query));
filteredData.forEach(item => {
const div = document.createElement('div');
div.classList.add('item');
div.innerHTML = `
<img src="${item.imagen}" alt="${item.nombre}">
<div>
<strong>${item.nombre}</strong><br>
<a href="${item.url}" target="_blank">${item.url}</a>
</div>`;
resultsContainer.appendChild(div);
});
});
</script>
javascript
if (query === '') {
return; // Si el input está vacío, no hacemos nada y salimos de la función
}
$directorio = './upload';Para evitar que toda la lista aparezca cuando borras el texto del campo de búsqueda, necesitarás agregar una comprobación para que el contenedor de resultados esté vacío si no hay texto en el input. Aquí está la corrección en el JavaScript:
### JavaScript Corregido
Reemplaza la sección de JavaScript en el código anterior con lo siguiente:
JavaScript:<script> const data = [ { nombre: "Manzana", imagen: "https://via.placeholder.com/50?text=A", url: "https://example.com/manzana" }, { nombre: "Banana", imagen: "https://via.placeholder.com/50?text=B", url: "https://example.com/banana" }, { nombre: "Uva", imagen: "https://via.placeholder.com/50?text=U", url: "https://example.com/uva" }, { nombre: "Pera", imagen: "https://via.placeholder.com/50?text=P", url: "https://example.com/pera" }, { nombre: "Durazno", imagen: "https://via.placeholder.com/50?text=D", url: "https://example.com/durazno" }, ]; const searchInput = document.getElementById('search'); const resultsContainer = document.getElementById('results'); searchInput.addEventListener('input', function() { const query = this.value.toLowerCase(); resultsContainer.innerHTML = ''; if (query === '') { return; // Si el input está vacío, no hacemos nada y salimos de la función } const filteredData = data.filter(item => item.nombre.toLowerCase().includes(query)); filteredData.forEach(item => { const div = document.createElement('div'); div.classList.add('item'); div.innerHTML = ` <img src="${item.imagen}" alt="${item.nombre}"> <div> <strong>${item.nombre}</strong><br> <a href="${item.url}" target="_blank">${item.url}</a> </div>`; resultsContainer.appendChild(div); }); }); </script>
### ¿Qué Cambié?
1. Condición para el Input Vacío:
- Añadí una comprobación para salir de la función si el campo de búsqueda está vacío:
Insertar CODE, HTML o PHP:javascript if (query === '') { return; // Si el input está vacío, no hacemos nada y salimos de la función }
Con esta modificación, cuando el usuario borra el texto del campo de búsqueda, no aparecerá la lista completa; el contenedor de resultados se mantendrá vacío. ¡Inténtalo y verifica que funcione como deseas!
Para garantizar que siempre se muestren los últimos tres videos encontrados, independientemente de si hay nombres en$directorio = './upload';
$archivos = glob($directorio . '/*.mp4');
if(empty($_GET['renaem'])){
usort($archivos, function($a, $b) {
return filemtime($b) - filemtime($a);
});
$ultimos_archivos = array_slice($archivos, 0, 3);
foreach($ultimos_archivos as $archivo){
$nombre_archivo = 'upload/' . basename($archivo);
$stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM video WHERE newmodevideo = ?");
mysqli_stmt_bind_param($stmt, 's', $nombre_archivo);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $existe);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
if($existe == 0){
echo '<span class="polus">'.$nombre_archivo.' <a style="float:right;text-decoration:none;" href="../s?ain=true&renaem='.$archivo.'">Editar</a></span>';
}else{
echo '<span class="polus">No se encontro ningun video</span>';
}
}
}
aqui como hago para que me muestre siempre los ultimos 3 videos encontrados?
$_GET['renaem']
, necesitas realizar una verificación y asegurarte de que la lógica que recupera y muestra los videos no esté restringida por ninguna otra condición. upload
:$directorio = './upload';
$archivos = glob($directorio . '/*.mp4');
// Ordenar archivos por fecha de modificación
usort($archivos, function($a, $b) {
return filemtime($b) - filemtime($a);
});
// Obtener los últimos tres archivos
$ultimos_archivos = array_slice($archivos, 0, 3);
if (empty($ultimos_archivos)) {
echo '<span class="polus">No se encontraron videos.</span>';
} else {
foreach ($ultimos_archivos as $archivo) {
$nombre_archivo = 'upload/' . basename($archivo);
// Preparar consulta para verificar si el video existe
$stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM video WHERE newmodevideo = ?");
mysqli_stmt_bind_param($stmt, 's', $nombre_archivo);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $existe);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
// Mostrar el archivo y la opción de editar
if ($existe == 0) {
echo '<span class="polus">' . $nombre_archivo . ' <a style="float:right;text-decoration:none;" href="../s?ain=true&renaem=' . $archivo . '">Editar</a></span>';
} else {
echo '<span class="polus">El video ya existe en la base de datos.</span>';
}
}
}
if(empty($_GET['renaem']))
: Esto permite que se ejecute la lógica de mostrar los últimos tres videos sin depender de la existencia del parámetro renaem
.array_slice
devuelve algún resultado. Si no se encontraron videos, muestra un mensaje correspondiente.upload
, independientemente de otros parámetros. ¡Espero que esto te ayude!pero esto siempre me muestra los ultimos 3 que no tengan newmodevideo verdad?Para garantizar que siempre se muestren los últimos tres videos encontrados, independientemente de si hay nombres en$_GET['renaem']
, necesitas realizar una verificación y asegurarte de que la lógica que recupera y muestra los videos no esté restringida por ninguna otra condición.
Aquí te dejo el código ajustado para asegurarte de que siempre se muestran los últimos tres videos de la carpetaupload
:
### Código Ajustado
PHP:$directorio = './upload'; $archivos = glob($directorio . '/*.mp4'); // Ordenar archivos por fecha de modificación usort($archivos, function($a, $b) { return filemtime($b) - filemtime($a); }); // Obtener los últimos tres archivos $ultimos_archivos = array_slice($archivos, 0, 3); if (empty($ultimos_archivos)) { echo '<span class="polus">No se encontraron videos.</span>'; } else { foreach ($ultimos_archivos as $archivo) { $nombre_archivo = 'upload/' . basename($archivo); // Preparar consulta para verificar si el video existe $stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM video WHERE newmodevideo = ?"); mysqli_stmt_bind_param($stmt, 's', $nombre_archivo); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $existe); mysqli_stmt_fetch($stmt); mysqli_stmt_close($stmt); // Mostrar el archivo y la opción de editar if ($existe == 0) { echo '<span class="polus">' . $nombre_archivo . ' <a style="float:right;text-decoration:none;" href="../s?ain=true&renaem=' . $archivo . '">Editar</a></span>'; } else { echo '<span class="polus">El video ya existe en la base de datos.</span>'; } } }
### ¿Qué Cambié?
1. Eliminé la condiciónif(empty($_GET['renaem']))
: Esto permite que se ejecute la lógica de mostrar los últimos tres videos sin depender de la existencia del parámetrorenaem
.
2. Verificación de Archivos Vacíos: Se agregó una comprobación para determinar siarray_slice
devuelve algún resultado. Si no se encontraron videos, muestra un mensaje correspondiente.
Con estos cambios, tu script siempre mostrará los últimos tres videos encontrados en la carpetaupload
, independientemente de otros parámetros. ¡Espero que esto te ayude!
Tienes razón. El código proporcionado solo mostrará los últimos tres videos que no existan en la base de datos (basados en la verificación depero esto siempre me muestra los ultimos 3 que no tengan newmodevideo verdad?
newmodevideo
). Si deseas mostrar siempre los últimos tres videos, independientemente de si existen en la base de datos o no, puedes modificar el código.$directorio = './upload';
$archivos = glob($directorio . '/*.mp4');
// Ordenar archivos por fecha de modificación
usort($archivos, function($a, $b) {
return filemtime($b) - filemtime($a);
});
// Obtener los últimos tres archivos
$ultimos_archivos = array_slice($archivos, 0, 3);
if (empty($ultimos_archivos)) {
echo '<span class="polus">No se encontraron videos.</span>';
} else {
foreach ($ultimos_archivos as $archivo) {
$nombre_archivo = 'upload/' . basename($archivo);
// Mostrar el archivo sin importar la existencia en la base de datos
echo '<span class="polus">' . $nombre_archivo . ' <a style="float:right;text-decoration:none;" href="../s?ain=true&renaem=' . $archivo . '">Editar</a></span>';
// Preparar consulta para verificar si el video existe (opcional)
$stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM video WHERE newmodevideo = ?");
mysqli_stmt_bind_param($stmt, 's', $nombre_archivo);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $existe);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
if ($existe > 0) {
echo '<span class="polus">El video ya existe en la base de datos.</span>';
}
}
}
upload
, sin restringirlos por su existencia en la base de datos. ¡Espero que esto sea lo que buscas!has que solo se muestre el video solo si no esten en la base de datosTienes razón. El código proporcionado solo mostrará los últimos tres videos que no existan en la base de datos (basados en la verificación denewmodevideo
). Si deseas mostrar siempre los últimos tres videos, independientemente de si existen en la base de datos o no, puedes modificar el código.
### Ajuste para Mostrar Siempre los Últimos 3 Videos
Aquí tienes una versión ajustada del código que siempre mostrará los últimos tres videos, sin importar si tienen o no una entrada en la base de datos:
PHP:$directorio = './upload'; $archivos = glob($directorio . '/*.mp4'); // Ordenar archivos por fecha de modificación usort($archivos, function($a, $b) { return filemtime($b) - filemtime($a); }); // Obtener los últimos tres archivos $ultimos_archivos = array_slice($archivos, 0, 3); if (empty($ultimos_archivos)) { echo '<span class="polus">No se encontraron videos.</span>'; } else { foreach ($ultimos_archivos as $archivo) { $nombre_archivo = 'upload/' . basename($archivo); // Mostrar el archivo sin importar la existencia en la base de datos echo '<span class="polus">' . $nombre_archivo . ' <a style="float:right;text-decoration:none;" href="../s?ain=true&renaem=' . $archivo . '">Editar</a></span>'; // Preparar consulta para verificar si el video existe (opcional) $stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM video WHERE newmodevideo = ?"); mysqli_stmt_bind_param($stmt, 's', $nombre_archivo); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $existe); mysqli_stmt_fetch($stmt); mysqli_stmt_close($stmt); if ($existe > 0) { echo '<span class="polus">El video ya existe en la base de datos.</span>'; } } }
### ¿Qué Cambié?
1. Mostrar Siempre los Videos: Ahora, el código simplemente imprime los últimos tres videos independientemente de si existen en la base de datos.
2. Verificación Opcional: La consulta que verifica si el video existe en la base de datos se mantiene, pero la salida relacionada solo se muestra opcionalmente.
Con estos cambios, deberías ver siempre los últimos tres videos desde el directorioupload
, sin restringirlos por su existencia en la base de datos. ¡Espero que esto sea lo que buscas!
Para mostrar solo los últimos tres videos de la carpeta "upload" si no están en la base de datos, debes añadir la lógica para filtrar los videos que ya existen en la tabla correspondiente. Aquí tienes el código ajustado para hacer eso:has que solo se muestre el video solo si no esten en la base de datos
$directorio = './upload';
$archivos = glob($directorio . '/*.mp4');
// Ordenar archivos por fecha de modificación
usort($archivos, function($a, $b) {
return filemtime($b) - filemtime($a);
});
// Obtener los últimos tres archivos
$ultimos_archivos = array_slice($archivos, 0, 3);
if (empty($ultimos_archivos)) {
echo '<span class="polus">No se encontraron videos.</span>';
} else {
foreach ($ultimos_archivos as $archivo) {
$nombre_archivo = 'upload/' . basename($archivo);
// Preparar consulta para verificar si el video existe en la base de datos
$stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM video WHERE newmodevideo = ?");
mysqli_stmt_bind_param($stmt, 's', $nombre_archivo);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $existe);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
// Mostrar el archivo solo si no existe en la base de datos
if ($existe == 0) {
echo '<span class="polus">' . $nombre_archivo . ' <a style="float:right;text-decoration:none;" href="../s?ain=true&renaem=' . $archivo . '">Editar</a></span>';
}
}
}
$existe == 0
).usort($archivos, function($a, $b) {Para mostrar solo los últimos tres videos de la carpeta "upload" si no están en la base de datos, debes añadir la lógica para filtrar los videos que ya existen en la tabla correspondiente. Aquí tienes el código ajustado para hacer eso:
### Código Ajustado
PHP:$directorio = './upload'; $archivos = glob($directorio . '/*.mp4'); // Ordenar archivos por fecha de modificación usort($archivos, function($a, $b) { return filemtime($b) - filemtime($a); }); // Obtener los últimos tres archivos $ultimos_archivos = array_slice($archivos, 0, 3); if (empty($ultimos_archivos)) { echo '<span class="polus">No se encontraron videos.</span>'; } else { foreach ($ultimos_archivos as $archivo) { $nombre_archivo = 'upload/' . basename($archivo); // Preparar consulta para verificar si el video existe en la base de datos $stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM video WHERE newmodevideo = ?"); mysqli_stmt_bind_param($stmt, 's', $nombre_archivo); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $existe); mysqli_stmt_fetch($stmt); mysqli_stmt_close($stmt); // Mostrar el archivo solo si no existe en la base de datos if ($existe == 0) { echo '<span class="polus">' . $nombre_archivo . ' <a style="float:right;text-decoration:none;" href="../s?ain=true&renaem=' . $archivo . '">Editar</a></span>'; } } }
### ¿Qué Hace Este Código?
1. Ordenación y Filtrado: Ordena los archivos MP4 según su fecha de modificación y selecciona los últimos tres.
2. Comprobación de Existencia en la Base de Datos: Para cada uno de los últimos archivos, utiliza una consulta para contar cuántas veces el video se encuentra en la base de datos.
3. Mostrar Solo Videos No Existentes: Solo se imprime el nombre del archivo y el enlace de edición si el video no existe en la base de datos (si$existe == 0
).
Con estos cambios, solo se mostrarán los últimos tres videos que no estén ya registrados en la base de datos. ¡Espero que esto sea lo que necesitabas!
Para asegurarte de que siempre se muestren tres videos de la carpeta "upload" que no tengan una entrada correspondiente en la base de datos, puedes realizar lo siguiente:usort($archivos, function($a, $b) {
return filemtime($b) - filemtime($a);
});
$ultimos_archivos = array_slice($archivos, 0, 3);
if(empty($ultimos_archivos)) {
echo '<span class="polus">No se encontraron videos.</span>';
}else{
foreach ($ultimos_archivos as $archivo) {
$nombre_archivo = 'upload/' . basename($archivo);
$stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM watch WHERE newmodevideo = ?");
mysqli_stmt_bind_param($stmt, 's', $nombre_archivo);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $existe);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
if($existe == 0) {
echo '<span class="polus">' . $nombre_archivo . ' <a style="float:right;text-decoration:none;" href="../s?admin=true&renaem=' . $archivo . '">Editar</a></span>';
}else{
echo '<span class="polus">El video ya existe en la base de datos.</span>';
}
}
}
mejor haz que muestre siempre 3 videos que no tengan newmodevideo
$directorio = './upload';
$archivos = glob($directorio . '/*.mp4');
// Ordenar archivos por fecha de modificación
usort($archivos, function($a, $b) {
return filemtime($b) - filemtime($a);
});
// Inicializar un array para almacenar los videos que no existen
$ultimos_archivos = [];
foreach ($archivos as $archivo) {
$nombre_archivo = 'upload/' . basename($archivo);
// Preparar consulta para verificar si el video existe en la base de datos
$stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM watch WHERE newmodevideo = ?");
mysqli_stmt_bind_param($stmt, 's', $nombre_archivo);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $existe);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
// Agregar archivo a la lista si no existe en la base de datos
if ($existe == 0) {
$ultimos_archivos[] = $archivo; // Agregar solo si no existe
}
// Parar cuando hay 3 archivos
if (count($ultimos_archivos) >= 3) {
break; // Solo queremos los primeros 3 que no existen
}
}
// Mostrar resultados
if (empty($ultimos_archivos)) {
echo '<span class="polus">No se encontraron videos disponibles para mostrar.</span>';
} else {
foreach ($ultimos_archivos as $archivo) {
$nombre_archivo = 'upload/' . basename($archivo);
echo '<span class="polus">' . $nombre_archivo . ' <a style="float:right;text-decoration:none;" href="../s?admin=true&renaem=' . $archivo . '">Editar</a></span>';
}
}
$ultimos_archivos
) para almacenar los videos que no existen en la base de datos.move_uploaded_file($source_path, $target_path);Para asegurarte de que siempre se muestren tres videos de la carpeta "upload" que no tengan una entrada correspondiente en la base de datos, puedes realizar lo siguiente:
1. Ordenar los archivos MP4 por fecha de modificación.
2. Comprobar si cada video ya existe en la base de datos.
3. Solo agregar a la lista los videos que no existen hasta que se alcancen tres.
Aquí tienes el código ajustado según tu solicitud:
### Código Ajustado
PHP:$directorio = './upload'; $archivos = glob($directorio . '/*.mp4'); // Ordenar archivos por fecha de modificación usort($archivos, function($a, $b) { return filemtime($b) - filemtime($a); }); // Inicializar un array para almacenar los videos que no existen $ultimos_archivos = []; foreach ($archivos as $archivo) { $nombre_archivo = 'upload/' . basename($archivo); // Preparar consulta para verificar si el video existe en la base de datos $stmt = mysqli_prepare($conexion, "SELECT COUNT(*) FROM watch WHERE newmodevideo = ?"); mysqli_stmt_bind_param($stmt, 's', $nombre_archivo); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt, $existe); mysqli_stmt_fetch($stmt); mysqli_stmt_close($stmt); // Agregar archivo a la lista si no existe en la base de datos if ($existe == 0) { $ultimos_archivos[] = $archivo; // Agregar solo si no existe } // Parar cuando hay 3 archivos if (count($ultimos_archivos) >= 3) { break; // Solo queremos los primeros 3 que no existen } } // Mostrar resultados if (empty($ultimos_archivos)) { echo '<span class="polus">No se encontraron videos disponibles para mostrar.</span>'; } else { foreach ($ultimos_archivos as $archivo) { $nombre_archivo = 'upload/' . basename($archivo); echo '<span class="polus">' . $nombre_archivo . ' <a style="float:right;text-decoration:none;" href="../s?admin=true&renaem=' . $archivo . '">Editar</a></span>'; } }
### ¿Qué Hace Este Código?
1. Ordena los Archivos: Ordena los archivos MP4 según su fecha de modificación más reciente.
2. Crea un Array: Inicializa un array ($ultimos_archivos
) para almacenar los videos que no existen en la base de datos.
3. Verifica la Existencia: Recorre cada archivo para verificar si su nombre existe en la base de datos utilizando una consulta SQL.
4. Agrega Videos No Existentes: Solo agrega el video al array si no existe en la base de datos, deteniéndose cuando se han encontrado 3 videos que cumplen con esta condición.
5. Muestra Resultados: Finalmente, muestra los videos encontrados o un mensaje si no hay disponibles.
Con este enfoque, siempre deberías ver hasta tres videos que no tengan registros en la base de datos. ¡Espero que esto cumpla con tus requisitos!
Para guardar un "capture" (o captura de pantalla) de un video al momento de subirlo, puedes usar la herramienta de línea de comandos FFmpeg, que permite extraer imágenes de videos. Aquí te explico cómo hacerlo:move_uploaded_file($source_path, $target_path);
como hago para que guarde un capture del video al momento de subir el video?
bash
sudo apt-get install ffmpeg
<?php
$source_path = $_FILES['video']['tmp_name']; // Ruta temporal del archivo subido
$target_path = './uploads/' . $_FILES['video']['name']; // Ruta de destino del video
// Mover el archivo de video subido
if (move_uploaded_file($source_path, $target_path)) {
// Ruta para guardar la captura
$capture_path = './captures/' . basename($target_path, ".mp4") . '.jpg'; // Cambia la extensión según el formato que uses
// Comando para generar la captura de pantalla del video usando FFmpeg
$command = "ffmpeg -i $target_path -ss 00:00:01.000 -vframes 1 $capture_path";
// Ejecutar el comando
exec($command);
echo "Video subido y captura guardada.";
} else {
echo "Error al subir el video.";
}
?>
ffmpeg
, se crea una captura de pantalla del video. -ss 00:00:01.000
: Indica el segundo del video del que deseas tomar la captura. Puedes cambiar esto según sea necesario.-vframes 1
: Indica que solo necesitas un único fotograma..jpg
según el formato de video que estés utilizando.