Mostrar imagen al azar tras clic en botón con PHP y base de datos

  • Autor Autor JoseCuevas
  • Fecha de inicio Fecha de inicio
JoseCuevas

JoseCuevas

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Hola betas, estoy creando un script y necesito saber cómo hacer para que al dar click en un botón, salga un popup con una imagen al azar de una base de datos que yo tenga ya lista con imágenes... Supongo que se ha de utilizar bases de datos y PHP pero, ¿Cómo podría hacer el código?

Cualquier ayuda será más que bien recibida!! 😀

[MENTION=9679]cicklow[/MENTION], jelp plis 🙄
 
HTML:
<input type="button" onclick="window.open('random.php','_blank');">

Code PHP (random.php)
PHP:
<?php
	$dbhost = "localhost";
	$dbuser = "USER";
	$dbpass = "PASS";
	$db = "DB";
	$mysqli = new mysqli("$dbhost","$dbuser","$dbpass","$db");
	if ($mysqli->connect_errno) {
		die("Failed to establish a connection with the database");
	}
	$A = $mysqli->query("SELECT * FROM tabla_imagenes ORDER BY RAND() LIMIT 1");
	$R = $A->fetch_assoc();
	echo '<img src="'.$R['imagen'].'">';

OSER BY RAND() saca una valor al azar de esa tabla, y le decimos que solo uno saque con limit...
 
HTML:
<input type="button" onclick="window.open('random.php','_blank');">

Code PHP (random.php)
PHP:
<?php
	$dbhost = "localhost";
	$dbuser = "USER";
	$dbpass = "PASS";
	$db = "DB";
	$mysqli = new mysqli("$dbhost","$dbuser","$dbpass","$db");
	if ($mysqli->connect_errno) {
		die("Failed to establish a connection with the database");
	}
	$A = $mysqli->query("SELECT * FROM tabla_imagenes ORDER BY RAND() LIMIT 1");
	$R = $A->fetch_assoc();
	echo '<img src="'.$R['imagen'].'">';

OSER BY RAND() saca una valor al azar de esa tabla, y le decimos que solo uno saque con limit...

Ooooh ya entiendo, ya cree todo y puse la información, cree la tabla "tabla_imagenes" pero no sé cómo subir las imágenes a la base de datos, estaré investigando, gracias cick como siempre ayudando 😛8:
 
Ooooh ya entiendo, ya cree todo y puse la información, cree la tabla "tabla_imagenes" pero no sé cómo subir las imágenes a la base de datos, estaré investigando, gracias cick como siempre ayudando 😛8:

PHP:
<?php
//subir.php
if($_GET['adm']!="cicklow") die(); //cambia la clave ;)... entras con subir.php?adm=cicklow (es para evitar que otros suban imagenes)

echo '<form action="" method="POST">
URL Imagen: <input type="text" name="img" size="100"><br/><input type="submit">
</form>';

if($_POST['img']!=""){
    $dbhost = "localhost";
    $dbuser = "USER";
    $dbpass = "PASS";
    $db = "DB";
    $mysqli = new mysqli("$dbhost","$dbuser","$dbpass","$db");
    if ($mysqli->connect_errno) {
        die("Failed to establish a connection with the database");
    }
    $A = $mysqli->query("INSERT INTO tabla_imagenes SET imagen='".$_POST['img']."';");
}

la tabla_imagenes, solo tendria el campo varchar(150) llamado: imagen... esta contendra la url de la imagen.
 
PHP:
<?php
//subir.php
if($_GET['adm']!="cicklow") die(); //cambia la clave ;)... entras con subir.php?adm=cicklow (es para evitar que otros suban imagenes)

echo '<form action="" method="POST">
URL Imagen: <input type="text" name="img" size="100"><br/><input type="submit">
</form>';

if($_POST['img']!=""){
    $dbhost = "localhost";
    $dbuser = "USER";
    $dbpass = "PASS";
    $db = "DB";
    $mysqli = new mysqli("$dbhost","$dbuser","$dbpass","$db");
    if ($mysqli->connect_errno) {
        die("Failed to establish a connection with the database");
    }
    $A = $mysqli->query("INSERT INTO tabla_imagenes SET imagen='".$_POST['img']."';");
}

la tabla_imagenes, solo tendria el campo varchar(150) llamado: imagen... esta contendra la url de la imagen.

Ok, al crear la tabla me da la opción de crear un campo el cual es "imagen", qué tipo de campo es? Varchar, int, text? y en Longitud/Valores pongo la url de la imagen?
 
Ok, al crear la tabla me da la opción de crear un campo el cual es "imagen", qué tipo de campo es? Varchar, int, text? y en Longitud/Valores pongo la url de la imagen?

varchar, longitud=150
 
varchar, longitud=150


Cick.... quien como tú, muchísimas gracias!

PD: Ultima cosita... si quiero que saque un popup pero dentro de la misma pagina, ¿Qué codigo pongo? :s

- - - Actualizado - - -

Osea que no habra otra pestaña
 
Cick.... quien como tú, muchísimas gracias!

PD: Ultima cosita... si quiero que saque un popup pero dentro de la misma pagina, ¿Qué codigo pongo? :s

- - - Actualizado - - -

Osea que no habra otra pestaña

HTML:
<input type="button" onclick="window.open('random.php','_blank', 'width=200, height=100');">

eso es un popup de 200x100... vos ponele el tamaño que necesites... si quieres dentro de la misma pagina, puedes usar un lightbox...
 
