Comunidad PHPeros
Lenguajes => Aplicaciones Pre-Fabricadas => Minichat o MC => Mensaje iniciado por: -RiPeRcOp- en 06 de Junio de 2007, 23:37:30 pm
-
Bueno, eh creado, mi 1º Script, no desde 0 pero bastante completamente echo por mi, va no se, la cuestion es la siguiente, el Script que estoy creando o modificando realiza lo siguiente, mediante consulta a la BD, obtiene, la URL de la placas, el COD, y los msj que necesitas para tener el codigo de la placas, lo que sucede es lo siguiente, quiero que, cuando por ejemplo ponga lo siguiente:
Placas 1 IMG MSJ COD
Placa 100 http://... 100 FGhy78
quiero que, cuando hace la consulta a la BD obtenga los datos de que, si el usuarios tiene menor o =cantidad de msj que la que se necesita, no se le muestre el COD, en cambio si tiene mas pues entonces que le muestre el COD. Yo hice una Script, pero por alguna razon, aveces muestra el COD y aveces no, hasi tengas los msj o no. Quiero saber a que se deve esto. Aqui les dejo el COD: (No es pa que lo copien, es pa que me ayuden)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
</body>
</html>
<?
include ("conectar.php");
include("acceder.php");
///Ingresamos en la DB a la tabla "Usuarios"
$query = "SELECT * FROM `usuarios` WHERE nick = '".$nnick."'";
$resp = @mysql_query($query);
$rows = @mysql_num_rows($resp);
while ($user = @mysql_fetch_array($resp)) {
$mensajes = $user[mensajes];
$usuario = $user[nick];
}
///Ingresamos en la DB a la tabla "Placas Auto"
$query2 = "SELECT * FROM `placas_auto`";
$resp2 = @mysql_query($query2);
$rows2 = @mysql_num_rows($resp2);
while ($placas = @mysql_fetch_array($resp2)) {
$id = $placas[id];
$msj = $placas[msj];
$imagen = $placas[imagen];
$codigo = $placas[codigo];
}
?>
<? include("acceder.php"); ?>
<table border="0" height=100% width="100%" bgcolor="#E8F3FD">
<tr>
<td align="center" class="Texto" valign="top">
<?
if (isset($_POST['censurar'])) {
if ($_POST['codigo'] != "" && $_POST['imagen'] != ""&& $_POST['msj'] != "") {
$id = "";
$query = "INSERT INTO `placas_auto` (id, codigo, imagen, msj) VALUES ('".$id."', '".$_POST['codigo']."', '".$_POST['imagen']."', '".$_POST['msj']."')";
@mysql_query($query);
echo "<div align=center><font color=\"#cc0000\">Placa añadida</font><br><a href=\"panel.php?mostrar=placas_auto&".session_name()."=".session_id()."\" class=\"EnlaceMenu\">"._RETURN."</a></div>";
} else
echo "<font class=\"Texto\">Has dejado algún campo vacío<br></font><a href=\"panel.php?mostrar=placas_auto&".session_name()."=".session_id()."\" class=\"EnlaceMenu\">"._RETURN."</a>";
} else if (isset($_POST['borrar'])) {
$query = "SELECT * FROM `placas_auto`";
$resp = @mysql_query($query);
$rows = @mysql_num_rows($resp);
if (!$rows)
echo "<font class=\"Texto\">No hay placas<br></font><a href=\"panel.php?mostrar=placas_auto&".session_name()."=".session_id()."\" class=\"EnlaceMenu\">"._RETURN."</a>";
else {
if (!isset($_POST['palabra'])) {
echo "<font class=\"Texto\">No has seleccionado ninguna placa<br></font><a href=\"panel.php?mostrar=placas_auto&".session_name()."=".session_id()."\" class=\"EnlaceMenu\">"._RETURN."</a>";
} else {
$palabra = $_POST['palabra'];
$query = "SELECT * FROM `placas_auto`";
$resp = @mysql_query($query);
while ($censura = @mysql_fetch_array($resp)) {
if ($palabra[$censura['id']] == "on") {
$query2 = "DELETE FROM `placas_auto` WHERE id = '".$censura['id']."'";
@mysql_query($query2);
}
}
echo ""._ERASEDWORD."<br><a href=\"panel.php?mostrar=placas_auto&".session_name()."=".session_id()."\" class=\"EnlaceMenu\">"._RETURN."</a>";
}
}
} else if (isset($_POST['todas'])) {
$query = "SELECT * FROM `placas_auto`";
$resp = @mysql_query($query);
$rows = @mysql_num_rows($resp);
if (!$rows)
echo "<font class=\"Texto\">No hay placas<br></font><a href=\"panel.php?mostrar=placas_auto&".session_name()."=".session_id()."\" class=\"EnlaceMenu\">"._RETURN."</a>";
else {
$query = "TRUNCATE TABLE `placas_auto`";
@mysql_query($query);
echo "Todas las placas han sido borradas<br><a href=\"panel.php?mostrar=placas_auto&".session_name()."=".session_id()."\" class=EnlaceMenu>"._RETURN."</a>";
}
} else {
?>
<table border="0" cellpadding="2" cellspacing="0">
<? if ($_SESSION['iden'] != "Bronze" && $_SESSION['iden'] != "Zafiro") { ?>
<form name="form" method="post" action="panel.php?mostrar=placas_auto&<? echo session_name()."=".session_id() ?>">
<tr>
<td class="Texto" align="center" colspan="2"><font color="#cc0000">Control Placas</font></td>
</tr>
<tr>
<td class="Texto" align="center" colspan="2"></td>
</tr>
<tr>
<td class="Texto" align="center">Código: </td><td><input type="text" name="codigo" size="15" value="" class="Boton"></td>
</tr>
<tr>
<td class="Texto" align="center">Imagen(url): </td><td><input type="text" name="imagen" size="15" value="" class="Boton"></td>
</tr>
<tr>
<td class="Texto" align="center">Cantidad de Msj : </td><td><input type="text" name="msj" size="15" value="1" class="Boton"></td>
</tr>
<tr>
<td class="Texto" align="center" colspan="2"></td>
</tr>
<tr>
<td class="Texto" align="center" colspan="2"><input name="censurar" type="submit" value="Aceptar" class="Boton"></td>
</tr>
<? } ?>
<tr>
<td class="Texto" align="center" colspan="2"> </td>
</tr>
<tr>
<td class="Texto" align="center" colspan="2"><font color="#cc0000">Placas</font></td>
</tr>
<tr>
<td class="Texto" colspan="2" align="center">
<?
$query = "SELECT * FROM `placas_auto` order by msj";
$resp = @mysql_query($query);
$rows = @mysql_num_rows($resp);
if (!$rows)
echo "<div align=center>"._NONE."</div>";
else {
echo "<table width=\"100%\">";
echo "<tr><td bgcolor=#6699cc></td><td class=\"Texto\" bgcolor=#6699cc>Imagen</td><td class=\"Texto\" bgcolor=#6699cc>Msj que necesitas</td><td class=\"Texto\" bgcolor=#6699cc>Codigo</td></tr>";
$n = 0;
while ($palabras = @mysql_fetch_array($resp))
while ($placas = @mysql_fetch_array($resp)) {
if ($_SESSION['iden'] != "Bronze" && $_SESSION['iden'] != "Zafiro")
echo "<tr><td class=\"Texto\" bgcolor=\"#E8F3FD\"><input type=checkbox name=palabra[".$placas['id']."]></td>";
echo "<td align=center class=\"Texto\" bgcolor=\"#E8F3FD\"><img src=\"".$placas['imagen']."\"></td>";
echo "<td class=Texto bgcolor=\"#E8F3FD\" align=center>".$placas['msj']."</td>";
if ($msj >= $mensajes){ echo "<td class=Texto bgcolor=\"#E8F3FD\" align=center>".$placas['codigo']."</td>";
} else if ($msj <= $mensajes){ echo "<td class=Texto bgcolor=\"#E8F3FD\" align=center>No tienes los mensajes requeridos.</td></tr>";
}
$n ++;
}
echo "</table>";
}
?>
</td>
</tr>
<? if ($_SESSION['iden'] != "Bronze" && $_SESSION['iden'] != "Zafiro") { ?>
<tr>
<td align="center" colspan="2">
<table cellpadding="1" cellspacing="0">
<tr>
<td><input type="submit" name="borrar" value="<?=_RESET; ?>" class="Boton"></td>
<td><input name="todas" value="<?=_ALL; ?>" class="Boton" type="submit"></td>
</tr>
</table>
</td>
</tr>
<? } ?>
</form>
<tr>
<td colspan="2" align="center">
<a href="panel.php?<? echo session_name()."=".session_id() ?>" class="EnlaceMenu"><?=_RETURN; ?></a>
</td>
</tr>
</table>
<? } ?>
</td>
</tr>
</table>
<script language="Javascript">
var vie=
parseFloat(navigator.appVersion.slice(navigator.appVersion.indexOf("MSIE")+4,navigator.appVersion.length));
function sinmenu()
{
event.cancelBubble = true;
event.returnValue = false;
return false;
}
function noclicderecho(e)
{
if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2)) return false;
else
if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3))
{
if (vie < 5) // -- para el IE4 -- \\
{
alert('Puedes personalizar este mensaje');
return false;
}
else
if (vie >= 5) // -- para el IE5 -- \\
{
document.oncontextmenu = sinmenu;
return false;
}
}
return true;
}
document.onmousedown=noclicderecho;
// -- Desabilita el clic derecho en las capas (layers) -- \\
if (document.layers)window.captureEvents(Event.MOUSEDOWN);
window.onmousedown=noclicderecho;
</script>
<!--webbot bot="HTMLMarkup" endspan --><!--webbot bot="HTMLMarkup" startspan --><script language="JavaScript">
<!--
function event_false() {
window.event.returnValue = false
}
document.onselectstart = event_false
//-->
</script><!--webbot bot="HTMLMarkup" endspan -->
En cuestion, el Script esta basado en el agregar smilies de Naveda, pero con algunas modificaciones que yo mismo eh echo. Saludos
PD: Dejo aqui la consulta SQL
-- Estructura de tabla para la tabla `placas_auto`
--
CREATE TABLE `placas_auto` (
`id` int(11) NOT NULL auto_increment,
`codigo` varchar(255) NOT NULL default '',
`imagen` varchar(255) NOT NULL default '',
`msj` varchar(255) NOT NULL,
`mostrar` varchar(255) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
--
-- Volcar la base de datos para la tabla `placas_auto`
--
-
Pues mira... es bastante facil ponerle la placa segun la cantidad de mensajes que tiene.
# Se supone que hace la conexión a la base de datos donde tienes todos los usuarios con sus datos...
# Extraes los mensajes que tiene el usuario
$query = mysql_query("SELECT * FROM `nombre_de_la_tabla` ORDER BY `id` DESC");
if(mysql_num_rows($query)) {
while($mensajes = mysql_fetch_array($query)) {
if(.$mensajes['mensajes'] <= 100){ #Comprovamos que si el usuario tiene menos de 100 o 100 mensajes
$placa = Aqui_el_valor_de_la_placa_si_tiene_100_o_menos_mensajes
} else {
if... Asi todo el rato con todas la placas
Recuerda que deberia haver un campo en la base de datos con la cantidad de mensajes de cada usuario y cada vez que el usuario envie un mensaje, tu extraes el resultado, utilizas las matematicas en variables para sumarle uno y volver a subirlo ;)
Espero haver servido de ayuda ;)
-
Pero no es eso esactamente lo que yo quiero hacer, yo quiero que el Web-Master que coloque este sistema en su MC, pueda agregar placas desde un formulario, es decir, si un dia quiere agregar una placas que necesites 100 msj, aparesca en el panel como cualquier placa, pero, si tienes los msj que se necesitan. Es esactamente lo mismo que tu me hicistes hasi, pero la cuestion es que lo haga mediante BD
El pricipal codigo que hay que editar es este:
<tr>
<td class="Texto" colspan="2" align="center">
<?
$query = "SELECT * FROM `placas_auto` order by msj";
$resp = @mysql_query($query);
$rows = @mysql_num_rows($resp);
if (!$rows)
echo "<div align=center>"._NONE."</div>";
else {
echo "<table width=\"100%\">";
echo "<tr><td bgcolor=#6699cc></td><td class=\"Texto\" bgcolor=#6699cc>Imagen</td><td class=\"Texto\" bgcolor=#6699cc>Msj que necesitas</td><td class=\"Texto\" bgcolor=#6699cc>Codigo</td></tr>";
$n = 0;
while ($palabras = @mysql_fetch_array($resp))
while ($placas = @mysql_fetch_array($resp)) {
if ($_SESSION['iden'] != "Bronze" && $_SESSION['iden'] != "Zafiro")
echo "<tr><td class=\"Texto\" bgcolor=\"#E8F3FD\"><input type=checkbox name=palabra[".$placas['id']."]></td>";
echo "<td align=center class=\"Texto\" bgcolor=\"#E8F3FD\"><img src=\"".$placas['imagen']."\"></td>";
echo "<td class=Texto bgcolor=\"#E8F3FD\" align=center>".$placas['msj']."</td>";
if ($msj >= $mensajes){ echo "<td class=Texto bgcolor=\"#E8F3FD\" align=center>".$placas['codigo']."</td>";
} else if ($msj <= $mensajes){ echo "<td class=Texto bgcolor=\"#E8F3FD\" align=center>No tienes los mensajes requeridos.</td></tr>";
}
$n ++;
}
echo "</table>";
}
?>
</td>
</tr>
Y esto es un poco mas especifico.
if ($msj >= $mensajes){ echo "<td class=Texto bgcolor=\"#E8F3FD\" align=center>".$placas['codigo']."</td>";
} else if ($msj <= $mensajes){ echo "<td class=Texto bgcolor=\"#E8F3FD\" align=center>No tienes los mensajes requeridos.</td></tr>";
}
No se si no se entiende la explicacion pues, no se como mas explicarlo. Saludos
PD: la tabla se llama placas_auto
-
Parece estar bien :P
-
Eso aparenta, lo que sucede es lo siguiente, cuando en el panel agregar una placas de 100 msj, y yo tengo 150 el codigo aparece lo mas bien, pero si agrego una placa mas de 200 msj, no aparece el cod de esa msj, pero tmp el de la otra placa, y si despues agrego una de 10 msj, aparecen los CODs de todas las placas, no se a que se deve. Saludos
-
Eso aparenta, lo que sucede es lo siguiente, cuando en el panel agregar una placas de 100 msj, y yo tengo 150 el codigo aparece lo mas bien, pero si agrego una placa mas de 200 msj, no aparece el cod de esa msj, pero tmp el de la otra placa, y si despues agrego una de 10 msj, aparecen los CODs de todas las placas, no se a que se deve. Saludos
Pues nose... pero yo sinceramente prefiero hacerlo manual... ya que no se actualiza muy a menudo sino cuando quieres cambiar placas y tal...
-
Enrealidad, no lo hice como una utilidad necesaria, sino que lo hice para poder practicar con algo, pero no se como solucionar eso xD. Saludos
-
Enrealidad, no lo hice como una utilidad necesaria, sino que lo hice para poder practicar con algo, pero no se como solucionar eso xD. Saludos
Te ayudaria pero vamos yo creo que la forma de calentarte menos la cabeza es hacerlo a mano ;)