estimados todos.
el presente es para saludarles y compartirles un error que no he podido sacar.
me sucedio hace 3 dias y se arreglo poniendo el query en minusculas ejemplo.
lo tenia asi.
SELECT * from CONSULTAS;
se arreglo poniendole.
SELECT * from consultas;
mi error continua y es este.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/sanfranc/public_html/foro/listahijos.php on line 26
--------------------------------------------------------------------------------
les anexo el fragmento del codigo.
<html>
<head>
<title>Foro </title>
</head>
<body>
<body bgcolor="#70A040">
<br>
<table align='center' border='0' bordercolor="#FFffff" >
<tr bgcolor='#666666'>
<td>
<p align="center"><a href='index.php'><font size='4' color='white'>Volver Foro</font> </a></p>
</td>
<?$pp=$var;?>
<td>
<? print ("<p align='center'><a href='altamensaje.php?var1=$pp'><font size='4' color='white'>Responder Mensaje</font> </a></p>");?>
</td>
<td>
</td>
</tr>
<?php
if ($abierto = mysql_connect ("localhost","usuario","password")){
$leer = "SELECT id,autor,fecha,email,mensaje FROM temas WHERE padre=$var";
$datos = mysql_db_query ("basedatos",$leer);
print("<table align='center' width='50%' border='0'>");
while ($fila = mysql_fetch_array ($datos)) {
print ("<tr><td ><font size='4' color='white'>Autor :</font></td><td > ".$fila[1]."</td></tr>
<tr><td ><font size='4' color='white'>Fecha : </font></td><td>".$fila[2]."</td></tr>
<tr><td ><font size='4' color='white'>E-mail : </font></td><td>".$fila[3]."</td></tr>
<tr><td ><font size='4' color='red'>Mensaje : </font></td><td>".$fila[4]."</td></tr><tr ><td colspan='2'><hr></td></tr>");
}
print ("</table>");
} else {
print ("No se puede conectar. Intente nuevamente");
}
?>
<hr>
</body>
</html>
gracias espero puedan darme una idea. de que tenga que cambiar. puesto a que esto en mi servidor local funciona perfectamente ya cuando lo subo al dominio en internet es cuando paniquea con este error.
saludos todos y tengan un excelente dia.
Rogelio
Cómo es posible que se arregle si la pones en Mayús?
Y para el código, verifica el siguiente,
<?php
$handler = mysql_connect ("localhost","usuario","password") or die("Error: ".mysql_error());
mysql_select_db("basedatos", $handler);
if ($handler){
$sSQL = "SELECT id, autor, fecha, email, mensaje FROM temas WHERE padre='$var'";
$sQuery = mysql_query($sSQL, $handler) or die("Error: ".mysql_error());
print("<table align='center' width='50%' border='0'>");
while ($sRows = mysql_fetch_array ($sQuery)) {
print ("<tr><td ><font size='4' color='white'>Autor :</font></td><td > ".$sRows[1]."</td></tr>
<tr><td ><font size='4' color='white'>Fecha : </font></td><td>".$sRows[2]."</td></tr>
<tr><td ><font size='4' color='white'>E-mail : </font></td><td>".$sRows[3]."</td></tr>
<tr><td ><font size='4' color='red'>Mensaje : </font></td><td>".$sRows[4]."</td></tr><tr ><td colspan='2'><hr></td></tr>");
}
print ("</table>");
} else {
print ("No se puede conectar. Intente nuevamente");
}
?>
Hola Shell Root fijate que inlcui el fragmento de codigo que amablemente me compartiste y no muesta error pero tampoco muestra resultados..
de lo de mayusculas y minusculas me marcaba ese mismo error
y el nombre de la tabla esta escrito en mayusculas, se lo cambie a minusculas y lo dejo de marcar..
espero tus comentarios.
muchso saludos
Intenta printear la salida de la Query, para verificar dentro del moto de base de datos, así,
<?php
$handler = mysql_connect ("localhost","usuario","password") or die("Error: ".mysql_error());
mysql_select_db("basedatos", $handler);
if ($handler){
$sSQL = "SELECT id, autor, fecha, email, mensaje FROM temas WHERE padre='$var'";
$sQuery = mysql_query($sSQL, $handler) or die("Error: ".mysql_error());
########
print ($sQuery); #Aqui
########
print("<table align='center' width='50%' border='0'>");
while ($sRows = mysql_fetch_array ($sQuery)) {
print ("<tr><td ><font size='4' color='white'>Autor :</font></td><td > ".$sRows[1]."</td></tr>
<tr><td ><font size='4' color='white'>Fecha : </font></td><td>".$sRows[2]."</td></tr>
<tr><td ><font size='4' color='white'>E-mail : </font></td><td>".$sRows[3]."</td></tr>
<tr><td ><font size='4' color='red'>Mensaje : </font></td><td>".$sRows[4]."</td></tr><tr ><td colspan='2'><hr></td></tr>");
}
print ("</table>");
} else {
print ("No se puede conectar. Intente nuevamente");
}
?>
excelente maestro ya me dio otro resultado
Resource id #2
que significara
segun lo que se es que es el identificador de recursos de la consulta y efectivamente deben de aparecer 2 recursos. la pregunta y la respuesta..
pregunta. tengo que manejar un mysql close? bueno sigo con la duda original como arreglar ese mensaje posteado anteriormente Resource id #2
aqui lo raro es que en mi server local funciona perfectamente!!
Perdón men, mala mia. Es la siguiente, cambia la linea que adicione por la siguiente,
########
print ($sSQL); #Aqui
########
Cuando muestre el resultado, ejecutadlo en el motor de base de datos a ver si te trae algo la Query.
que onda hermano mira el resultado es este.
SELECT id, autor, fecha, email, mensaje FROM temas WHERE padre=''
al realizar la consulta tengo que realizar esto.
SELECT id, autor, fecha, email, mensaje
FROM temas
WHERE padre =12
LIMIT 0 , 30
tengo que quitarle las comillas y ponerle un valor. para que me de una consulta. no se si me explique. porque si estan las comillas no me muestra nada entonces la variable esa que va alli tiene que traer un valor de la pagina qeu vengo..
y me pone esto.
12 Rogelio 2010-10-18 rogelio@hotmail.com cmo se peuden casar por la iglesia cuales son los ...
23 Padre Rosales 2010-11-05 . puedes venir a pedir informes a ventanilla hijo
es el resultado cuando le quito las comillas. y le pongo un valor de lo contrario no me da nada.
que almacenas en el campo padre? si es un campo de tipo numérico no le coloques comillas.
te pregunto.. 12 no es el ID del registro:
12 Rogelio 2010-10-18 rogelio@hotmail.com cmo se peuden casar por la iglesia cuales son los ...
??
mejor muestra la estructura de la tabla y se te ayuda a armar correctamente la consulta.
saludos!!
aqui anexo la estructura.
CREATE TABLE `temas` (
`ID` tinyint(4) NOT NULL auto_increment,
`Autor` varchar(30) NOT NULL,
`Mensaje` text,
`Padre` tinyint(4) default NULL,
`Fecha` date default NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
el 12 viene representando el ID. de un mensaje que previamente selecciono , segun el mensaje que selecciono es el ID que debe de mostrar.
ejemplo. si selecciono el mensaje 16 en la pantalla donde tengo el problema me muestra esta liga.
/foro/listahijos.php?var=16
espero explicarme.
saludos.
Bueno, como vez cuando se printeo la query, no realizaba ninguna consulta ya que la variable $var no contiene ningun valor, podrías decirme esa variable que valor tiene, supongo que es la variable que es pasada como parámetro por GET, verdad? En caso de ser así, mostradnos como seteas esa variable.
en el código inicial no se ve en ningún lado donde asigna el valor a la variable $var.
Antes de usar esa variable, debes asignarle el valor pasado por parámetro, tomándolo del array correspondiente al método que uses para enviar los datos, como lo menciona Shell Root, por ejemplo:
$var = $_GET['var'];
hazlo antes de que abras la etiqueta HTML.
señores excelentisima ayuda..ya quedo resuelto
muchas gracias por la colaboracion de todos.
reciban muchos saludos y un abrazo cordial
Rogelio
Excelente que ya resolviste tú problema, pero aún no me cabe en la cabeza del porque se soluciono el problema cuando le cambiaste de Mayús/Minús la tabla, me quedo la curiosidad.
precisamente fue en esta consulta de la pagina principal
tenia
if ($abierto = mysql_connect ("localhost","usuario","password")){
$leer = "SELECT id,tema,autor,hijos,fecha FROM TEMAS WHERE tema<>' 'ORDER BY fecha desc";
$datos = mysql_db_query ("database",$leer);
y me marcaba ese error y en un foro vi que se tiene que respetar como esta escrito en la estructura con minusculas y no poner mayusculas, me aparecia ese mismo error y le cambie por
if ($abierto = mysql_connect ("localhost","usuario","password")){
$leer = "SELECT id,tema,autor,hijos,fecha FROM temas WHERE tema<>' 'ORDER BY fecha desc";
$datos = mysql_db_query ("database",$leer);
y funciono..se me hace raro