Comunidad de diseño web y desarrollo en internet online

ayuda con codigo de buscador

Citar            
MensajeEscrito el 24 Mar 2007 07:36 pm
hola, llevo poco tiempo aprendiendo php y no lo comprendo en su totalidad asi que quisiera que me ayuden a encontrar que le falta a este codigo o que esta mal:

Código :

<?php require_once('../Connections/kiausers.php'); ?>
<html> 
<body> 
  
<?php 

$result = mysql_query("SELECT * FROM kia"); 
if ($row = mysql_fetch_array($result)){ 
   echo "<table border = '1'> \n"; 
   echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n"; 
   do { 
      echo "<tr><td>".$row["Amount Extended"]."</td><td>".$row["L/I"]."</td><td>".$row["Part Name"]."</td><td>".$row["Part No"]."</td><td>".$row["QTY"]."</td></tr> \n"; 
   } while ($row = mysql_fetch_array($result)); 
   echo "</table> \n"; 
} else { 
echo "¡ No se ha encontrado ningún registro !"; 
} 
?> 

Me da este error:

Código :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/sites/1/iespana.es/x/o/xos/site/KIA/consultaprubea.php3 on line 8
¡ No se ha encontrado ningún registro ! 
</body> 
</html>

Por izemaster

15 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 24 Mar 2007 07:46 pm
Hola

Veo q hay varios errores.

1) no haces la coneccion a la base de datos
2) Antes de hacer esto

Código :

