Ver Mensaje Individual
  #9 (permalink)  
Antiguo 01/03/2014, 13:14
Avatar de Dalam
Dalam
 
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Si mi select es igual a 0 no insertar

Cita:
Iniciado por Briss Ver Mensaje
mis selects tienen que tener el mismo nombre???? porque yo tengo distintos ya que asi lo requiero , pero supongo q el for es para recorrer con el mismo nombre por favor indiquenme si estoy mal????
Briss te explico un poco el codigo que te dieron
en la linea que pones
$valor_select = $_POST["select$i"];
aqui el nombre del select sera select$i, donde $i sera cambiado por el valor de $i que tenga en el bucle for, que en este caso sera 1,2 o 3 quedando de la siguiente forma
select1
select2
select3

--Nota--
Sin desmerecer a los consejos que te han dado, yo no lo haría así.
Lo que haría seria recorrer el array $_POST con un foreach
y actuar en consecuencia dependiendo del valor que tenga.

Otra cosa que debes de tener en cuenta, es que lo que haces es un update, y si el valor no existe en la base de datos no podrá actualizarlo.
Una forma de solucionar esto seria comprobando si existe, si existe lanzar la sentencia sql para actualizar y si no existe lanzar una sentencia de inserción.

Aqui te dejo un poco de codigo
Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * conectamos a la base de datos con la clase mysqli para evitar
  4.  * funciones obsoletas de php
  5.  */
  6.  
  7. $mysql = new mysqli('servidor', 'usuario', 'password', 'nombredb');
  8. if($mysql->error){
  9.     echo 'Se produjo un error al conectar a la base de datos.<br />',
  10.          'compruebe los parametros de conexion';
  11.     exit(0);
  12. }
  13. /**
  14.  * Si llegamos aqui es que la conexion a sido exitosa
  15.  * y procedemos a recorrer los datos introducidos
  16.  */
  17. foreach ( $_POST as $nombre => $valor ) {
  18.     /**
  19.      * Procesamos solo las variables que empiezan por select y que no tienen
  20.      * un valor 0
  21.      */
  22.     if( substr( $nombre, 0, 6 ) == 'select' && $valor != 0){
  23.         /**
  24.          * Creamos el nombre de la variable de la caja
  25.          */
  26.         $nameValue = str_replace('select', 'caja', $nombre);
  27.         /**
  28.          * Comprobamos si el valor existe
  29.          */
  30.         $exist = $mysql->query('SELECT seleccion FROM probando WHERE seleccion=\''.$valor.'\'');
  31.         /**
  32.          * Si existe lo actualizamos y si no lo introducimos
  33.          */
  34.         if(mysqli_num_rows($exist) > 0){
  35.             $mysql->query('INSERT INTO probando (seleccion,texto)
  36.                 VALUES (\''.$valor.'\',\''.$_POST[$nameValue].'\')');
  37.         }else{
  38.             $mysql->query('UPDATE probando SET texto=\''.$_POST[$nameValue].'\' WHERE seleccion=\''.$valor.'\'');
  39.         }
  40.         /**
  41.          * borramos la variable $exist y liberamos la memoria de resultados de mysqli
  42.          */
  43.         unset($exist);
  44.         mysqli_free_result($mysql);
  45.     }
  46. }
  47. /**
  48.  * Cerramos la conexion de la db
  49.  */
  50. mysql_close($mysql);

Última edición por Dalam; 01/03/2014 a las 14:00