Cansado de andar subiendo todos los .php para ver si funcionaban, instale los modulos de LAMP en mi ubuntu 11.04, haciendo unas pruebas de formularios en localhost, no me aparecen los errores de conexión, o sea que supongo se conecta correctamente, pero cuando me dirijo a phpmyadmin para ver si se insertaron los datos, no aparece nada, :S alguna idea?
Por cierto, mysql_query("INSERT INTO 'clientes'.'INFORMACION' ('NOMBRE', 'EMAIL', 'URL', 'GRATUITO') VALUES ('$NOMBRE', '$EMAIL', '$URL', '$GRATUITO') "); es la forma de insertarlo, pero veo como que está entre comentarios ¿no?
Rabs escribió:Por cierto, mysql_query("INSERT INTO 'clientes'.'INFORMACION' ('NOMBRE', 'EMAIL', 'URL', 'GRATUITO') VALUES ('$NOMBRE', '$EMAIL', '$URL', '$GRATUITO') "); es la forma de insertarlo, pero veo como que está entre comentarios ¿no?
Sisi, está comentado ya que probe de varias formas, con uno, con el otro, con ambos, de momento no funcionan, por cierto, esa es la forma correcta? tenia mis dudas sobre como pasar los datos de la tabla, si quiero usar variables como tendria que ponerlas? " > '$cbase'.'$tabla' < " ? o con comillas dobles?
Gracias por las respuesta Rabs!
olukarak escribió:La segunda primera opción que da Rabs es la correcta $_POST['algo'].
Comprueba que los campos sean GRATUITO, EMAIL y URL y no Gratuito, Email, url. Esto es sensible a mayúsculas y minúsculas.
Hola! los campos los relleno correctamente en cuanto a la capitalización, y aparentemente tambien de forma correcta los paso a variables, pero al momento de pasar la info a las tablas surgen mis dudas, que usar?
PERO, al cambiar las comillas simples >`< por comillas simples >'< el resultado es Nada. Sólo funciona con esas comillas que parecen tildes, tienen alguna idea de que puede ser?
Y aún funcionando en el servidor, en local no puedo hacerlo enviar datos, :l
Lo que pasa es que son distintas. Unas son comillas simples (') y otras son tildes (`). Estos últimos se utilizan para formatear las consultas adecuadamente y las comillas simples hace que lo envuelto en ellas se convierta en texto.
'3' es 3 como una cadena de texto (tipo VARCHAR). 3 es un número entero (tipo INT).
¿Cuál es la consulta SQL que estas utilizando? Publicala completa.
Porqué eliminaste lo otro? Me ayudó a solucionar el problema! :D
Lo que sucedía es que pasaba mal una variable, la quería insertar en NOMBREDECOMERCIO, porque así la llame desde el principio, y en la tabla estaba como NOMBRECOMERCIO. Una tontería la verdad, pero, gracias a nuestra compañera la terminal, :P, me mostró que este nombre estaba mal y lo corregí y listo, :D, al menos funciono todo en el servidor, ahora lo pruebo local y veo que sucede.
Todo de diez! Muchas gracias a todos los que me ayudaron! :) Una última cosa, tengo una columna de esta forma: Campo Tipo Cotejamiento Atributos Nulo Predeterminado SOCIO enum('si','no') utf8_spanish_ci No no
Cómo funcionaría? se supone que si yo no le paso el valor 'si', tendría que cargar el valor 'no', verdad? y no lo hace, -.-.
Utilicé ENUM porque me pareció una alternativa que me escribiese el "no" automaticamente, ya que al exportar los datos, no me gustaría que quede el espacio vacío. O sea, yo me daría cuenta porque lo escribí yo, pero quizás no el lector final, ¿me doy a entender? Pensé que Enum era una opción para realizar esto. La otra opción era poner botoncitos "radio" con la opcion Si y la opcion No, pero quería probar este sistema.
En el archivo PHP verificas el valor; si esta activado el valor será On, de lo contrario la variable no existirá:
<?php
if( isset( $_POST['socio'] ) ) { // Quiere decir que el checkbox esta activado
$query = "INSERT INTO tabla (socio) VALUES (1)";
} else { // Si entra al "else" quiere decir que la variable 'socio' no existe, por ende el checkbox no fue marcado
$query = "INSERT INTO tabla (socio) VALUES (0)";
}
$result = mysql_query( $query );
if( $result )
echo '<p>Los datos fueron ingresados satisfactoriamente</p>';
else
echo '<p>Ocurrió un error: ' . mysql_error() . '</p>';
Columna de la base de datos:
socio TINYINT NOT NULL DEFAULT 0
Si no entiendes me avisas (y si no entendí yo, también me avisas XD).
Hola, gracias por la respuesta! Sucede que podría trabajar con lógica común (binario), sé programar un poco en C por lo que php no me complica mucho las cosas en cuanto a la sintaxis, pero si lo hago de esta forma, quedarían como '1' ó '0', y al pasarlo a texto llano para imprimirlo, no sería facil para todos leerlo. ¿Me doy a entender?
No quiero ser tedioso, xD Pero, de esta forma en la base de datos sigue estando como Uno o Cero, y es lo que no quiero! xD
No pasa nada...
Lo que yo haría sería definir la tabla como socio VARCHAR(2) NOT NULL DEFAULT 'no' (entre otros valores). El código PHP sería algo así:
$result = mysql_query( 'SELECT socio FROM tabla WHERE condicion' );
if( $result ) {
echo '<p>Socio: ' . $result['socio'] . '</p>';
} else {
// No hay resultados...
}
Al momento de insertar los datos tendrías que hacer esto:
if( isset( $_POST['socio'] ) ) // socio es el checkbox
$query = "INSERT INTO tabla (socio) VALUES ('si')";
else
$query = "INSERT INTO tabla (val1, val2, val3, valN) VALUES ('val1', 'val2', 'valN')"; // Omitiendo el valor de socio, pues así quedará como 'no' automáticamente
Hmmm... ENUM también se podría utilizar para solucionar tu problema, solo que la otra solución es más simple (a mi juicio). ENUM lo utilizaría en caso de tener muchos tipos de usuario (socio, cliente, accionista, etc.). Tu problema se podría resolver así:
Columna
socio ENUM('si', 'no') NOT NULL DEFAULT 'no'
Inserción
if( isset( $_POST['socio'] ) ) // Nuevamente, socio es el checkbox
$query = "INSERT INTO tabla (col1, col2, socio) VALUES (val1, val2, 1)"; // 1 es 'si' y 2 es 'no' (si hubieran más valores, entonces valdrían 3, 4, 5, 6, etc., igual que en C++)
else
$query = "INSERT INTO tabla (col1, col2) VALUES (val1, val2)"; // Nuevamente se omite el valor de socio (quedará con no por defecto)
$result = mysql_query( $query );