if ($row = mysql_fetch_array($result)){ 

Tenes q hacer esto

Código :

if($result){

Para evitar el error q te tira. Justamente ese error es porque no puede obtener una fila del $result porque o no esta inicializada esa variable o el resultado del query produjo error.
3) El encabezado de la tabla tiene 2 columnas, pero en el while estas poniendo 5 columnas

Saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 25 Mar 2007 02:36 am
debi haber subrayado la parte que dice "llevo poco tiempo" :lol: la conexion esta arriba ahi onde dice

Código :

<?php 
   require_once('../Connections/kiausers.php'); 
?>
lo del encabezado de la tabla acabo de notarlo :o es q era un codigo q baje y solo estaba para 2 columnas asi q las agregue abajo pero no me fije en la de arriba, aun asi gracias pero si pudieras explicarme con mas detalle la parte del if($result) seria bueno, es decir q pongo despues despues de eso y en donde deberia poner el otro if()

Por izemaster

15 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 25 Mar 2007 02:53 am
izemaster, utiliza la etiqueta [CODE] para postear código asi se hace mas fácil la lectura

Por PabloHdS

251 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Mar 2007 03:26 am
lo tomare en cuenta para el siguiente post,aunq el segundo solo era una linea......
.....aun sin respuesta -___-zzz

Por izemaster

15 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 25 Mar 2007 08:25 pm
Lo que tenes que hace basicamente es preguntar si la consulta devuelve algún registro.
Para eso te conviene usar la función mysql_num_rows, la cual te devuelve un integer con la cantidad de filas que encuentra MySQL.
Y despues lo unico que haces es preguntar si esa función devuelve una cifra mayor a cero.
Entonces, vos tenes la consulta:

Código :

$result = mysql_query("SELECT * FROM kia");

Consultas la cantidad de filas que devuelve:

Código :

$num_filas= mysql_num_rows($result);

Y preguntas que sea mayor a cero

Código :

if($num_filas > 0){
   lo que tengas que hacer

Si no queres generar la variable directamente aplicar el num_rows en el if

Código :

if(mysql_num_rows($result) > 0){
   lo que tengas que hacer
}


y donde haces el DO/WHILE yo lo haría asi

Código :

while($filas= mysql_fetch_array($result){
   lo que tengas que hacer
}


Y de paso te recomiendo que leas la documentación de www.php.net.

Espero haberte ayudado.

Saludos

Por PabloHdS

251 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Mar 2007 09:18 pm
al parecer el problema era con la consulta sql algo con las comillas o la limitacion copie la consulta que me dio el phpmyadmin de mi host y eso era lo unico que tenia de mas asi que supuse que era eso, por lo demas gracias me hicise ver otros errores del codigo ^^

Por izemaster

15 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 25 Mar 2007 10:18 pm
ahora tengo otra duda me devuelve registros de toda la tabla excepto los de la clumna L/I

Código :

$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contrasenya);
mysql_select_db($bd_bdname,$link);
$result = mysql_query("SELECT * 
FROM `kia` 
WHERE `QTY` LIKE 1 
LIMIT 0 , 30",$link);
$num_filas= mysql_num_rows($result);

if($num_filas > 0){
$row = mysql_fetch_array($result); 
   echo "<table border = '1'> \n"; 
   echo "<tr><td>L/I</td><td>Part No</td><td>Part Name</td><td>QTY</td></tr> \n"; 
   do { 
      echo "<tr><td>".$row["L/I"]."</td><td>".$row["Part No"]."</td><td>".$row["Part Name"]."</td><td>".$row["QTY"]."</td></tr> \n"; 
     
   } while ($row = mysql_fetch_array($result)); 
   echo "</table> \n"; 
} else { 
echo "¡ No se ha encontrado ningún registro !"; 
};
?> 

para ver exactamente cual es mi problema has click AQUI

Por izemaster

15 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 25 Mar 2007 11:26 pm
Hola

mmm.. lo mejor es no utilizar el caracter "/" en el nombre de columas, si queres separar palabas utilzar el "_" o por mayusculas asi: dia_semana, diaSemana. No todos los caracteres estan permitidos como nombres de comumas, talvez ese sea el problema, nose... fijate en el phpmyadmin a ver q onda...

saludos!

Por alfathenus

833 de clabLevel

5 tutoriales

 

buenos aires || Argentina

firefox
Citar            
MensajeEscrito el 29 Mar 2007 12:19 am
hola ya regrese :lol: me funciono luego de cambiar el nombre de la columna de la tabla pero ahora tengo otra duda como puedo hacer que la consulta sea dinamica o sea que el usuario escriba en otra pagina el valor a buscar, esto es lo que he hecho hasta ahora
en el php

Código :

$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contrasenya);
mysql_select_db($bd_bdname,$link);
$result = mysql_query("SELECT * 
FROM `kia` WHERE li= `$buscar`
LIMIT 0 , 30",$link);
$num_filas= mysql_num_rows($result);
if($num_filas > 0){
$row = mysql_fetch_array($result); 
   echo "<table border = '0' cellspacing='0' cellpadding='0'> \n"; 
   echo "<tr bgcolor='#DF0031'><td><center><font color='white' >Registro</font></center></td><td><center><font color='white'>Part No</font></center></td><td><center><font color='white'>Part Name</font></center></td><td><center><font color='white'>QTY</font></center></td><td><center><font color='white'>Amount Extended</font></center></td></tr> \n"; 
   do { 
      echo "<tr bgcolor='#CCCCCC'><td>".$row["LI"]."</td><td>".$row["Part No"]."</td><td>".$row["Part Name"]."</td><td align='right'>".$row["QTY"]."</td><td align='right'>".$row["Amount Extended"]."</td></tr> \n"; 
     
   } while ($row = mysql_fetch_array($result)); 
   echo "</table> \n"; 
} else { 
echo "¡ No se ha encontrado ningún registro !"; 
};
?> 

y en el html

Código :

<!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&iacute;tulo</title>
</head>

<body>
<form action="consultaprubea.php3" method="post">
<select name="buscarx" id="buscax" >
<option>Registro</option>
<option>Part No</option>
<option>Part Name</option>
<option>QTY</option>
</select>
<label>
<input type="text" name="buscar" id="buscar"/>
</label>
<label>
<input type="submit" name="Submit" value="Enviar" />
</label>
</form>
</body>
</html>

Por izemaster

15 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 29 Mar 2007 01:58 am
olviden lo ultimo :roll: ya lo solucione, pero ahora tengo otro problema :lol:

Código :

$link = mysql_connect($bd_servidor,$bd_usuario,$bd_contrasenya);
mysql_select_db($bd_bdname,$link);?>
<? if(!$HTTP_POST_VARS){ ?>
<form action="consultaprubea.php3" method="post">
<select name="buscarx" id="buscarx" >
<option>Registro</option>
<option>Part No</option>
<option>Part Name</option>
<option>QTY</option>
</select>
<label>
<input type="text" name="buscarh" id="buscarh"/>
</label>
<label>
<input type="submit" name="Submit" value="Enviar" />
</label>
</form>

<? } else {
$buscarh = $_POST["buscarh"];
$buscarx = $_POST["buscarx"];

//aqui esta el problema
if($buscarx="Registro"){
$queri='SELECT * FROM `kia` WHERE li="'.$buscarh .'"';
}
else {
$queri='SELECT * FROM `kia` WHERE Part No LIKE "%'.$buscarh .'%"';
};
//hasta aqui
$result = mysql_query($queri);
$num_filas= mysql_num_rows($result);
if($num_filas > 0){
$row = mysql_fetch_array($result); 
   echo "<form name='form4' id='form4'><table border = '0' cellspacing='0' cellpadding='0'> \n"; 
   echo "<tr bgcolor='#DF0031'><td><center><font color='white' >Registro</font></center></td><td><center><font color='white'>Part No</font></center></td><td><center><font color='white'>Part Name</font></center></td><td><center><font color='white'>QTY</font></center></td><td><center><font color='white'>Amount Extended</font></center></td><td><center><font color='white'>&nbsp;&nbsp;&nbsp;</font></center></td></tr> \n"; 
   do { 
      echo "<tr bgcolor='#CCCCCC'><td>".$row["LI"]."</td><td>".$row["Part No"]."</td><td>".$row["Part Name"]."</td><td align='right'>".$row["QTY"]."</td><td align='right'>".$row["Amount Extended"]."</td><td align='middle'><input type='checkbox' name='".$row["LI"]."' id='".$row["LI"]."'></td></tr> \n"; 
     
   } while ($row = mysql_fetch_array($result)); 
   echo "</table></form> \n"; 
} else { 
echo "¡ No se ha encontrado ningún registro !"; 
};
};
?> 

  
</body> 
</html>

lo que quiero es q la consulta cambie segun el valor del select ;
pero aunque yo cambio el valor del select la consulta siempre me resulta igual, quisiera saber que anda mal con mi codigo :crap:

Por izemaster

15 de clabLevel



Genero:Masculino  

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.