Foros del Web » Programando para Internet » PHP »

No funciona.

Estas en el tema de No funciona. en el foro de PHP en Foros del Web. Buenas, Estoy haciendo un script que añada lo que introduzca en el textarea y que luego esas lineas las añada a una base de datos ...
  #1 (permalink)  
Antiguo 16/03/2005, 12:45
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
No funciona.

Buenas,

Estoy haciendo un script que añada lo que introduzca en el textarea y que luego esas lineas las añada a una base de datos cada linea en un campo diferente.

No se si me habre explicado bien. Bueno ahi va el script a ver si me decis que es lo que falla.

Código:
<? include ("sql.php");?>
<html>

<head>
  <title></title>
</head>

<body>
<form action="" method="post">
<textarea rows=5 cols=20 name="texto"></textarea>
<input type="submit" value="Send">
</form>
<?
$conecta = mysql_pconnect($hostname_conecta, $username_conecta, $password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_select_db($database_conecta,$conecta);
?>

<?php
if (!empty($texto)) { //Si $texto no esta vacio sigue la ejecucion del script
	$texto_separado = explode("\r", $texto); // Separo el contenido de $texto por cada salto de linea  y se almacena en un array
	$cuantos = count($texto_separado); // Contamos cuantos valores hay dentro del array
	for($i=0;$i==$cuantos;$i++) { // creamos el bucle que ira añadiendo a la db cada linea
    	$query = "INSERT into enlaces (texto) values ('$texto_separado[$i]')"; // comando de insercion
        $result = mysql_query($query); // se inserta en la db
	}
}
?>
</body>

</html>
Dentro del sql.php solo estan los datos de conexion con Mysql , asi que eso esta bien.

Un saludo y gracias por todo.
  #2 (permalink)  
Antiguo 16/03/2005, 12:58
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Código PHP:
<? include ("sql.php");?>
<html>

<head>
  <title></title>
</head>

<body>
<form action="" method="post"><? // Aquí usas un método POST para mandar datos, checa bien lo que sigue
?>
<textarea rows=5 cols=20 name="texto"></textarea>
<input type="submit" value="Send">
</form>
<?
$conecta 
mysql_connect($hostname_conecta$username_conecta$password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); //Solo necesitas una conexión simple, no persistente
mysql_select_db($database_conecta,$conecta);
?>

<?php
$texto
=$_POST['texto']; // ESTO TE FALTÓ
if (!empty($texto)) { //Si $texto no esta vacio sigue la ejecucion del script
    
$texto_separado explode("\r"$texto); // Separo el contenido de $texto por cada salto de linea  y se almacena en un array
    
$cuantos count($texto_separado); // Contamos cuantos valores hay dentro del array
    
for($i=0;$i==$cuantos;$i++) { // creamos el bucle que ira añadiendo a la db cada linea
        
$query "INSERT into enlaces (texto) values ('$texto_separado[$i]')"// comando de insercion
        
$result mysql_query($query); // se inserta en la db
    
}
}
?>
</body>

</html>
  #3 (permalink)  
Antiguo 16/03/2005, 13:03
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
Cita:
Iniciado por lado2mx
Código PHP:
<? include ("sql.php");?>
<html>

<head>
  <title></title>
</head>

<body>
<form action="" method="post"><? // Aquí usas un método POST para mandar datos, checa bien lo que sigue
?>
<textarea rows=5 cols=20 name="texto"></textarea>
<input type="submit" value="Send">
</form>
<?
$conecta 
mysql_connect($hostname_conecta$username_conecta$password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); //Solo necesitas una conexión simple, no persistente
mysql_select_db($database_conecta,$conecta);
?>

<?php
$texto
=$_POST['texto']; // ESTO TE FALTÓ
if (!empty($texto)) { //Si $texto no esta vacio sigue la ejecucion del script
    
$texto_separado explode("\r"$texto); // Separo el contenido de $texto por cada salto de linea  y se almacena en un array
    
$cuantos count($texto_separado); // Contamos cuantos valores hay dentro del array
    
for($i=0;$i==$cuantos;$i++) { // creamos el bucle que ira añadiendo a la db cada linea
        
$query "INSERT into enlaces (texto) values ('$texto_separado[$i]')"// comando de insercion
        
$result mysql_query($query); // se inserta en la db
    
}
}
?>
</body>

</html>
He hecho los cambios que has dicho y sigue sin funcionar.
  #4 (permalink)  
Antiguo 16/03/2005, 13:09
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Código PHP:
<? include ("sql.php");
$texto=$_POST['texto'];
IF (
$texto) {
?>

<?$conecta mysql_connect($hostname_conecta$username_conecta$password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); //Solo necesitas una conexión simple, no persistente
 
mysql_select_db($database_conecta,$conecta);
 
?>
 
 <?php
 
//Si $texto no esta vacio sigue la ejecucion del script
     
$texto_separado explode("\r"$texto); // Separo el contenido de $texto por cada salto de linea  y se almacena en un array
     
$cuantos count($texto_separado); // Contamos cuantos valores hay dentro del array
     
for($i=0;$i==$cuantos;$i++) { // creamos el bucle que ira añadiendo a la db cada linea
         
$query "INSERT into enlaces (texto) values ('$texto_separado[$i]')"// comando de insercion
         
$result mysql_query($query); // se inserta en la db
      
} ELSE {?>
 <html>
 
 <head>
   <title></title>
 </head>
 
 <body>
 <form action="" method="post"><? // Aquí usas un método POST para mandar datos, checa bien lo que sigue
 
?>
 <textarea rows=5 cols=20 name="texto"></textarea>
 <input type="submit" value="Send">
 </form>
<?
}
?>
</body>

</html>

Última edición por lado2mx; 16/03/2005 a las 13:22
  #5 (permalink)  
Antiguo 16/03/2005, 13:20
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
Cita:
Iniciado por lado2mx
Código PHP:
<? include ("sql.php");
$texto=$_POST['texto'];
IF (
$texto) {
?>
<html>

<head>
  <title></title>
</head>

<body>
<form action="" method="post"><? // Aquí usas un método POST para mandar datos, checa bien lo que sigue
?>
<textarea rows=5 cols=20 name="texto"></textarea>
<input type="submit" value="Send">
</form>
<? } ELSE {
$conecta mysql_connect($hostname_conecta$username_conecta$password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); //Solo necesitas una conexión simple, no persistente
mysql_select_db($database_conecta,$conecta);
?>

<?php
if (!empty($texto)) { //Si $texto no esta vacio sigue la ejecucion del script
    
$texto_separado explode("\r"$texto); // Separo el contenido de $texto por cada salto de linea  y se almacena en un array
    
$cuantos count($texto_separado); // Contamos cuantos valores hay dentro del array
    
for($i=0;$i==$cuantos;$i++) { // creamos el bucle que ira añadiendo a la db cada linea
        
$query "INSERT into enlaces (texto) values ('$texto_separado[$i]')"// comando de insercion
        
$result mysql_query($query); // se inserta en la db
    
}
}
?>
</body>

</html>
Parse error: parse error, unexpected $ in /home/malasinf/public_html/text2.php on line 35
  #6 (permalink)  
Antiguo 16/03/2005, 23:46
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
Cita:
Iniciado por Rave
Parse error: parse error, unexpected $ in /home/malasinf/public_html/text2.php on line 35

Alguien sabe la solucion ?
  #7 (permalink)  
Antiguo 17/03/2005, 03:22
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
falta un } al final, antes del ?>... no cerró el ELSE
  #8 (permalink)  
Antiguo 17/03/2005, 03:57
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
Cita:
Iniciado por Seppo
falta un } al final, antes del ?>... no cerró el ELSE
Código:
<? include ("sql.php"); 
$texto=$_POST['texto']; 
IF ($texto) { 
?> 
<html> 

<head> 
  <title></title> 
</head> 

<body> 
<form action="" method="post"><? // Aquí usas un método POST para mandar datos, checa bien lo que sigue 
?> 
<textarea rows=5 cols=20 name="texto"></textarea> 
<input type="submit" value="Send"> 
</form> 
<? } ELSE { 
$conecta = mysql_connect($hostname_conecta, $username_conecta, $password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); //Solo necesitas una conexión simple, no persistente 
mysql_select_db($database_conecta,$conecta); 
?> 

<?php 
if (!empty($texto)) { //Si $texto no esta vacio sigue la ejecucion del script 
    $texto_separado = explode("\r", $texto); // Separo el contenido de $texto por cada salto de linea  y se almacena en un array 
    $cuantos = count($texto_separado); // Contamos cuantos valores hay dentro del array 
    for($i=0;$i==$cuantos;$i++) { // creamos el bucle que ira añadiendo a la db cada linea 
        $query = "INSERT into enlaces (texto) values ('$texto_separado[$i]')"; // comando de insercion 
        $result = mysql_query($query); // se inserta en la db 
    } 
} 
}
?>

</body> 

</html>
Ahora no muestra ni el textarea.

Última edición por Rave; 17/03/2005 a las 03:59
  #9 (permalink)  
Antiguo 17/03/2005, 05:36
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
probá con IF (!$texto)...
o sea, q aparezca el formulario si NO está la variable post
  #10 (permalink)  
Antiguo 17/03/2005, 05:42
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 19 años, 5 meses
Puntos: 7
En action debería poner la acción a hacer.
Código PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Después yo cambiaría la línea siguiente:
Código PHP:
$query "INSERT into enlaces (texto) values ('$texto_separado[$i]')"
por:
Código PHP:
$el_texto $texto_separado[$i];
$query "INSERT into enlaces (texto) values ('$el_texto')"
Que creo que es lo que da el Parse error.

Y esto debería ser justo así, al revésde como lo tienes:
Código PHP:
<html> 
<head> 
<title></title> 
</head> 
<body>
<? include ("sql.php"); 
 
IF (isset(
$_POST['texto']) && !empty($_POST['texto'])) { 
    
$texto $_POST['texto'];
    
$conecta mysql_connect($hostname_conecta$username_conecta,$password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); //Solo necesitas una conexión simple, no persistente 
    
mysql_select_db($database_conecta,$conecta); 
    
$texto_separado explode("\r"$texto); // Separo el contenido de $texto por cada salto de linea  y se almacena en un array 
    
$cuantos count($texto_separado); // Contamos cuantos valores hay dentro del array 
    
for($i=0;$i==$cuantos;$i++) { // creamos el bucle que ira añadiendo a la db cada linea 
        
$el_texto $texto_separado[$i];
        
$query "INSERT into enlaces (texto) values ('$el_texto')"// comando de insercion 
        
$result mysql_query($query); // se inserta en la db 
    
}
} ELSE { 
?>
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<textarea rows=5 cols=20 name="texto"></textarea> 
<input type="submit" value="Send"> 
</form>
<?php 
 
}
?>
</body> 
</html>

Última edición por pintix; 17/03/2005 a las 05:47
  #11 (permalink)  
Antiguo 17/03/2005, 06:52
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
Cita:
Iniciado por pintix
En action debería poner la acción a hacer.
Código PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Después yo cambiaría la línea siguiente:
Código PHP:
$query "INSERT into enlaces (texto) values ('$texto_separado[$i]')"
por:
Código PHP:
$el_texto $texto_separado[$i];
$query "INSERT into enlaces (texto) values ('$el_texto')"
Que creo que es lo que da el Parse error.

Y esto debería ser justo así, al revésde como lo tienes:
Código PHP:
<html> 
<head> 
<title></title> 
</head> 
<body>
<? include ("sql.php"); 
 
IF (isset(
$_POST['texto']) && !empty($_POST['texto'])) { 
    
$texto $_POST['texto'];
    
$conecta mysql_connect($hostname_conecta$username_conecta,$password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); //Solo necesitas una conexión simple, no persistente 
    
mysql_select_db($database_conecta,$conecta); 
    
$texto_separado explode("\r"$texto); // Separo el contenido de $texto por cada salto de linea  y se almacena en un array 
    
$cuantos count($texto_separado); // Contamos cuantos valores hay dentro del array 
    
for($i=0;$i==$cuantos;$i++) { // creamos el bucle que ira añadiendo a la db cada linea 
        
$el_texto $texto_separado[$i];
        
$query "INSERT into enlaces (texto) values ('$el_texto')"// comando de insercion 
        
$result mysql_query($query); // se inserta en la db 
    
}
} ELSE { 
?>
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<textarea rows=5 cols=20 name="texto"></textarea> 
<input type="submit" value="Send"> 
</form>
<?php 
 
}
?>
</body> 
</html>
Agradezco mucho vuestra ayuda, pero sigue sin añadir los datos a la base de datos. Y conectar si que conecta :S .
  #12 (permalink)  
Antiguo 17/03/2005, 09:00
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 19 años, 5 meses
Puntos: 7
El problema está aquí:
Código PHP:
for($i=0;$i==$cuantos;$i++) 
Debería ser:
Código PHP:
for($i=0;$i $cuantos;$i++) 
  #13 (permalink)  
Antiguo 17/03/2005, 09:50
 
Fecha de Ingreso: agosto-2003
Mensajes: 17
Antigüedad: 20 años, 7 meses
Puntos: 0
Cita:
Iniciado por pintix
El problema está aquí:
Código PHP:
for($i=0;$i==$cuantos;$i++) 
Debería ser:
Código PHP:
for($i=0;$i $cuantos;$i++) 

Ahora si , muchisimas gracias .
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 21:09.