Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   PHP no se conecta a MYSQL (https://www.clubdelphi.com/foros/showthread.php?t=48514)

richy08 26-09-2007 20:54:28

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
:confused: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

dec 26-09-2007 21:06:23

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 ]".

richy08 26-09-2007 22:10:23

Lo siento moderador prometo que es la ultima vez que pongo codigo sin etiquetas:p

enecumene 27-09-2007 03:38:22

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.

richy08 27-09-2007 16:01:33

Cita:

Empezado por enecumene (Mensaje 234234)
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 :D bueno checare tu sugerencia gracias a y si sabes donde puedo bajar un trial que si pueda :confused: instalar de delphi para php se te agradece.

saludos

richy08 27-09-2007 18:07:43

Hola que tal sigo con los mimo de PHP y estoy un poco confundido:confused: 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:D)


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 :confused: gracias

enecumene 27-09-2007 18:15:53

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.

richy08 27-09-2007 18:21:35

Cita:

Empezado por enecumene (Mensaje 234372)
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:confused: 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:confused:

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;
 } 


enecumene 27-09-2007 18:26:18

Intenta quitando el isset solo el !.

Código PHP:

if (!$_POST["Buscar"]) 

Saludos.

richy08 27-09-2007 18:33:23

Cita:

Empezado por enecumene (Mensaje 234377)
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


La franja horaria es GMT +2. Ahora son las 11:24:49.

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