Foros del Web » Programando para Internet » PHP »

Error en consulta

Estas en el tema de Error en consulta en el foro de PHP en Foros del Web. Sabia que escribir Urgente no me iba a resultar pero me parece espectacular la idea de la "retroayuda" Este es mi problema, no se mucho ...
  #1 (permalink)  
Antiguo 19/04/2004, 14:14
 
Fecha de Ingreso: enero-2004
Mensajes: 339
Antigüedad: 13 años, 10 meses
Puntos: 6
Error en consulta

Sabia que escribir Urgente no me iba a resultar pero me parece espectacular la idea de la "retroayuda"
Este es mi problema, no se mucho de php tengo que hacer una simple consulta a una base de datos

<html>

<head>
<title>Sacrip</title>
</head>

<body bgcolor="#DCE2E6">

<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="750" height="529" bgcolor="#DCE2E6">
<tr>
</tr>
<tr>
<td width="775" colspan="2" height="19" bgcolor="#88C6D5">
</td>
</tr>
<tr>
<td width="177" height="277">&nbsp;</td>
<td width="573" height="277">

<form method="POST" action="http://localhost/sacrip.php">
<strong>Cedula: </strong> <input type="text" name="T1" size="9"><br><br>
<input type="submit" value="buscar" name="Consultar">
</td>
</tr>
<tr>
<td width="775" colspan="2" height="47">&nbsp;</td>
</tr>
</table>
</center>
</div>

</body>
</html>

y este es en php que copie de un usuario de este foro


<html>

<head>
<title>Sacrip</title>
</head>

<body bgcolor="#DCE2E6">

<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="750" height="529" bgcolor="#DCE2E6">
<tr>
</tr>
<tr>
<td width="775" colspan="2" height="19" bgcolor="#88C6D5"></td>
</tr>
<tr>
<td width="177" height="277">&nbsp;</td>
<td width="573" height="277">

