ferpadro Posted September 14, 2007 Share Posted September 14, 2007 Ok, guys, you are my last hope now. I´ve been wandering most of the night trying to find what i did wrong but couldn´t find and answer. Here is what happens: im using a function called "cargar_horas" that should insert 6 values in a table, but for some reason the query is not working. I echoed most of my code to check the values of my variables and they are fine. I think it must be something beyond my knowledge, so i hope someone can figure out what is this. (First of all, sorry but the scripts are in spanish. I can translate them to english if anyone wants to) ------------------------------------------------------------------------------------------- usuario.php: <?php include('config.inc.php'); include('funciones.usuario.php'); require('session.php'); $val = check_in($_SESSION['usuario'], $_SESSION['contrasena'], $tab); if (strcmp($val,"usuario") != 0) { cambiar("index.php"); return; } else { ?> <html> <head> <form method="post" action=""> <div style="text-align: center;"><big style="font-style: italic;"><big><big><big>-.USUARIO.-</big></big></big></big> <br><br> 1) Cargar horas trabajadas </br></br> Fecha del servicio: Dia:<select name="diai" class="input" id="diai"> <? for ($i = 1; $i < 32; $i++) { if ($i < 10) echo '<option value="0'.$i.'">0'.$i.'</option>'; else echo '<option value="'.$i.'">'.$i.'</option>'; } ?> </select> Mes:<select name="mesi" class="input" id="mesi"> <? for ($i = 1; $i < 13; $i++) { if ($i < 10) echo '<option value="0'.$i.'">0'.$i.'</option>'; else echo '<option value="'.$i.'">'.$i.'</option>'; } ?> </select> Ano:<select name="anoi" class="input" id="anoi"> <? for ($i = 2007; $i < 3000; $i++) { if ($i < 10) echo '<option value="0'.$i.'">0'.$i.'</option>'; else echo '<option value="'.$i.'">'.$i.'</option>'; } ?> </select><br></br> <? $mes = $_POST['mesi']; $dia = $_POST['diai']; $ano = $_POST['anoi']; $fechafinal = $ano."-".$mes."-".$dia; ?> Hora de comienzo del servicio: <select name="horaservicio" class="input" id="horaservicio"> <? for ($i = 0; $i < 24; $i++) { if ($i < 10) echo '<option value="0'.$i.'">0'.$i.'</option>'; else echo '<option value="'.$i.'">'.$i.'</option>'; } ?> </select><big><big>:</big></big> <select name="minutoservicio" class="input" id="minutoservicio"> <? for ($i = 0; $i < 60; $i++) { if ($i < 10) echo '<option value="0'.$i.'">0'.$i.'</option>'; else echo '<option value="'.$i.'">'.$i.'</option>'; } ?> </select></br></br> <? $hora = $_POST['horaservicio']; $minuto = $_POST['minutoservicio']; $horafinal = $hora.":".$minuto; ?> Cliente: <select name="cliente"> <? $sql= "SELECT * FROM cliente"; $consulta=mysql_query($sql); while($array = mysql_fetch_array($consulta)) { echo "<option value=$array[0]>$array[1]</option>"; } ?> </select></br></br> <? $cliente = $_POST['cliente']; ?> Tipo de servicio: <select name="tiposervicio"> <? $sql= "SELECT * FROM tiposervicio"; $consulta=mysql_query($sql); while($array = mysql_fetch_array($consulta)) { echo "<option value=$array[0]>$array[1]</option>"; } ?> </select></br></br> <? $tipo = $_POST['tiposervicio']; ?> Cantidad horas: <input name="cantidadhoras" type="text"><br><br> <? $horas = $_POST['cantidadhoras']; ?> Observacion: <input name="observacion" type="text"><br><br> <? $observa = $_POST['observacion']; ?> <input name="opcion" type="submit" value=Cargar><br><br> <? /*echo "$tipo"; echo "</br>"; echo "$cliente"; echo "</br>"; echo "$fechafinal"; echo "</br>"; echo "$horafinal"; echo "</br>"; echo "$horas"; echo "</br>"; echo "$observa"; echo "</br>";*/ $opcion=$_POST['opcion']; switch($opcion) { case "Cargar": { cargar_horas($tipo,$cliente,$fechafinal,$horafinal,$horas,$observa); break; } } include('pie.php'); } ?> ---------------------------------------------------------------------------------------------------------------- And this is the file with the function that should do the insert: <? function cargar_horas($tipo,$cliente,$fechafinal,$horafinal,$horas,$observa) { $sql="INSERT INTO servicio VALUES ('','$_SESSION[id]','$tipo','$cliente','$fechafinal','$horafinal','$horas','$observa')"; mysql_query($sql); echo "Informacion cargada con exito"; echo "</br>"; echo "$tipo"; echo "</br>"; echo "$cliente"; echo "</br>"; echo "$fechafinal"; echo "</br>"; echo "$horafinal"; echo "</br>"; echo "$horas"; echo "</br>"; echo "$observa"; } ?> ---------------------------------------------------------------------------------------------------------------- the "servicio" table has 8 fields: idservicio idtecnico idtiposervicio idcliente fecha hora horas observacion Please forgive me about writing such a long post. If anyone finds the error and is able to post it here, it would be a great help. Thanks in advance Quote Link to comment https://forums.phpfreaks.com/topic/69384-solved-won%C2%B4t-insert-any-field-in-a-table/ Share on other sites More sharing options...
BlueSkyIS Posted September 14, 2007 Share Posted September 14, 2007 a tip. Whenever there is a problem with mysql_query(), check mysql_error() like so: mysql_query($sql) or die(mysql_error()); Now: Where are you connecting to the database server and selecting the database? I don't see it anywhere, and mysql_error() is probably going to complain about an invalid resource. Quote Link to comment https://forums.phpfreaks.com/topic/69384-solved-won%C2%B4t-insert-any-field-in-a-table/#findComment-348653 Share on other sites More sharing options...
ferpadro Posted September 14, 2007 Author Share Posted September 14, 2007 That would be config.inc.php: <? $connection = "Local"; $dbhost = "localhost"; $dbuser = "root"; //usuarios de la base de datos $dbpass = "*******"; //contraseña de la base de datos $db = "tecnicos"; //nombre de la base de datos $tabla="usuario"; $tab=$tabla; if (!($conectar=mysql_connect($dbhost,$dbuser,$dbpass))) { echo "No puede conectar al Motor"; die(); } else { if(!(mysql_select_db($db, $conectar))) { echo "No puede conectar a la base de datos $db"; die(); } } function check_in($user, $pass, $tab) { $sql= "select nombre,password,rol from $tab where (nombre= '$user' and password= '$pass')"; $conectar=mysql_query($sql); if ($datos=mysql_fetch_array($conectar)) { if (($datos['nombre'] == $user) && ($datos['password'] == $pass)) { $rol=$datos['rol']; return $rol; } else echo "No concuerdan los datos pasados con la base de datos"; } else return 0; } function cambiar($dire) { echo ' <script LANGUAGE="JavaScript"> var pagina="'.$dire.'" function redireccionar() { location.href=pagina } setTimeout ("redireccionar()", 500); </script> '; } ?> Sorry again for the spanish. I`ll try with the tip you gave me, thanks a lot Mod. edit: PLEASE post code between [ code] tags. Please remove some of the whitespace in it. Quote Link to comment https://forums.phpfreaks.com/topic/69384-solved-won%C2%B4t-insert-any-field-in-a-table/#findComment-348662 Share on other sites More sharing options...
ferpadro Posted September 14, 2007 Author Share Posted September 14, 2007 Nevermind i solved it. I was inserting rows all with id = 0 (because i forgot to add the auto_increment property) and that generated duplicate entries for my composite key. BlueSkyIS, you helped me a lot. Without mysql_error function im sure i would never find the error. Thank you a lot! Quote Link to comment https://forums.phpfreaks.com/topic/69384-solved-won%C2%B4t-insert-any-field-in-a-table/#findComment-348685 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.