HTML:
<input type="button" onclick="window.open('random.php','_blank', 'width=200, height=100');">

eso es un popup de 200x100... vos ponele el tamaño que necesites... si quieres dentro de la misma pagina, puedes usar un lightbox...

Diablos, odio molestar a la gente pero... no hay más quien me ayude...

Si quiero hacer que compartan la imagen en facebook, solo colocó un botón de Fb o cómo? Porque la url sería la misma en todas las imágenes :s (misitio.com/random.php)
 
Diablos, odio molestar a la gente pero... no hay más quien me ayude...

Si quiero hacer que compartan la imagen en facebook, solo colocó un botón de Fb o cómo? Porque la url sería la misma en todas las imágenes :s (misitio.com/random.php)

HTML:
<img src="'.$R['imagen'].'" onclick="Compartir(this);">

<script>
function Compartir(img){
var u = "http://www.misitio.com/compartir.php?img=" + img.src;
window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u),'compartir','toolbar=0,status=0,width=626,height=436');return false;
}
</script>

Archivo compartir.php
PHP:
<!doctype html>

<html lang="en">
<head>
<meta charset="utf-8">
<meta property="og:title" content="Titulo de mi sitio" />
<meta property="og:site_name" content="Nombre de mi sitio"/>
<meta property="og:url" content="http://www.sitio.com/" />
<meta property="og:description" content="descripcion de mi sitio" />
<meta property="og:type" content="article" />
<meta property="og:image" content="<?php echo $_GET['img']; ?>" />
</head>
<body>
<script>
setTimeout(function(){ document.location = 'http://www.misitio.com/'; }, 3000); //3 segundos
</script>
</body>
</html>

el archivo compartir lo que hace es armar el share para facebook... ejemplo
851562_1376970469205025_523101852_n.png


Y usamos PHP para indicarle que imagen colocar en el muro... pero como ves mas abajo hay un JS que es usado para redireccionar luego de 3 segudos, esto es por si alguien accede a esa url, el navegador lo redirecciona a tu sitio, pero no redirecciona si entra facebook a ver los meta que necesita para armar el post... vos cambia misitio.com por tu sitio, entonces cuando le den click en facebook entran a tu sitio 😉
 
Última edición:
HTML:
<img src="'.$R['imagen'].'" onclick="Compartir(this);">

<script>
function Compartir(img){
var u = "http://www.misitio.com/compartir.php?img=" + img.src;
window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u),'compartir','toolbar=0,status=0,width=626,height=436');return false;
}
</script>

Archivo compartir.php
PHP:
<!doctype html>

<html lang="en">
<head>
<meta charset="utf-8">
<meta property="og:title" content="Titulo de mi sitio" />
<meta property="og:site_name" content="Nombre de mi sitio"/>
<meta property="og:url" content="http://www.sitio.com/" />
<meta property="og:description" content="descripcion de mi sitio" />
<meta property="og:type" content="article" />
<meta property="og:image" content="<?php echo $_GET['img']; ?>" />
</head>
<body>
<script>
setTimeout(function(){ document.location = 'http://www.misitio.com/'; }, 3000); //3 segundos
</script>
</body>
</html>

el archivo compartir lo que hace es armar el share para facebook... ejemplo
851562_1376970469205025_523101852_n.png


Y usamos PHP para indicarle que imagen colocar en el muro... pero como ves mas abajo hay un JS que es usado para redireccionar luego de 3 segudos, esto es por si alguien accede a esa url, el navegador lo redirecciona a tu sitio, pero no redirecciona si entra facebook a ver los meta que necesita para armar el post... vos cambia misitio.com por tu sitio, entonces cuando le den click en facebook entran a tu sitio 😉

Genial Cick!

Solo que, dónde pongo el primer código? Ya cree el archivo compartir.php pero el primero código lo metí en random.php ya que es ahí donde se crea el resultado pero lo puse y me salió en blanco xD
 
Genial Cick!

Solo que, dónde pongo el primer código? Ya cree el archivo compartir.php pero el primero código lo metí en random.php ya que es ahí donde se crea el resultado pero lo puse y me salió en blanco xD

jajaja... edita random.php cambiando solo lo de la imagen
PHP:
echo '<img src="'.$R['imagen'].'" onclick="Compartir(this);">';
//cerramos el PHP... ;)
?> 
<script>
function Compartir(img){
var u = "http://www.misitio.com/compartir.php?img=" + img.src;
window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u),'compartir','toolbar=0,status=0,width=626,height=436');return false;
}
</script>

y el compartir.php es un archivo aparte con su propio code.
 
jajaja... edita random.php cambiando solo lo de la imagen
PHP:
echo '<img src="'.$R['imagen'].'" onclick="Compartir(this);">';
//cerramos el PHP... ;)
?> 
<script>
function Compartir(img){
var u = "http://www.misitio.com/compartir.php?img=" + img.src;
window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u),'compartir','toolbar=0,status=0,width=626,height=436');return false;
}
</script>

y el compartir.php es un archivo aparte con su propio code.

Jaja ahora sí lo puse, lo compartí en mi facebook pero mostró la imagen de la pagina principal, no de la que da el resultado aleatorio :s Te paso mi sitio por mp 😛
 
Jaja ahora sí lo puse, lo compartí en mi facebook pero mostró la imagen de la pagina principal, no de la que da el resultado aleatorio :s Te paso mi sitio por mp 😛

dale 🙂 :encouragement:
 
Atrás
Arriba