<?php
if (!isset($buscar)){
echo "Debe especificar una cadena a buscar";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("localhost", "");
mysql_select_db("sacrip", $link);
$result = mysql_query("SELECT * FROM mensualidad WHERE cedula=$T1 ORDER BY cedula", $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["cedula"]."</td> \n";
echo "<td>".$row["nombre"]."</td> \n";
echo "<td>".$row["fecha"]."</td> \n";
echo "<td>".$row["monto"]."</a></td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>
</td>
</tr>
</table>
</center>
</div>

</body>
</html>


creo que el error es tonto pero el que no sabe es como el que no ve y yo no lo veo
cuando busco mi cedula que es la unica que esta registrado y es la clave primaria me aparece el mj:
echo "Debe especificar una cadena a bucar";
por que?
  #2 (permalink)  
Antiguo 19/04/2004, 14:29
 
Fecha de Ingreso: enero-2004
Mensajes: 339
Antigüedad: 13 años, 10 meses
Puntos: 6
AYUDENMEEEEEEEEEEEEE
__________________
Pazzz mundiaaaalllll
  #3 (permalink)  
Antiguo 19/04/2004, 14:29
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Pues porque no existe una variable llamada buscar. Los campos y botones del formulario se transforman en variables llamadas como el atributo name.

De todas formas, tambien seria aconsejable que uses el array superglobal $_POST para acceder a los datos del formulario. Mira http://www.forosdelweb.com/showthrea...989#post238989

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 19/04/2004, 15:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si usas:

<input type="submit" value="buscar" name="Consultar">

deberías ver por:

if (!isset($Consultar)){

pero es recomendable que no te bases en la existencia de esa variable .. sino de alguna más crítica como la própia cadena de busqueda:

<input type="text" name="T1" size="9">


if (!isset($T1)){

Y mejor si usas los arrays superglobales como ya te mencionó Josemi.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 19/04/2004, 16:00
 
Fecha de Ingreso: enero-2004
Mensajes: 339
Antigüedad: 13 años, 10 meses
Puntos: 6
ahora me sale este mensaje
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\FoxServ\www\sacrip.php on line 29
A No se ha encontrado ningún registro !
__________________
Pazzz mundiaaaalllll
  #6 (permalink)  
Antiguo 19/04/2004, 16:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
pues usa mysql_error() para ver los mensajes de error de Mysql a nivel de conexión o de SQL:

Código PHP:
$link mysql_connect("localhost"""); // <--- www.php.net/mysql_connect .. revisa cuantos parámetros tiene esa función
mysql_select_db("sacrip"$link) or die(mysql_error()); 
y en:

Código PHP:
$result mysql_query("SELECT * FROM mensualidad WHERE cedula=$T1 ORDER BY cedula"$link) or die(mysql_error()); 
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 19/04/2004 a las 16:11
  #7 (permalink)  
Antiguo 19/04/2004, 16:21
 
Fecha de Ingreso: enero-2004
Mensajes: 339
Antigüedad: 13 años, 10 meses
Puntos: 6
asi?



<html>

<head>
<title>Sacrip</title>
</head>

<body bgcolor="#DCE2E6">

<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="750" height="529" bgcolor="#DCE2E6">
<tr>
<td width="774" colspan="2" height="185"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="775" height="200">
<param name="movie" value="sacrip.swf">
<param name="quality" value="high">
<embed src="sacrip.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="775" height="200"></embed></object></td>
</tr>
<tr>
<td width="775" colspan="2" height="19" bgcolor="#88C6D5"></td>
</tr>
<tr>
<td width="177" height="277">&nbsp;</td>
<td width="573" height="277">

<?php
if (!isset($T1)){
echo "Debe especificar una cadena a bucar";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("localhost", "");
mysql_select_db("sacrip", $link);
$result = mysql_query("SELECT * FROM mensualidad WHERE cedula=$T1 ORDER BY cedula", $link) or die(mysql_error());
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["cedula"]."</td> \n";
echo "<td>".$row["nombre"]."</td> \n";
echo "<td>".$row["fecha"]."</td> \n";
echo "<td>".$row["monto"]."</a></td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
$link = mysql_connect("localhost", ""); // <--- www.php.net/mysql_connect .. revisa cuantos parámetros tiene esa función
mysql_select_db("sacrip", $link) or die(mysql_error());
}
?>
</td>
</tr>
<tr>
<td width="775" colspan="2" height="47">&nbsp;</td>
</tr>
</table>
</center>
</div>

</body>
</html>
__________________
Pazzz mundiaaaalllll
  #8 (permalink)  
Antiguo 19/04/2004, 16:27
 
Fecha de Ingreso: enero-2004
Mensajes: 339
Antigüedad: 13 años, 10 meses
Puntos: 6
ah y una pregunta adicional esta pagina muestra los registro de un programa hecho en visual basic
¿puedo yo llenar desde este programa (vb) la base de datos SACRIP de mysql? me explico yo abro mi programita y en uno de los modulos ingreso los datos que voy a mostrar en mi pagina web eso se puede hacer?
__________________
Pazzz mundiaaaalllll
  #9 (permalink)  
Antiguo 19/04/2004, 16:30
 
Fecha de Ingreso: enero-2004
Mensajes: 339
Antigüedad: 13 años, 10 meses
Puntos: 6
otra pregunta no hay un programa que haga corrija o depure codigo en php?
porque los manuales no dicen nada como para uno ilustrarse y veo que todo el mundo habla de codigos con tanta facilidad y yo ya me se de pies a cabeza los manuales de como comenzar a programar en php
__________________
Pazzz mundiaaaalllll
  #10 (permalink)  
Antiguo 20/04/2004, 07:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
heyruben ..

NO hay programa que "corrija" código PHP mál diseñado (existe en otros lenguajes?) .. Si que existen depuradores para ejecutar tu código paso-a-paso, poner puntos de ruptura y evaluar en tiempo real el estado de variables que tengas pululando por el script .. Ejemplo: DBG debugger que va en convinación con algún IDE de desarrollo en PHP como el Maguma (www.maguma.com) .. Zend Studio (www.zend.com) tiene su propio entorno (IDE) con su própio depurador.

Sobre el tema de aprender .. habría que ver que es lo que tu sabes de "base" de programación, que es lo que conoces sobre el entorno de desarrollo "cliente-servidor" que es como trabaja PHP para desarollar páginas interactivas ... Si algo de eso desconoces debes empezar por ahí.

Todo lo demás lo tienes en el manual oficial de PHP: www.php.net si lo lees de principio a fin. No es un "tutorial" es un manual de referencia, pero .. si tu conoces por ejemplo que son los "arrays" sólo tendras que visitar el capítulo correspondiente a ese tema para ver como trabajan los arrays en PHP.

Todos los capítulos sobre algún grupo de funciones .. como por ejemplo el de las funciones de acceso a tu BD en concreto Msyql .. tienen en su priméra página toda la teoría que desees a nivel de estrucutura de uso de esas funciones .. configuración de PHP si fuese necesario o que pueda afectar al funcionamiento de las mismas y algún ejemplo básico que se suele complementar con los comentarios de los usuarios. Es importante conocer la sintax y como funcionan las funciones que tengas que usar .. por qué de eso mismo "se deduce" todo lo demás ..

Los tutoriales también te podrán ayudar .. pero no sé que tutoriales has visto (yo aprendí de esos .. concretamente de los que hay mencionados en una de las primeras FAQ's que yo mismo recopilé en su época).

Un saludo,

PD: el código que pusites no es correcto (donde pusistes otra vez las funciones de conectar a tu BD y seleccionar la BD ..) Revisa las funciones de Mysql o mira cualquier tutorial al respecto de los que veras en las FAQ's: www.php.net/mysql o FAQ's de este foro PHP).
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:02.