Foros del Web » Programando para Internet » PHP »

no me escribe en la bd

Estas en el tema de no me escribe en la bd en el foro de PHP en Foros del Web. hola a todos, les pido ayuda porque no consigo que me escriba en la base de datos. tengo instalado el servidor apache, en la base ...
  #1 (permalink)  
Antiguo 20/09/2009, 14:59
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 18 años, 2 meses
Puntos: 1
no me escribe en la bd

hola a todos, les pido ayuda porque no consigo que me escriba en la base de datos.

tengo instalado el servidor apache, en la base de datos mysql he creado una base de datos con dos tablas y unos campos por medio de phpmyadmin, el problema me viene cuando intento insertar datos desde php. aqui les dejo el codigo para que lo vean.

Código PHP:
<?php

$dbhost
='localhost';
$dbusername='root';
$dbuserpass='pass';
$dbname='proyecto1';

session_start();

mysql_connect($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die ('Cannot select database');

//Si existe sesion se recogen las variables mediante post
if(session_is_registered("suser")){
    
$user=$_POST['user'];
    
$nombre=$_POST['nombre'];
    
$x=$_POST['x'];
    
$y=$_POST['y'];
    
$user=$_POST['user'];
    
$pt=$_POST['pt'];
    
$op=$_POST['opcional'];

if(
$op=="b"){
    
//para borrar
    
$query=mysql_query("SELECT city, usuario FROM cities WHERE usuario='$user'") or die (mysql_error());
    
$ald=mysql_fetch_array($query);
    if (
$ald['usuario']==$user && $ald['city']==$nombre && $ald['x']==$x && $ald['y']==$y){
        
//se comprueba si existe la city
        
$sql "DELETE FROM cities WHERE ";
        
$result mysql_query($sql);
        
    }else{
        
//la city no existe
        
echo "la city especificada no existe 4";
        echo 
"<p>";
        echo 
'<a href="http-://localhost/datos.php?user=$user">volver</a>';
    }
}else{
    
//esto es para crear la city
$query=mysql_query("SELECT city, usuario FROM cities WHERE usuario='$user'") or die (mysql_error());
    
$ald=mysql_fetch_array($query);
    
//comprobamos que no existe ya la city
    
if ($ald['usuario']==$user && $ald['city']==$nombre && $ald['x']==$x && $ald['y']==$y){
        echo 
"la city ya existe";
        echo 
"<p>";
        echo 
'<a href="http-://localhost/datos.php?user=$user">volver</a>';
    }else{
        
//la city entonces no existe y la creamos
        //$aabd="INSERT INTO cities(usuario, city, x, y) VALUES ('$user', '$nombre', '$x', '$y')";
        
$aabd "INSERT INTO `cities` (`usuario` ,`citi` ,`x` ,`y`,`pt`) + VALUES ('$user', '$nombre', '$x', '$y','$pt')";
        
$result mysql_query($aabd);
        echo 
'<a href="http-://localhost/datos.php?user=$user">volver</a>';
    
        
$query=mysql_query("SELECT city, usuario FROM cities WHERE usuario='$user'");
        
$ald=mysql_fetch_array($query);
        echo 
$ald;
    }
        
}
}else{
echo 
"no estas logueado";
}

?>
la base de datos se llama proyecto1, la tabla donde quiero escribir o mirar se llama cities y consta de los campos city, usuario, x e y

no me lee ni la base de datos ni me escribe, no me reconoce que la city esta creada ya y la pone a crear pero luego miro la base de datos en el phpmyadmin y no hay nada de nada, solo lo que he escrito desde la consola de phpmyadmin.

nose si es un fallo de codigo o es de configuracion para que se entiendan php y mysql.

aclarar que primero se conecta a la base de datos, luego se comprueba la sesion, se recogen los datos enviados mediante post, segun algunos se procede a crear una city o borrar (b=borrar y c=crear), comprueba que no exista una igual, para ello comprueba que todos los parametros son iguales, si es asi esque ya existe y no deberia crearla.

en el codigo para borrar no esta logrado porque no he llegado a ese punto.

espero vuestra ayuda.
gracias.
  #2 (permalink)  
Antiguo 20/09/2009, 15:34
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: no me escribe en la bd

Quizas sea algo tonto, pero justo en la seccion de INSERT estas usando acentos en vez de comillas simples:

Cita:
`
  #3 (permalink)  
Antiguo 20/09/2009, 15:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: no me escribe en la bd

Es perfectamente válido usar comillas invertidas.

Para ver la causa del problema es recomendable comparar el resultado de mysql_query, sí este es falso ver el valor de mysql_error().

Saludos.
  #4 (permalink)  
Antiguo 20/09/2009, 16:49
 
Fecha de Ingreso: enero-2006
Mensajes: 76
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: no me escribe en la bd

como puedo realizar esas operaciones que pides?
con codigo o manualmente desde phpmyadmin?
  #5 (permalink)  
Antiguo 20/09/2009, 18:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: no me escribe en la bd

En tu código, lo que haces es hacer control de errores, por ejemplo:
Código PHP:
Ver original
  1. $sQuery = "SELECT..";
  2. $result = mysql_query($sQuery) or die("error en $sQuery: " . mysql_error());

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:58.