Foros del Web » Programando para Internet » PHP »

Codigo defectuoso

Estas en el tema de Codigo defectuoso en el foro de PHP en Foros del Web. Buenas tardes, Estoy intentando crear tablas en una base de datos mediante un formulario, pero no consigo saber como sacar la informacion de la base ...
  #1 (permalink)  
Antiguo 29/03/2005, 08:13
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
Codigo defectuoso

Buenas tardes,

Estoy intentando crear tablas en una base de datos mediante un formulario, pero no consigo saber como sacar la informacion de la base de datos para darle nombre a la tabla. Ahi va el codigo:

Código:
<?
include ("sql.php");
$link = mysql_connect("$hostname_conecta", "$username_conecta", "$password_conecta");
mysql_select_db("$database_conecta"); 
$sql = 'CREATE TABLE  `$tabla` ('  <---- he probado como un codigo php normal pero nada 
        . ' `ID` INT(25) NOT NULL AUTO_INCREMENT, '
        . ' `texto` TEXT NOT NULL,'
        . ' PRIMARY KEY (`ID`)'
        . ' )';
$result = mysql_query($sql);
?>

Crea la tabla , pero no con el nombre que envio desde el formulario, sino que la nombra $tabla.

Muchas gracias por la ayuda.

Última edición por Rave; 29/03/2005 a las 08:31
  #2 (permalink)  
Antiguo 29/03/2005, 08:36
Avatar de Blag  
Fecha de Ingreso: septiembre-2003
Ubicación: Lima
Mensajes: 68
Antigüedad: 20 años, 6 meses
Puntos: 0
Ahorita no tengo el PHP a la mano.....

Pero debería de ser así....

Código PHP:
<?
include ("sql.php");
$link mysql_connect("$hostname_conecta""$username_conecta""$password_conecta");
mysql_select_db("$database_conecta"); 
$sql 'CREATE TABLE' $tabla 
        
'(D` INT(25) NOT NULL AUTO_INCREMENT, '
        
' `texto` TEXT NOT NULL,'
        
' PRIMARY KEY (`ID`)'
        
' )';
$result mysql_query($sql);
?>
Saludos,

Blag
__________________
Alvaro Tejada Galindo
Consultor ABAP FI/HR
SinglePath's Experimental HomePage
Foro de ABAP en SoloCodigo.com
Revista "Código Latino"
  #3 (permalink)  
Antiguo 29/03/2005, 09:24
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
No funciona , no añade nada .
  #4 (permalink)  
Antiguo 29/03/2005, 09:43
 
Fecha de Ingreso: febrero-2005
Mensajes: 28
Antigüedad: 19 años, 1 mes
Puntos: 0
Primero fijate si $tabla es pasado bien, como hacer eso, imprimela en pantalla
Código PHP:
<?
// Utiliza GET o POST
echo $_POST[tabla];
// si se ve bien, cambia en donde aparezca $tabla
include ("sql.php");
$link mysql_connect("$hostname_conecta""$username_conecta""$password_conecta");
mysql_select_db("$database_conecta"); 
$sql 'CREATE TABLE  `$_POST[tabla]` ('  
        
' `ID` INT(25) NOT NULL AUTO_INCREMENT, '
        
' `texto` TEXT NOT NULL,'
        
' PRIMARY KEY (`ID`)'
        
' )';
$result mysql_query($sql);
?>
  #5 (permalink)  
Antiguo 29/03/2005, 09:44
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 1 mes
Puntos: 1
Si no esta añadiendo nada es xq la variable esta vacia, antes de crear la tabla verifique lo q trae la variable $tabla.
Ahora, cuando no concatena las cadenas sino escribe las variables debe utilizar comillas dobles, de lo contrario el codigo quedara con el comodin $. Por eso el nombre de la tabla le esta quedando como $tabla y no como el valor de la variable
  #6 (permalink)  
Antiguo 29/03/2005, 10:19
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
Los datos si estan llegando bien, lo he comprobado con el echo $_POST[tabla]; , pero sigue sin añadir nada y si pongo esto --> $sql = 'CREATE TABLE `$_POST[tabla]` ('
añade $_POST[tabla] .

Última edición por Rave; 29/03/2005 a las 10:21
  #7 (permalink)  
Antiguo 29/03/2005, 10:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Rave .. si en PHP en una cadena defines ' comillas simples $variable ' .. el valor de tu variable NO será interpretado...

debes usar comillas dobles, para ello y facilitar la lectura del código .. puedes concatenar tus variables:

Código PHP:
$sql "CREATE TABLE  `".$_POST['tabla']."` (
`ID` INT(25) NOT NULL AUTO_INCREMENT,
`texto` TEXT NOT NULL,
PRIMARY KEY (`ID`))"

Un saludo,
  #8 (permalink)  
Antiguo 29/03/2005, 10:40
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 7 meses
Puntos: 8
Es lo que andrecito dice.
Si usas comillas simples, las variables dentro de esa cadena no "imprimen" su valor.
Ej:
Código PHP:
$gato "perro";
echo 
'el animal es un $gato'// Muestra: el animal es un $gato 
Código PHP:
$gato "perro";
echo 
"el animal es un $gato"// Muestra: el animal es un perro 
Saludos
  #9 (permalink)  
Antiguo 29/03/2005, 10:49
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
Entendido, muchas gracias a todo.
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:08.