Foros del Web » Programando para Internet » PHP »

problema con php y mysql

Estas en el tema de problema con php y mysql en el foro de PHP en Foros del Web. Tengo algo mal en el codigo, pues cuando lo ejecuto, no me inserta los datos... para dudas, $conex = mysql_connect('localhost','root','****'); <?php session_start(); include "config.php"; if(isset($_POST['send'])) ...
  #1 (permalink)  
Antiguo 30/11/2013, 08:54
 
Fecha de Ingreso: noviembre-2013
Mensajes: 10
Antigüedad: 10 años, 4 meses
Puntos: 0
Exclamación problema con php y mysql

Tengo algo mal en el codigo, pues cuando lo ejecuto, no me inserta los datos...
para dudas, $conex = mysql_connect('localhost','root','****');

<?php
session_start();
include "config.php";

if(isset($_POST['send']))
{
$name = $_SESSION['username'];
$rango = 2;

}elseif(isset($_POST['go']))
{
$name = $_POST['username'];
$rango = 1;

}else{
echo "ERROR 868950925";
}
$tittle= $_POST['tittle'];

$body = $_POST['body'];


$sql = "INSERT INTO `spectrum-solaris`.`articles` (`name`, `tittle`, `body`, `rango`) VALUES (\'$name\', \'$tittle\', \'$body\', \'$rango\');";

mysql_query($sql,$conex);

header ("Location: index.php");
?>


aqui tambien os dejo el codigo del formulario:


<body>
<?php
session_start();
include "config.php";

?>
<nav class='navbar'>
<div class='navbar-inner'>
<ul class='nav nav-tabs'>

<?php
if(isset($_SESSION['username']))
{
?>

<li><a href="index.php">Spectrum Questions</a></li>
<li><a href="ask.php">Ask</a></li>
<li><a href="username.php">Logged in as <?=$_SESSION['username']?></a></li>
<li><a href="user.php">Edit User</a></li>
<li><a href="form.php">Users</a></li>
<li><a href="logout.php">Log out</a></li>

<?php
}else{
?>

<li><a href="index.php">Spectrum Questions</a></li>
<li><a href="asked.php">Ask</a></li>
<li><a href="form.php">Sign Up</a></li>
<li><a href="login.php">Log In</a></li>

<?php
}
?>
</ul>
</div>
</nav>

<p><form action="asked.php" method="post">

<?php
if(isset($_SESSION['username']))
{
?>
<br/>
<?php
}else{
?>
<br/>
<label for="username">Username: </label>
<input type="text" name="username" id="username"/>
<?php
}
?>

<br/> <br/>

<label for="tittle">Tittle: </label>
<input type="text" name="tittle" id="tittle"/>

<br/> <br/>

<label for="body">Body: </label>
<textarea cols="90" rows="10" name="body" id="body"></textarea>

<br><br>

<?php
if(isset($_SESSION['username']))
{
?>

<input type="submit" name="send" value="Send">

<?php
}else{
?>

<input type="submit" name="go" value="Send">

<?php
}
?>

</p></form>



</div>

</body>


y el config.php:


<?php
$conex = mysql_connect("localhost", "root", "*********");
$db = mysql_select_db("spectrum-solaris", $conex);
$select = mysql_select_db("spectrum-solaris", $conex);
?>

si me podeis responder os lo agradeceré
  #2 (permalink)  
Antiguo 30/11/2013, 09:04
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: problema con php y mysql

Mirando por encima veo un posible problema con los include. No se si como lo haces funciona, pero yo no lo hago así.

Tu código:
include "config.php";

Correcto(?):
include("config.php");



PD: desde aquí te invito a cambiar a MySQLi

Última edición por arturvv; 30/11/2013 a las 09:05 Razón: Aconsejar el cambio a MySQLi
  #3 (permalink)  
Antiguo 30/11/2013, 09:05
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 10 años, 6 meses
Puntos: 43
Respuesta: problema con php y mysql

Código PHP:
Ver original
  1. $sql = "INSERT INTO `spectrum-solaris`.`articles` (`name`, `tittle`, `body`, `rango`) VALUES (\'$name\', \'$tittle\', \'$body\', \'$rango\');";

Estás usando comillas dobles y escapando a las comillas simples, no hace falta eso.

Agregale esto para ver qué error te tira:

Código PHP:
Ver original
  1. if (!mysql_query($sql,$conex))
  2. {
  3.     die('El error es: '.mysql_error().'<br />En la consulta: '.$sql);
  4. }
  #4 (permalink)  
Antiguo 30/11/2013, 09:13
 
Fecha de Ingreso: noviembre-2013
Mensajes: 10
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: problema con php y mysql

Cuervoo:

me pasa esto, pero yo no veo el error en la sintaxis:

El error es: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'PRUEBA\', \'Esto es una prueba\', \'Esto es una prueba\', \'1\')' at line 1
En la consulta: INSERT INTO `spectrum-solaris`.`articles` (`name`, `tittle`, `body`, `rango`) VALUES (\'PRUEBA\', \'Esto es una prueba\', \'Esto es una prueba\', \'1\');
  #5 (permalink)  
Antiguo 30/11/2013, 09:24
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 10 años, 6 meses
Puntos: 43
Respuesta: problema con php y mysql

No escapes a las comillas simples. Ponelo asi:

Código PHP:
Ver original
  1. $sql = "INSERT INTO `spectrum-solaris`.`articles` (`name`, `tittle`, `body`, `rango`) VALUES ('$name', '$tittle', '$body', '$rango');";
  #6 (permalink)  
Antiguo 30/11/2013, 09:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema con php y mysql

Como ya te dijeron: lo estás complicando demasiado. Cuando usas comillas (") para crear la query no necesitas escapar los apóstrofos (') internos. En todo caso debes escaparlos si los mismos están dentro de alguna de las variables usadas, pero no para encerrar su contenido.
O sea:
Código PHP:
$sql "INSERT INTO `spectrum-solaris`.`articles` (`name`, `tittle`, `body`, `rango`) ";
$sql .= "VALUES ('$name', '$tittle, '$body', '$rango')"
Por cierto, ¿de dónde salen "$name" y "$rango"?
No veo donde toma sus valores, por lo que deben estar entrando como valores vacíos...



PD: No dupliques posts. Espera a refrescar la pagina para ver si se envió o no.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 30/11/2013, 09:50
 
Fecha de Ingreso: noviembre-2013
Mensajes: 10
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: problema con php y mysql

gnzsoloyo, $name entra del $_SESSION['username'] si hay, y si no hay, de uno que pone el visitante, y $rango puede ser 1 o 2 dependiendo de si $name es o no el $_SESSION['username']
  #8 (permalink)  
Antiguo 30/11/2013, 10:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problema con php y mysql

Por simple claridad de código y fácil revisión te aconsejo que hagas al inicio todas las asignaciones de variables.
Poner las asignaciones a medida que la necesitas hace que se vuelva realmente difícil de analizar.

Programar no es solo hacer que la computadora haga cosas. Programar bien es hacer también códigos que sean comprensibles para quien no los hizo, porque no siempre serás tu el que deba corregirlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 30/11/2013, 11:14
 
Fecha de Ingreso: noviembre-2013
Mensajes: 10
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: problema con php y mysql

ok, gnsoloyo, intentaré hacerlo así la próxima vez, gracias

Etiquetas: bases-de-datos, formulario, mysql
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 12:46.