Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Servia en 29 Diciembre 2008, 15:46 PM

Título: Otro problema al conectar con la base sql..
Publicado por: Servia en 29 Diciembre 2008, 15:46 PM
Hola, esto si que no me lo explico, tengo un logueo, entro sin problemas pero en cambio cuando intento hacer que saque algo de la base después, me salta con:

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) in imagenes.php on line 55

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in imagenes.php on line 55
Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2)

Y en esa línea lo que hay es:

$sql="SELECT * FROM images WHERE id='$id'";
$result=mysql_query($sql) or die (mysql_error());
$row=mysql_num_rows($result);
Título: Re: Otro problema al conectar con la base sql..
Publicado por: & eDu & en 29 Diciembre 2008, 15:59 PM
Prueba con
Código (php) [Seleccionar]
<?
$sql = mysql_query("SELECT * FROM images WHERE id='$id'");
$row = mysql_num_rows($sql);
?>
Título: Re: Otro problema al conectar con la base sql..
Publicado por: mit en 29 Diciembre 2008, 16:56 PM
& eDu & porque habria de probar con lo mismo  :huh:

una duda Servia:
Tal vez sea tonto lo que te voy a decir, pero, tu campo id de tu tabla images realmente es de tipo varchar o char ??

se me pasaba xD al parecer es un error con la conexion, el mismo sql te lo dice, rectifica que abres y cierras la conexion donde es debido, rectifica que los datos para la conexion esten correctos, estoy casi seguro que es eso.

PD: no siempre el error esta exactamente en la linea que te lo marcan

saludos  :)
Título: Re: Otro problema al conectar con la base sql..
Publicado por: Servia en 29 Diciembre 2008, 17:09 PM
Cita de: & eDu & en 29 Diciembre 2008, 15:59 PM
Prueba con
Código (php) [Seleccionar]
<?
$sql = mysql_query("SELECT * FROM images WHERE id='$id'");
$row = mysql_num_rows($sql);
?>


Entonces me dice:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in imagenes.php on line 51

y la línia es la de $row=...

juraría que lo hago bien mit, lo que he posteado es todo lo usado para hacerlo.
Título: Re: Otro problema al conectar con la base sql..
Publicado por: mit en 29 Diciembre 2008, 17:29 PM
pues si es todo lo que has usado, entonces tienes un grave error xD primero tienes que establecer conexion con la base de datos jeje, deja te paso un ejemplo:

este archivo lo uso para crear mi conexion:

con.php
<?   
   session_start();
   function abrir_conexion()
   {
      $host = "localhost"; //usually localhost, or ip
      $nombre_usuario = "root"; // database user
      $password = "XXXX"; // database pass
      $base_datos = "mibasededatos"; // database name
      $con = mysql_connect($host, $nombre_usuario, $password) or die("Cannot Connect");
      mysql_select_db($base_datos, $con);
      $_SESSION["con"] = $con;
   }
?>

y cuando lo voy a usar, uso lo siguiente:

index.php

$id_usuario=7;
abrir_conexion();
   $res=mysql_query("select id_usuario FROM usuarios WHERE id_usuario=$id_usuario") or die(mysql_error());
   $id_usuario_exist=mysql_num_rows($res);
mysql_close($_SESSION["con"]);

Y no tengo ningun problema, te aseguro al 100% que estas haciendo algo mal en tu conexion a la base de datos.

saludos
Título: Re: Otro problema al conectar con la base sql..
Publicado por: Servia en 29 Diciembre 2008, 17:36 PM
Voy a probarlo, pero no entiendo como me puede funcionar el registro entonces...

Edito, thanks, pero sigo sin entender como lo hacía antes. Nunca escribía el mysql_connect y igualmente tiraba.
Título: Re: Otro problema al conectar con la base sql..
Publicado por: mit en 29 Diciembre 2008, 18:04 PM
Es sencillo mira, te dire como trabaja:
Si no usas el mysql_connect, a la hora que hagas tus consultas en el mysql_query, tienes que especificarle la conexion:

<?
$sql = mysql_query("SELECT * FROM images WHERE id='$id'",conexion);
$row = mysql_num_rows($sql);
?>

pruebalo y te daras cuenta que ya te funciona.
saludos  ;)
Título: Re: Otro problema al conectar con la base sql..
Publicado por: Servia en 29 Diciembre 2008, 19:28 PM
Explícame esto entonces, tengo lol.php:
Código (php) [Seleccionar]
<?
require('config.php');

$id=($_GET["id"]);
$condicion=$_SESSION['SESS_MEMBER_LOG'];

$sql = "SELECT * FROM noticias WHERE id='".$id."'";
$result = mysql_query($sql) or die(mysql_error());   
$row =  mysql_fetch_array($result);   
$rows = mysql_num_rows($result);

$zql = "SELECT * FROM members WHERE login='".$condicion."'";
$resule = mysql_query($zql) or die(mysql_error());     
$gow = mysql_fetch_array($resule);     
$gows = mysql_num_rows($resule);

if ($gow["rango"]==admin) {
echo '<form id="form1" name="form1" method="post" action="modnoticia2.php">
  <label>Título:
  <input type="text" name="titulo" size="56" value="'; echo $row['titulo']; echo'"/>
  </label>
  <p>
    <label>Autor:
    <input type="text" name="autor" value="'; echo $row['autor']; echo'" />
    </label>
  </p>
  <p>
    <label>Texto: <br />
    <textarea name="texto" rows="10" cols="60">'; echo $row['texto']; echo'</textarea>
    </label>
  </p>
  <p>
    <label>
    <input type="submit" name="Submit" value="Guardar" />
    </label>
    <input type="hidden" name="id" value="'; echo $id; echo'">
  </p>
</form>
<p><a href="bornoticia.php?id='; echo $id; echo'">Eliminar noticia</a></p>';
} else {
echo '<img src="ajax.gif" /> Cargando, espera por favor.';
}
?>


y en config.php:

Código (php) [Seleccionar]
<?php
    define
('DB_HOST''-------');
    
define('DB_USER''***********');
    
define('DB_PASSWORD''*******');
    
define('DB_DATABASE''********');
?>


Título: Re: Otro problema al conectar con la base sql..
Publicado por: mit en 29 Diciembre 2008, 20:09 PM
y en que lugar seleccionas la base de datos con la que quieres trabajar? creo que estas frito  :¬¬

busca un manual para saber el procedimiento de como establecer conexion con mysql desde php. Para empezar jamas creas una conexion y para empeorar ni siquiera seleccionas una base de datos -.-

En tu codigo por ningun lado veo que establescas la conexion y enseima que selecciones la base de datos que quieres usar, el mysql_select_db no es necesario pero te aconsejo establecerlo, ya que cuando quieras ejecutar una consulta, le tendras que pasar el paramentro de la conexion ( que no veo que crees en ningun lugar )

$con = mysql_connect($host, $nombre_usuario, $password) or die("Cannot Connect");
      mysql_select_db($base_datos, $con);

Espero quede claro  ;)
saludos
Título: Re: Otro problema al conectar con la base sql..
Publicado por: Servia en 29 Diciembre 2008, 22:13 PM
Cita de: mit en 29 Diciembre 2008, 20:09 PM
y en que lugar seleccionas la base de datos con la que quieres trabajar? creo que estas frito  :¬¬

busca un manual para saber el procedimiento de como establecer conexion con mysql desde php. Para empezar jamas creas una conexion y para empeorar ni siquiera seleccionas una base de datos -.-

En tu codigo por ningun lado veo que establescas la conexion y enseima que selecciones la base de datos que quieres usar, el mysql_select_db no es necesario pero te aconsejo establecerlo, ya que cuando quieras ejecutar una consulta, le tendras que pasar el paramentro de la conexion ( que no veo que crees en ningun lugar )

$con = mysql_connect($host, $nombre_usuario, $password) or die("Cannot Connect");
      mysql_select_db($base_datos, $con);

Espero quede claro  ;)
saludos

Eso es lo que te pido que me expliques, porque funciona XD todos los tengo así.
Título: Re: Otro problema al conectar con la base sql..
Publicado por: & eDu & en 30 Diciembre 2008, 12:48 PM
Código (php) [Seleccionar]
$pip = mysql_connect(servidor,usuario,contraseña);
Eso recoje los datos de la base de datos, contraseña,usuario etc..
Código (php) [Seleccionar]
mysql_select_db(tubasede datos, $pip);
Este selecciona la base de datos y le introduce los datos recojidos anteriormente para poder hacer la conexión.


ya... lo pillas? x'dd
Título: Re: Otro problema al conectar con la base sql..
Publicado por: Servia en 30 Diciembre 2008, 15:59 PM
Cita de: & eDu & en 30 Diciembre 2008, 12:48 PM
Código (php) [Seleccionar]
$pip = mysql_connect(servidor,usuario,contraseña);
Eso recoje los datos de la base de datos, contraseña,usuario etc..
Código (php) [Seleccionar]
mysql_select_db(tubasede datos, $pip);
Este selecciona la base de datos y le introduce los datos recojidos anteriormente para poder hacer la conexión.


ya... lo pillas? x'dd

y dale, te digo que me cuentes porque el mío va sin usarlo, no que como lo hago, claro que lo entiendo -.-