Otro problema al conectar con la base sql..

Iniciado por Servia, 29 Diciembre 2008, 15:46 PM

0 Miembros y 1 Visitante están viendo este tema.

Servia

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

& eDu &

Prueba con
Código (php) [Seleccionar]
<?
$sql = mysql_query("SELECT * FROM images WHERE id='$id'");
$row = mysql_num_rows($sql);
?>

mit

#2
& 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  :)

Servia

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.

mit

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

Servia

#5
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.

mit

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

Servia

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''********');
?>



mit

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

Servia

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í.