Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2007
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
PHP no se conecta a MYSQL

Hola que tal compañeros con la novedad que empiezo a programar a PHP es bastante parecido a servlets pero ahora tengo una duda baje un codigo para conectarme a una base de datos pero me da el siguiente error

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\Rarellano\Desktop\Codigo de PHP\clase_mysql.inc on line 110
Alguien sabra que pueda ser buen oañado le codigo para que lo vean:

Código PHP:
<html>
 <head>
  <title></title>
</head>
<body>
<html>
<?php
 
Require ("clase_mysql.inc");
 
$miconexion = new DB_mysql ;
 
$miconexion->conectar("users""localhost""root""");
 
$miconexion->consulta("SELECT * FROM users");
 
$miconexion->verconsulta();
?>
</body>
</html>
 
<?php
 
class DB_mysql
 
{
  
/* variables de conexión */
  
var $BaseDatos;
  var 
$Servidor;
  var 
$Usuario;
  var 
$Clave;
  
/* identificador de conexión y consulta */
  
var $Conexion_ID 0;
  var 
$Consulta_ID 0;
  
/* número de error y texto error */
  
var $Errno 0;
  var 
$Error "";
  
/* Método Constructor: Cada vez que creemos una variable
  de esta clase, se ejecutará esta función */
   
function DB_mysql($bd "phonebook"$host "localhost"$user "root"$pass "")
   {
    
$this->BaseDatos $bd;
    
$this->Servidor $host;
    
$this->Usuario $user;
    
$this->Clave $pass;
   }
   
/*Conexión a la base de datos*/
 
function conectar($bd$host$user$pass)
 {
  if (
$bd != "")
     
$this->BaseDatos $bd;
  if (
$host != "")
     
$this->Servidor $host;
  if (
$user != "")
     
$this->Usuario $user;
  if (
$pass != "")
      
$this->Clave $pass;
  
// Conectamos al servidor
  
$this->Conexion_ID mysql_connect($this->Servidor$this->Usuario$this->Clave);
  if (!
$this->Conexion_ID)
  {
   
$this->Error "Ha fallado la conexión.";
   return 
0;
  }
   
//seleccionamos la base de datos
  
if (!@mysql_select_db($this->BaseDatos$this->Conexion_ID))
  {
    
$this->Error "Imposible abrir ".$this->BaseDatos ;
    return 
0;
  }
  
/* Si hemos tenido éxito conectando devuelve
  el identificador de la conexión, sino devuelve 0 */
  
return $this->Conexion_ID;
}
  
/* Ejecuta un consulta */
  
function consulta($sql "")
  {
   if (
$sql == "")
   {
    
$this->Error "No ha especificado una consulta SQL";
    return 
0;
   }
   
//ejecutamos la consulta
   
$this->Consulta_ID = @mysql_query($sql$this->Conexion_ID);
   if (!
$this->Consulta_ID)
   {
    
$this->Errno mysql_errno();
    
$this->Error mysql_error();
   }
   
/* Si hemos tenido éxito en la consulta devuelve
   el identificador de la conexión, sino devuelve 0 */
   
return $this->Consulta_ID;
  }
 
/* Devuelve el número de campos de una consulta */
 
function numcampos()
 {
 
// return mysql_num_fields($this->Consulta_ID);
 
}
 
/* Devuelve el número de registros de una consulta */
 
function numregistros()
 {
  
//return mysql_num_rows($this->Consulta_ID);
 
}
 
/* Devuelve el nombre de un campo de una consulta */
 
function nombrecampo($numcampo)
 {
  return 
mysql_field_name($this->Consulta_ID$numcampo);
 }
 
/* Muestra los datos de una consulta // mostramos los nombres de los campos      */
 
function verconsulta()
 {
  echo 
"<table border=1>\n";
  for (
$i 0$i <$this->numcampos(); $i++)
  {
   echo 
"<td><b>".$this->nombrecampo($i)."</b></td>\n";
  }
   echo 
"</tr>\n";
    
// mostrarmos los registros
   
while ($row mysql_fetch_row($this->Consulta_ID))
   {
    echo 
"<tr> \n";
    for (
$i 0$i $this->numcampos(); $i++)
    {
      echo 
"<td>".$row[$i]."</td>\n";
     }
     echo 
"</tr>\n";
   }
 }
//fin de la Clse DB_mysql
?>
gracias por cualquier comentario

Última edición por dec fecha: 26-09-2007 a las 21:07:50.
Responder Con Cita
  #2  
Antiguo 26-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Richy, luego de varias decenas de mensajes, deberías saber que en estos foros puede mostrarse código fuente resaltado dentro de los mensajes. ¿Verdad que ahora tu mensaje se ve mejor? Fíjate (editándolo) que no he hecho sino añadir las correspondientes etiquetas "[ PHP ] [ / PHP ]".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 26-09-2007
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Lo siento moderador prometo que es la ultima vez que pongo codigo sin etiquetas
Responder Con Cita
  #4  
Antiguo 27-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola Richy08, mira no lei el codigo completo ando un poquito rapido, pero hasta donde he podido ver, veo lo siguiente:

Código PHP:
while ($row mysql_fetch_row($this->Consulta_ID)) 
creo que deberi ser asi sin el "$this->":

Código PHP:
while ($row mysql_fetch_row(Consulta_ID)) 
Cualquier cosa nos comentas. Por cierto, estas programando con delphiforphp?.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 27-09-2007
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Hola Richy08, mira no lei el codigo completo ando un poquito rapido, pero hasta donde he podido ver, veo lo siguiente:

Código PHP:
while ($row mysql_fetch_row($this->Consulta_ID)) 
creo que deberi ser asi sin el "$this->":

Código PHP:
while ($row mysql_fetch_row(Consulta_ID)) 
Cualquier cosa nos comentas. Por cierto, estas programando con delphiforphp?.

Saludos.
No quise bajar un trial de delphi para PHP pero no pude hacerlo que corrierra tuve algunos problemas aunque si me gustaria programar en delphi para php ya que delphi es uno de los lenguajes que mas domino por ahora empezare con php puro bueno checare tu sugerencia gracias a y si sabes donde puedo bajar un trial que si pueda instalar de delphi para php se te agradece.

saludos
Responder Con Cita
  #6  
Antiguo 27-09-2007
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Hola que tal sigo con los mimo de PHP y estoy un poco confundido instale el paquete xampp-wind32-1.5.5-installe segun para no mover nada a los archivos e configuraciones(al ultimo acabe haciendolo :S) no se segun las versiones que me instalo son estas:
11. Nov. 2006 XAMPP 1.5.5 beta
- UPDATE phpMyAdmin 2.9.1.0
- UPDATE PHP 5.2.0
30 Okt. 2006 XAMPP 1.5.5 beta 0
- UPDATE phpMyAdmin 2.9.0.2
- UPDATE MySQL 5.0.27
14 August 2006 XAMPP 1.5.4 Beta 1
- UPDATE Apache 2.2.3

baje un editor trial que se llama dzSoft php editor que tiene monta do su propio sevidor web la pregunta es por que segun los codigos que bajo no corren creo que tiene que ver por las verisones del php a l oque he leido o empiezo a pensar que le editor no compila bien(disculpen mi ignorancia si las paginas PHP no se compilan me quede con lso servlets que si lo hacen)


este es el codigo que utilizo
buscador.php
Código PHP:
<html>
<body>
<?php
 print_r
($_POST);
 if (!isset(
$_POST["Buscar"]))
 {
   echo 
"<p>Debe especificar una cadena a buscar</p> \n";
   echo 
"<p><a href=buscar.php>Volver</p> \n";
   echo 
"</html></body> \n";
   exit;
 }
    
$link mysql_connect("localhost""root""");
    
mysql_select_db("agenda");
    
$sql "SELECT * FROM users WHERE snombre LIKE '%$_POST["Buscar"]%' ORDER BY snombre";
    echo 
"<p>Ejecuto el Query</p> \n";
    
$result mysql_query($sql$link);
 if (
$row mysql_fetch_array($result))
 {
  echo 
"<table border = '1'> \n";
  
//Mostramos los nombres de las tablas
  
mysql_field_seek($result,0);
  while (
$field mysql_fetch_field($result))
  {
    echo 
"<td><b>$field->name</b></td> \n";
  }
    echo 
"</tr> \n";
  do
  {
   echo 
"<tr> \n";
   echo 
"<td>".$row["auser"]."</td> \n";
   echo 
"<td>".$row["snombre"]."</td> \n";
   echo 
"<td>".$row["sdir"]."</td> \n";
   echo 
"<td>".$row["stel"]."</td> \n";
   echo 
"<td><a href='mailto:".$row[""]."'>".$row[""]."</a></td> \n";
   echo 
"</tr> \n";
   }while (
$row mysql_fetch_array($result));
   echo 
"<p><a href=buscar.php>Volver</p> \n";
   echo 
"</table> \n";
 }
 else
 {
  echo 
"<p>¡No se ha encontrado ningún registro!</p>\n";
  echo 
"<p><a href=buscar.php>Volver</p> \n";
 }
?>
</body>
</html>

que es llamado por buscar.php
Código PHP:
<html>
<
body>
<
form method "POST" action "buscador.php">
<
strong>Palabra clave:</strong>
<
input type="text" name="Buscar" size="20"><br><br>
<
input type="submit" value="Buscar">
</
form>
</
body>
</
html

print_r($_POST); cuando uso esta linea lleva la cadena pero al llegar al isset primero la tomaba como vacia despues por arte de magia la empezo a reconocer, despues cuando quiero ejecutar el query me da el siguiente error
Código PHP:
Parse errorparse errorunexpected '"'expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Documents and Settings\Rarellano\Desktop\Codigo de PHP\buscador.php on line 15 
alguien sabe por que es si es la version del PHP gracias
Responder Con Cita
  #7  
Antiguo 27-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola Richy08, el error que te da te esta indicando que hay un error de sintaxis o que algo en esa linea. revisalo bien puede ser que falta un ' o un $, ese tipo de cosas.

aqui cambia las comillas por ':

Código PHP:
$sql 'SELECT * FROM users WHERE snombre LIKE '&#37;$_POST["Buscar"]%' ORDER BY snombre'; 
Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.

Última edición por enecumene fecha: 27-09-2007 a las 18:17:57.
Responder Con Cita
  #8  
Antiguo 27-09-2007
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Hola Richy08, el error que te da te esta indicando que hay un error de sintaxis o que algo en esa linea. revisalo bien puede ser que falta un ' o un $, ese tipo de cosas.

aqui cambia las comillas por ':

Código PHP:
$sql 'SELECT * FROM users WHERE snombre LIKE '&#37;$_POST["Buscar"]%' ORDER BY snombre'; 
Saludos.
gracias enecume ya encontre el error no se si es el editor o la persona que subio el codigo a internet lo puso mal pero la solucion es quitarle a buscar las comillas y listo quedaria asi
Código PHP:
$sql 'SELECT * FROM users WHERE snombre LIKE '%$_POST[Buscar]%' ORDER BY snombre'
ahora el problema que tengo no lo entiendo, segun l oque he leido se supone
que isset te sirve para saber si una variable existe y no esta vacia con el "!" la estoy negando pero al llegar ahi lo que hace que me toma la cadena como espacios en blancos y ejecuta el query como resultado me devuelve todos los registros de la base de datos estoy mal, o estoy en lo cierto

Código PHP:
if (!isset($_POST["Buscar"]))
 {
   echo 
"<p>Debe especificar una cadena a buscar</p> \n";
   echo 
"<p><a href=buscar.php>Volver</p> \n";
   echo 
"</html></body> \n";
   exit;
 } 
Responder Con Cita
  #9  
Antiguo 27-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Intenta quitando el isset solo el !.

Código PHP:
if (!$_POST["Buscar"]) 
Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #10  
Antiguo 27-09-2007
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
Intenta quitando el isset solo el !.

Código PHP:
if (!$_POST["Buscar"]) 
Saludos.

gracias enecumene si eso es la solucion oye me podrias pasar tu msn para estar en contacto el mi oes darkka-lel@hotmail.com
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mysql no conecta en red !!!!!!!!!!!! david_uh Varios 7 16-07-2007 22:06:44
no se conecta la base mysql fernando1973 SQL 2 31-03-2007 16:19:00
No me conecta IB en Internet tulio Firebird e Interbase 2 20-03-2007 16:07:26
No conecta Interbase mediante Tcp jmoran Firebird e Interbase 5 09-02-2006 02:07:19
como veo la ip a la que se conecta el Router? carlosmoralesm Internet 5 31-03-2004 04:45:11


La franja horaria es GMT +2. Ahora son las 05:07:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi