Base de datos en mysql y php

Como puedo hacer lo siguiente en php y mysql. Ya cree la base de datos pero no se como realizar las consultas atraves de la pagina web. En la pagina pido un numero de matricula y una contraseña y de ahi se debe mostrar los datos de una base de datos, es una pagina para una escuela en la cual se visualiza las calificaciones. Y no se nada de PHP
Gracias.
Atentamente,
sammy
Mexico

1 respuesta

Respuesta
Si no sabes nada de PHP quizás deberías mirarte algún tutorial, porque sino te será dificil entender las instrucciones.
Básicamente, en la página destino, se recogen los valores del formulario según los nombres de cada casilla de texto (el atributo 'name').
Así, si el formulario tiene:
<input name="matricula" type="text">
luego, en la página de destino, PHP sabrá lo que el usuario ha introducido  porque lo encuentra en la variable $_REQUEST["matricula"]
Entonces, si supieras PHP, podrías abrir la base de datos según el tipo que sea, por ejemplo si se trata de MySQL:
<?php
$bbdd = mysql_connect("localhost", "usuario", "contras");
mysql_select_db('tubasededatos');
// Y luego acceder para leer los datos que necesitas, creando una sentencia SQL según tus necesidades:
$sql = "SELECT * FROM tutabla WHERE matricula='" . $_REQUEST["matricula"] . "'";
$resultados = mysql_query($sql);
$campos = mysql_fetch_assoc($resultados);
echo "El campo1 es: " . $campos["campo1"];
echo "El campo2 es: " . $campos["campo2"];
?>
gracias, de hecho intente hacer un ejemplo que aparece aki que es de ke tambien pide contraseña pero se debe crear 3 pagina php, creo ke solo necesito 2, ya lo hice pero me aparece lo siguiente
Warning: session_start() [function.session-start]: Cannot send session
cookie - headers already sent by (output started at C:\Program
Files\wamp\www\PaginaIMCED\boleta.php:6) in C:\Program
Files\wamp\www\PaginaIMCED\boleta.php
on line
51
Warning: session_start() [function.session-start]: Cannot send session
cache limiter - headers already sent (output started at C:\Program
Files\wamp\www\PaginaIMCED\boleta.php:6) in C:\Program
Files\wamp\www\PaginaIMCED\boleta.php
on line 51
este es mi pagina login y creo no crea la conexion con la otra pagina en la otra me aparece:
Warning: require_once(file://C:/Program Files/Program Files/wamp/www/PaginaIMCED/Connections/boleta.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\wamp\www\PaginaIMCED\mostrar_boleta2.php on line 1
Fatal error: require_once() [function.require]: Failed opening required 'file://C:/Program Files/Program Files/wamp/www/PaginaIMCED/Connections/boleta.php' (include_path='.;C:\php5\pear') in C:\Program Files\wamp\www\PaginaIMCED\mostrar_boleta2.php on line 1
no se ke falla:
este es mi primer programa
<div id="global">
<table border="0" width="804" align="center" bgcolor="#8b8a95">
<tbody>
<tr>
<td width="85">
<div><span class="Menu">file:///C|/Program Files/Program Files/wamp/www/PaginaIMCED/Imagenes/Imagen 103(3).JPG</span></div>
</td>
<td width="623" bgcolor="#8b8a95">
<p class="Estilo14" align="center"><span class="Estilo19">Instituto Michoacano de Ciencias  de la Educación </span>
<p align="center"><span class="Estilo18">"José Maria Morelos"</span>
</td>
<td width="82">
<div><span class="Menu">file:///C|/Program Files/Program Files/wamp/www/PaginaIMCED/Imagenes/Imagen 103(3).JPG</span></div>
</td>
</tr>
</tbody>
</table>
<p align="center"><span class="NOMBRE">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="282" height="27" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0">
<param name="movie" value="file:///C|/Program Files/Program Files/wamp/www/PaginaIMCED/text12.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#000099" />
<embed type="application/x-shockwave-flash" width="282" height="27" src="file:///C|/Program Files/Program Files/wamp/www/PaginaIMCED/text12.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" bgcolor="#000099"></embed>
</object>
</span>
session_start();
// CONECTAR CON LA BASE DE DATOS
//$db = mysqli_connect('localhost', 'root', '');
//if (!$db) {
// print "
Imposible conectarse con la base de datos.
";
// exit();
//}
if (isset($_POST['matricula'])) {
// mysql_connect
// mysql_select_db
$consulta = "SELECT * FROM calificaciones WHERE matricula =
'{$_POST['matricula']}' AND contrasena = '{$_POST['contrasena']}'";
$datos = mysql_query($consulta);
if (mysql_num_rows($resultado) > 0) {
$_SESSION['matricula'] = $_POST['matricula'];
header("Location: mostrar_boleta2.php");
}
}
?>
echo "<form method="post">";
echo "Matricula: <input name="matricula" type="text" />
";
echo "Contrasena: <input name="contrasena" type="password" />
";
echo "<input type="submit" value="Entrar" />";
echo "</form>";
<p align="center">
</div>
el segundo es:
<?php require_once('file://C:/Program Files/Program Files/wamp/www/PaginaIMCED/Connections/boleta.php'); ?>
<?php
mysql_select_db($database_boleta, $boleta);
$query_boleta = "SELECT * FROM calificaciones";
$boleta = mysql_query($query_boleta, $boleta) or die(mysql_error());
$row_boleta = mysql_fetch_assoc($boleta);
$totalRows_boleta = mysql_num_rows($boleta);
mysql_select_db($database_boleta, $boleta);
$query_mostar = "SELECT materia1, materia2, materia3, materia4, materia5, materia6, calif1, calif2, calif3, calif4, calif5, calif6, nombre, carrera, semestre FROM calificaciones";
$mostar = mysql_query($query_mostar, $boleta) or die(mysql_error());
$row_mostar = mysql_fetch_assoc($mostar);
$totalRows_mostar = mysql_num_rows($mostar);
?><!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>Pagina Web IMCED de Zitacuaro</title>
<style type="text/css">
<!--
body {
background-color: #000099;
}
.Estilo14 {font-size: 18px;
color: #FFFFFF;
font-weight: bold;
}
.Estilo18 {color: #000033; font-size: 24px; font-family: Georgia, "Times New Roman", Times, serif; font-weight: bold; }
.Estilo19 {font-size: 24px;
color: #000033;
}
.Menu {color: #FFFFFF}
.NOMBRE { color: #FFFFFF;
font-size: 24px;
font-family: Georgia, "Times New Roman", Times, serif;
font-weight: bold;
}
a {
font-family: Georgia, Times New Roman, Times, serif;
}
-->
</style>
</head>
<body>
<div id="global">
<table width="804" border="0" align="center" bgcolor="#8B8A95">
<tr>
<td width="85">
<div align="left"><span class="Menu"><img src="file:///C|/Program Files/Program Files/wamp/www/PaginaIMCED/Imagenes/Imagen 103(3).JPG" alt="Escudo" width="81" height="74" /></span></div>
</td>
<td width="623" bgcolor="#8B8A95">
<p align="center" class="Estilo14"><span class="Estilo19">Instituto Michoacano de Ciencias  de la Educación </span></p>
<p align="center"><span class="Estilo18">"José Maria Morelos"</span></p>
</td>
<td width="82">
<div align="right"><span class="Menu"><img src="file:///C|/Program Files/Program Files/wamp/www/PaginaIMCED/Imagenes/Imagen 103(3).JPG" alt="Escudo" width="81" height="74" /></span></div>
</td>
</tr>
</table>
<p align="center"> </p>
<?php
session_start();
// CONECTAR CON LA BASE DE DATOS
$db = mysqli_connect('localhost', 'root', '');
if (!$db) {
print "
<p>Imposible conectarse con la base de datos.</p>
";
exit();
}
if ( !isset( $_SESSION['Matricula'] ) ) {
header("Location: boleta.php");
} else {
$consulta = "SELECT * FROM calificaciones WHERE matricula= $matricula AND contrasena = $contrasena";
$datos = mysql_query($consulta);
if ($resultado == FALSE) {
}
}
// mysql_connect
// mysql_select_db
$consulta = "SELECT * FROM calificaciones WHERE matricula = $id";
$datos = mysql_query($consulta);
if ($resultado == FALSE) {
echo "Usuario no valido.";
} else {
echo "
<table border=0>
";
while( $calificaciones = mysql_fetch_array($datos) ) {
print ("
<tr>
");
print ("
<td> $ calificaciones ['nombre'] </td>
\n ");
print ("
<td> $ calificaciones ['carrera'] </td>
\n");
print ("
<td> $ calificaciones ['semestre'] </td>
\n");
print ("
<td> $ calificaciones ['materia1'] </td>
\n");
print ("
<td> $ calificaciones ['calf1'] </td>
\n");
print ("
<td> $ calificaciones ['materia2'] </td>
\n");
print ("
<td> $ calificaciones ['calf2'] </td>
\n");
print ("
<td> $ calificaciones ['materi3'] </td>
\n");
print ("
<td> $ calificaciones ['calf3'] </td>
\n");
print ("
<td> $ calificaciones ['materia4'] </td>
\n");
print ("
<td> $ calificaciones ['calf4'] </td>
\n");
print ("
<td> $ calificaciones ['materia5'] </td>
\n");
print ("
<td> $ calificaciones ['calf5'] </td>
\n");
print ("
<td> $ calificaciones ['materia6'] </td>
\n");
print ("
<td> $ calificaciones ['calf6'] </td>
\n");
print ("
</tr>
");
}
mysql_free_result($boleta);
mysql_free_result($mostar);
"
</table>
";
// mysql_close
}
?>
<p> </p>
<p align="center"> </p>
<table border="1" align="center" bgcolor="#FFFFFF">
<tr>
<td>nombre</td>
<td>carrera</td>
<td>semestre</td>
<td>matateria1</td>
<td>calf1</td>
<td>matateria2</td>
<td>calf2</td>
<td>matateria3</td>
<td>calf3</td>
<td>matateria4</td>
<td>calf4</td>
<td>matateria5</td>
<td>calf5</td>
<td>matateria6</td>
<td>calf6</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_boleta['nombre']; ?></td>
<td><?php echo $row_boleta['carrera']; ?></td>
<td><?php echo $row_boleta['semestre']; ?></td>
<td><?php echo $row_boleta['materia1']; ?></td>
<td><?php echo $row_boleta['calf1']; ?></td>
<td><?php echo $row_boleta['materia2']; ?></td>
<td><?php echo $row_boleta['calf2']; ?></td>
<td><?php echo $row_boleta['materia3']; ?></td>
<td><?php echo $row_boleta['calf3']; ?></td>
<td><?php echo $row_boleta['materia4']; ?></td>
<td><?php echo $row_boleta['calf4']; ?></td>
<td><?php echo $row_boleta['materia5']; ?></td>
<td><?php echo $row_boleta['calf5']; ?></td>
<td><?php echo $row_boleta['materia6']; ?></td>
<td><?php echo $row_boleta['calf6']; ?></td>
</tr>
<?php } while ($row_boleta = mysql_fetch_assoc($boleta)); ?>
</table>
</div>
</body>
</html>
<?php
mysql_free_result($boleta);
mysql_free_result($mostar);
?>
espero me pueda ayudar. Muchas gracias
Para empezar el session_start() debe estar al principio de todo de la página, antes de que se envíe nada, es decir antes de
<html>
. Cuando ya escribes alguna etiqueta HTML, se envían las cabeceras y ya no se está a tiempo de realizar la sesión.
Para continuar, te recomiendo que revises los require_once() que tienes. Creo que deberías usar una ruta relativa para esos ficheros: si están en el mismo directorio, no hace falta que pongas el camino. Parece que no los encuentra, y el require_once() si no encuentra el fichero, aborta la ejecución.
ya intente lo de la funcion sesion_star() y sigue igual en cuanto a lo otro no se ke hacer.
Y si esta bien asi mi codigo??
solo apárece el formulario pero creo ke no envia ni recibe nada.
este es un proyecto y no mas no lopuedo acabar, lo tengo ke entregar en un rato mas
por cierto gracias por la rapidez en contestar
ya salio bien lo de las funcion sesion_star(), pero a parece hasta arriba de la pagina cuando envio datos ahora me aparece:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\wamp\www\PaginaIMCED\boleta.php on line 73
echo "
y vuelve a mi pagina login
y al ejecutar la segunda pagina me muestra esto:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\wamp\www\PaginaIMCED\boleta.php on line 73
echo "
Parece que tu consulta es incorrecta. Deberías componer la cadena, puesto que dentro de las comillas se pueden mostrar variables pero no valores de matrices. Debería ser:
$consulta = "SELECT * FROM calificaciones WHERE matricula='" . $_POST["matricula"] . "' AND contrasena='" . $_POST["contrasena"] . "'";
Ten cuidado con las comillas simples y las comillas dobles.
principalmente aqui me aperece el errro y gracias por lo anterior lo voy a probar
$_REQUEST["matricula"]
//$_REQUEST["contrasena"]
if ( !isset( $_SESSION['matricula'] ) ) {
header("Location: boleta.php");
} else {
$consulta = "SELECT * FROM calificaciones WHERE matricula= $matricula ";
$datos = mysql_query($consulta);
if ($resultado == FALSE) {
}
Es que la anterior parte ke envie, bueno el ultimo mensaje- si quito las dos primeras lineas me sale un error, pero si lo pongo otra, creo ke esta mal el if, en si ahi es donde me marca los errores y ya hice lo que sugirio, pero aun aparecen errores, por ayuda se me acaba el tiempo y gracias por el tiempo y la paciencia
me prodrias ayudar a estructurar este problema, en si es de una pagina poner matricula contraseña para revisar que se han correctas en la base de datos y me muestre esa consulta. La base de datos se llama boleta y la tabla calificaciones, son las pagina que ya mostre pero no me muestra bien lo que quiero solo errores ojala me puedas ayudar, gracias.
por cierto me podrias recomendar un tutorial de php que pueda entender, por favor
El error creo que está en que no se entiende la sentencia SELECT. Esto puede ser porque $matricula no tenga ningún valor, por ejemplo. O también porque matricula no sea de tipo numérico sino de tipo cadena. Si es de tipo cadena faltan las comillas simples:
$consulta = "SELECT * FROM calificaciones WHERE matricula='$matricula'";
Aquí tienes un Tutorial sobre PHP y MySQL:
http://es.tldp.org/Manuales-LuCAS/manual_PHP/manual_PHP/
muchas gracias, comence hacer algunos ejemplos simple para realizar lo de mi proyecto solo que esta vez falla la consulta los codigos son los siguiente:
Formulario entrada
<form action="http://mysevidor/php/buscador.php3" method="post">
Palabra clave: <input name="T1" size="20" type="text" />
<input name="buscar" type="submit" value="Buscar" />
</form>
El siguiente script de busqueda lo llamaremos buscador.php3, y será el encargado de hacer la búsqueda en la BD, y devolver por pantalla los registros encontrados.
Script búsqueda
Formulario entrada
<html>
<body>
<form method="POST" action="http://mysevidor/php/buscador.php3">
<strong>Palabra clave:</strong> <input type="text" name="T1" size="20"><br><br>
<input type="submit" value="Buscar" name="buscar">
</form>
</body>
</html>
El siguiente script de busqueda lo llamaremos buscador.php3, y será el encargado de hacer la búsqueda en la BD, y devolver por pantalla los registros encontrados.
Script búsqueda
<html>
<body>
<?php
if (!isset($buscar)){
echo "Debe especificar una cadena a bucar";
echo "
</html>
</body>
\n";
exit;
}
$link = mysql_connect("localhost", "nobody");
mysql_select_db("mydb", $link);
$result = mysql_query("SELECT * FROM agenda WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $link);
if ($row = mysql_fetch_array($result)){
echo "
<table border = '1'>
\n";
//Mostramos los nombres de las tablas
echo "
<tr>
\n";
while ($field = mysql_fetch_field($result)){
echo "
<td>$field->name</td>
\n";
}
echo "
</tr>
\n";
do {
echo "
<tr>
\n";
echo "
<td>".$row["id"]."</td>
\n";
echo "
<td>".$row["nombre"]."</td>
\n";
echo "
<td>".$row["direccion"]."</td>
\n";
echo "
<td>".$row["telefono"]."</td>
\n";
echo "
<td><a href='mailto:".$row["email"]."'>".$row["email"]."</a></td>
\n";
echo "
</tr>
\n";
} while ($row = mysql_fetch_array($result));
echo "
</table>
\n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>
</body>
</html>
pero al hacer la busqueda solo me muestra el siguiente mensaje:
Debe especificar una cadena a buscar. no se que este mal, me prodrias ayudar?
gracias
Lo que está mal es la línea:
if (!isset($buscar)) {
Antiguamente sí funcionava este sistema, pero con las nuevas versiones de PHP debes poner:
if (!isset($_REQUEST["buscar"])) {
me podrias ayudar con este codigo por fa
$boleta = mysql_connect("localhost", "root");
mysql_select_db("boleta", $boleta);
//mysql_select_db($database_boleta, $boleta)or die(myslq_error());
$matricula="%".$_POST['matricula']."%";
$contrasena="%".$_POST['contrasena']."%";
if (!isset($matricula)){
echo "Debe especificar matricula y la contraseña";
echo "
\n";
exit;
}
else{
$consulta = "SELECT * FROM calificaciones WHERE matricula= '$matricula' AND contrasena = $contrasena";
$datos = mysql_query($consulta);
$datos=mysql_query("SELECT * FROM calificaciones WHERE matricula= '$matricula' AND contrasena = $contrasena");
//$consulta = "SELECT materia1, materia2, materia3, materia4, materia5, materia6, calif1, calif2, calif3, calif4, calif5, calif6, nombre, carrera, semestre FROM calificaciones";
$datos = mysql_query($consulta);
if ($row = mysql_fetch_array($datos)){
//if ($datos == FALSE){
echo "
<table border="1">
\n";
//Mostramos los nombres de las tablas
echo "
<tbody>
<tr>
\n";
while ($field = mysql_fetch_field($datos)){
echo "
<td>$field->name</td>
\n";
}
echo "
</tr>
\n";
do {
echo "
<tr>
\n";
echo "
<td>".$row["nombre"]."</td>
\n";
echo "
<td>".$row["direccion"]."</td>
\n";
echo "
<td>".$row["telefono"]."</td>
\n";
echo "
<td>".$row["materia1"]."</td>
\n";
echo "
<td>".$row["materia2"]."</td>
\n";
echo "
<td>".$row["materia3"]."</td>
\n";
echo "
<td>".$row["materia4"]."</td>
\n";
echo "
<td>".$row["materia5"]."</td>
\n";
echo "
<td>".$row["materia6"]."</td>
\n";
echo "
<td>".$row["calif1"]."</td>
\n";
echo "
<td>".$row["calif2"]."</td>
\n";
echo "
<td>".$row["calif3"]."</td>
\n";
echo "
<td>".$row["calif4"]."</td>
\n";
echo "
<td>".$row["calif5"]."</td>
\n";
echo "
<td>".$row["calif6"]."</td>
\n";
echo "
</tr>
\n";
} while ($row = mysql_fetch_array($datos));
// } while($datos == TRUE);
echo "
</tbody>
</table>
\n";
}
else {
echo "¡ No se ha encontrado ningún registro !";
}
//$consulta = "SELECT * FROM calificaciones WHERE matricula= $matricula AND contrasena = $contrasena";
//$consulta = "SELECT * FROM calificaciones WHERE matricula='" . $_POST["matricula"] . "' AND contrasena='" . $_POST["contrasena"] . "'";
//if ($resultado == FALSE) {
//}
}
// mysql_connect
// mysql_select_db
//$consulta = "SELECT * FROM calificaciones WHERE matricula = $id";
//} //else {
//echo "¡ No se ha encontrado ningún registro !";
//}
//mysql_free_result($boleta);
//mysql_free_result($mostar);
"
";
// mysql_close
//}
?>
al enviar el formulario me aparece esto:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\wamp\www\PaginaIMCED\mostrar_boleta2.php on line 91
gracias de antemano
Te agradecería que abrieses una nueva pregunta con este tema.
Te he respondido a muchas preguntas en esta y sólo cuenta como una. Lo correcto es realizar cada pregunta independientemente para poder valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas