Foros del Web » Programando para Internet » PHP »

Cual es mi fallo ??

Estas en el tema de Cual es mi fallo ?? en el foro de PHP en Foros del Web. Buenas pienso que el códgi esta correcto pero no da fallo y tampoco inserta los campos que puede pasar!!! Código PHP: <?php $link = mysql_connect ...
  #1 (permalink)  
Antiguo 14/04/2010, 03:05
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Cual es mi fallo ??

Buenas pienso que el códgi esta correcto pero no da fallo y tampoco inserta los campos que puede pasar!!!

Código PHP:
<?php

$link
=mysql_connect("localhost","root","");
    
mysql_select_db("precio",$link);



ini_set ('auto_detect_line_endings','1');

$consulta "Insert into tarifa values($data[0], $data[0],$data[1],$data[2],$data[3],$data[4],$data[5],$data[6],$data[7],$data[8],$data[9])";

$row 1;
$fp fopen ("datos.csv","r");
echo 
"<table border=1>";
while (
$data fgetcsv ($fp1000';')) {
    
    
$num count ($data);
    
$row++;
    echo 
"<tr>";
    for (
$c=0$c<$num$c++) {
        echo 
"<td>".$data[$c] . "</td>";

    }
    
$insert mysql_query($consulta$link);
    echo 
"</tr>";
}
echo 
"</table>";
fclose($fp);

?>
  #2 (permalink)  
Antiguo 14/04/2010, 03:11
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Cual es mi fallo ??

No te da fallo porque el error esta en la consulta, para verlo tendrías que aplicar mysql_error(), el fallo que yo he visto es que los valores de la consulta INSERT deben ir entre ' ', y no hay ninguna comilla, prueba poniendoselas a todos los valores que insertas.

Un saludo
  #3 (permalink)  
Antiguo 14/04/2010, 03:17
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

ok ya puse las comillas pero sigue sin insertarme los campos en la abse de datos, me puedes explciar como funciona el mysql_error() es que es la primera vez que lo veo.
Gracias por la ayuda
  #4 (permalink)  
Antiguo 14/04/2010, 03:22
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Cual es mi fallo ??

mysql_query devuelve FALSE cuando no consigue realizar la consulta que le has puesto, por lo tanto con algo así estaría bien:

Código PHP:
if(!$insert mysql_query($consulta$link)){
    echo 
"Error realizando la consulta: "mysql_error($link);


Sustituyelo por la linea donde tienes mysql_query, y dime que tal va.

P.D: Pon de nuevo la consulta, a ver como te quedó.

Un saludo
  #5 (permalink)  
Antiguo 14/04/2010, 03:31
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

Lo cambie y no a salido el mensaje de error por lo que la consulta deberia estar bien cierto??
Hay otro fallo me dice ke la variable Data esta indefinida quizas eso sea lo que proboca el fallo
Código PHP:
<?php

$link
=mysql_connect("localhost","root","");
    
mysql_select_db("precio",$link);



$f ini_set ('auto_detect_line_endings','1');


$row 1;
$fp fopen ("datos.csv","r");
echo 
"<table border=1>";
while (
$data fgetcsv ($fp1000';')) {


    
$num count ($data);
    
$row++;
    echo 
"<tr>";
    for (
$c=0$c<$num$c++) {
        echo 
"<td>".$data[$c] . "</td>";

    }
        
$consulta "Insert into tarifa values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
    if(!
$insert mysql_query($consulta$link)){
    echo 
"Error realizando la consulta: "mysql_error($link);
}  
    echo 
"</tr>";
}
echo 
"</table>";
fclose($fp);

?>
  #6 (permalink)  
Antiguo 14/04/2010, 03:33
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Cual es mi fallo ??

El fallo está en la variable $data ¡Está vacía! Estás insertando los datos de una variable vacía en una consulta. Si te fijas un poco la variable $data recibe su valor después de usarla en la consulta.

Prueba así:
Código PHP:
<?php

$link
=mysql_connect("localhost","root","");
    
mysql_select_db("precio",$link);



ini_set ('auto_detect_line_endings','1');



$row 1;
$fp fopen ("datos.csv","r");
echo 
"<table border=1>";
while (
$data fgetcsv ($fp1000';')) {
    
    
$num count ($data);
    
$row++;
    echo 
"<tr>";
    for (
$c=0$c<$num$c++) {
        echo 
"<td>".$data[$c] . "</td>";

    }
    
$consulta "Insert into tarifa values($data[0], $data[0],$data[1],$data[2],$data[3],$data[4],$data[5],$data[6],$data[7],$data[8],$data[9])";
    
$insert mysql_query($consulta$link);
    echo 
"</tr>";
}
echo 
"</table>";
fclose($fp);
?>
A ver que tal.
__________________
Revolucionario controlador de plantillas para php
www.simphple.com
  #7 (permalink)  
Antiguo 14/04/2010, 03:39
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

ok error de la variable Data solucionado pero sigue sin insertarme los datos :S
Xk puede ser si el mysql_error() no ha mostrado mensaje de error...
  #8 (permalink)  
Antiguo 14/04/2010, 03:40
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Cual es mi fallo ??

Seguramente sea eso, pero ese código que le has puesto nunca funcionara, ya que el error que tenia en el INSERT vuelve a estar y la comprobación del Mysql_error ya no está.

P.D: Pon de nuevo el código que tienes finalmente

Un saludo
  #9 (permalink)  
Antiguo 14/04/2010, 03:46
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

Sigue sin mostrar error y sin insertarme los campos =S
Una duda mysql_error(Variable de conexion? o kizas deberia ser la consulta?)
Código PHP:
<?php

$link
=mysql_connect("localhost","root","");
    
mysql_select_db("precio",$link);



ini_set ('auto_detect_line_endings','1');



$row 1;
$fp fopen ("datos.csv","r");
echo 
"<table border=1>";
while (
$data fgetcsv ($fp1000';')) {
    
    
$num count ($data);
    
$row++;
    echo 
"<tr>";
    for (
$c=0$c<$num$c++) {
        echo 
"<td>".$data[$c] . "</td>";

    }
    
$consulta "Insert into tarifa values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
    if(!
$insert mysql_query($consulta$link)){
    echo 
"Error realizando la consulta: "mysql_error($link);
    echo 
"</tr>";
}
echo 
"</table>";
fclose($fp);
?>
Muxas gracias me ayudais muxisimo
  #10 (permalink)  
Antiguo 14/04/2010, 03:49
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Cual es mi fallo ??

Y aparte de la consulta, ¿Las lineas de la tabla que se te crean con el While se muestran?,¿O la tabla esta sin filas?

Un saludo
  #11 (permalink)  
Antiguo 14/04/2010, 03:53
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

Si la tabla se muestra perfecta, el unico problema es el insertarlo a la base de datos


Kizas el inconveniente sea que es una tabla de unos 4mil registros pero en la tabla si salen todos
  #12 (permalink)  
Antiguo 14/04/2010, 03:58
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Cual es mi fallo ??

Y el mensajito de: "Error realizando la consulta" te sale?, si no es asi quita el condicional a ver si muestra algo el mysql_error.


Un saludo
  #13 (permalink)  
Antiguo 14/04/2010, 04:02
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

Si es esto lo ke kerias ke iciera tampoco muestra nada ni el mensajito =S

Código PHP:
<?php

$link
=mysql_connect("localhost","root","");
    
mysql_select_db("precio",$link);



ini_set ('auto_detect_line_endings','1');



$row 1;
$fp fopen ("datos.csv","r");
echo 
"<table border=1>";
while (
$data fgetcsv ($fp1000';')) {
    
    
$num count ($data);
    
$row++;
    echo 
"<tr>";
    for (
$c=0$c<$num$c++) {
        echo 
"<td>".$data[$c] . "</td>";

    }
    
$consulta "Insert into tarifa values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
    
$insert mysql_query($consulta$link);
    echo 
"Error realizando la consulta: "mysql_error($link);
    echo 
"</tr>";
}
echo 
"</table>";
fclose($fp);
?>
  #14 (permalink)  
Antiguo 14/04/2010, 04:15
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Cual es mi fallo ??

si no se muestra el "Error realizando la consulta", solo veo dos posibilidades, que el while no se ejecute, pero dices que la tabla se ve, asi que eso no puede ser, revisa el código fuente de la página, dando a boton derecho-ver codigo fuente, y mira que el error no esté ahí,ya que en el script lo impremes en pantalla entre una etiqueta td y tr.

Un saludo
  #15 (permalink)  
Antiguo 14/04/2010, 04:23
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

Para comprobar si era x las etiketas <tr><td>
e puesto
esto pero sigue sin mostrar error y sin insertar :S

Código PHP:
<?php

$link
=mysql_connect("localhost","root","");
    
mysql_select_db("precio",$link);



ini_set ('auto_detect_line_endings','1');



$row 1;
$fp fopen ("datos.csv","r");
echo 
"<table border=1>";
while (
$data fgetcsv ($fp1000';')) {
    
    
$num count ($data);
    
$row++;
    echo 
"<tr>";
    for (
$c=0$c<$num$c++) {
        echo 
"<td>".$data[$c] . "</td>";

    }
    
$consulta "Insert into tarifa values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
        if(!
$insert mysql_query($consulta$link)){
    echo 
"</tr><td><td>Error realizando la consulta: "mysql_error($link)"</td>";}
    echo 
"</tr>";
}
echo 
"</table>";
fclose($fp);
?>
  #16 (permalink)  
Antiguo 14/04/2010, 04:27
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Cual es mi fallo ??

Me empiezo a quedar sin ideas, de todos modos las etiquetas que has añadido no están correctamente añadidas, ponlo como antes, sin etiquetas y sin condicional, para que se muestre si o si, aunque no lo haga... y si me puedes pasar el enlace a la web que contiene ese script mejor.


Un saludo
  #17 (permalink)  
Antiguo 14/04/2010, 04:33
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

No esta subida ningun hosting aún
trabajo en un wamp y futuramente estara en un servidor local para una empresa

Me tiene lokisimo esta script

Código PHP:
<?php

$link
=mysql_connect("localhost","root","");
    
mysql_select_db("precio",$link);



ini_set ('auto_detect_line_endings','1');



$row 1;
$fp fopen ("datos.csv","r");
echo 
"<table border=1>";
while (
$data fgetcsv ($fp1000';')) {
    
    
$num count ($data);
    
$row++;
    echo 
"<tr>";
    for (
$c=0$c<$num$c++) {
        echo 
"<td>".$data[$c] . "</td>";

    }
    
$consulta "Insert into tarifa values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
        
$insert mysql_query($consulta$link);
    echo 
"Error realizando la consulta: "mysql_error($link);
    echo 
"</tr>";
}
echo 
"</table>";
fclose($fp);
?>
  #18 (permalink)  
Antiguo 14/04/2010, 04:39
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Cual es mi fallo ??

Si no se muestra el Error realizando la consulta, tienen que haber otras partes de la tabla que falten como el ultimo <tr>, o cualquier etiqueta, mira el código fuente desde el explorador y fíjate que cosas se muestran y que cosas no se muestran.


Un saludo
  #19 (permalink)  
Antiguo 15/04/2010, 03:09
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

Se muestra absolutamente toda la tabla todas sus filas y columnas
:S
  #20 (permalink)  
Antiguo 15/04/2010, 03:11
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Cual es mi fallo ??

Código PHP:
echo "Error realizando la consulta: "mysql_error($link); 
echo 
"</tr>"
Es una linea antes de otra, si se te muestra ese </tr>, se debe mostrar "Error realizando la consulta", sino es así es que no estás viendo la página actualizada o algo así. Si se ejecuta la sentencia del </tr> se tiene que haber ejecutado la anterior.


Un saludo
  #21 (permalink)  
Antiguo 15/04/2010, 03:18
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: Cual es mi fallo ??

Pues si se ejecuta toda la tabla salen todos los articulos
Pero en ninguna parte sale el "Error realizando la consulta:"
  #22 (permalink)  
Antiguo 15/04/2010, 04:32
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Cual es mi fallo ??

Veamos:

Código PHP:
<?php

$link
=mysql_connect("localhost","root","");
    
mysql_select_db("precio",$link);



ini_set ('auto_detect_line_endings','1');



$row 1;
$fp fopen ("datos.csv","r");
echo 
"<table border=1>";
while (
$data fgetcsv ($fp1000';')) {
    
    
$num count ($data);
    
$row++;
    echo 
"<tr>";
    for (
$c=0$c<$num$c++) {
        echo 
"<td>".$data[$c] . "</td>";

    }
    
$consulta "Insert into tarifa values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
        
$insert mysql_query($consulta$link);
    echo 
"Error realizando la consulta: "mysql_error($link)."<br>";
    echo 
'[Prueba] La consulta es:'.$consulta.'<br>';
    echo 
"</tr>";
}
echo 
"</table>";
fclose($fp);
?>
Prueba esto, y muéstranos el resultado
  #23 (permalink)  
Antiguo 16/04/2010, 01:57
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Nada igual me muestra toda la tabla perfecta y no muestra nada más ni inserta campos

ok problema solucionado muchas gracias todos por la ayuda
Al final el problema era Dreamweaver que no guardaba correctamente y al modificarlo modificaba el arxivo pero al ejecutarlo no....

Última edición por GatorV; 16/04/2010 a las 08:04

Etiquetas: fallo
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 00:22.