Foros del Web » Programando para Internet » PHP »

Ayuda con sentencia if...

Estas en el tema de Ayuda con sentencia if... en el foro de PHP en Foros del Web. Buenas, mi problema es el siguiente: estoy haciendo unas condiciones que quiero que hagan lo siguiente: si CP esta entre los siguientes numeros (1,2,3,4...){ } ...
  #1 (permalink)  
Antiguo 09/05/2008, 09:39
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Ayuda con sentencia if...

Buenas,

mi problema es el siguiente: estoy haciendo unas condiciones que quiero que hagan lo siguiente:

si CP esta entre los siguientes numeros (1,2,3,4...){

}

si esta entre estos otros (23,24,25...){
}

en mysql, hay una opcion que es WHERE numero IN(.......)

como seria el operador o sentencia en php para hacerlo?

saludos,

ferranWEB
  #2 (permalink)  
Antiguo 09/05/2008, 09:55
 
Fecha de Ingreso: junio-2001
Ubicación: Cd. Madero, Tam
Mensajes: 83
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: Ayuda con sentencia if...

Necesitas construir primero la lista de numeros, por ejemplo

$lista="1,2,3,4";

Despues solo usas esa variable en la consulta

$sql="select from tabla where numero in ($lista)";

Si quieres lo contrario puedes poner

$sql="select from tabla where numero not in ($lista)";


Saludos.
  #3 (permalink)  
Antiguo 09/05/2008, 09:59
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

gracias compañero!

pero los datos no estan en una en una bd. tengo un campo cp, y quiero evaluar los codigos, y en caso de ser unos u otros a un sitio o otro.

alguna otra forma?

saludos,

ferranWEB
  #4 (permalink)  
Antiguo 09/05/2008, 11:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Ayuda con sentencia if...

Hola ferranWeb,

Puedes guardarlos en un arreglo y usar in_array para comparar.

Saludos.
  #5 (permalink)  
Antiguo 09/05/2008, 11:49
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Re: Ayuda con sentencia if...

$arreglo = array(1,2,3,4,5,6,7,8,9,10);
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #6 (permalink)  
Antiguo 12/05/2008, 02:32
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

gracias chicos

peruo una vez tengo el array, como lo recorro? es decir, si quiero hacer la condicion para saber si mi variable == a un numero dentro del array, como debo hacerlo?

saludos,

ferranWEB
  #7 (permalink)  
Antiguo 12/05/2008, 04:29
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Ayuda con sentencia if...

in_array()
  #8 (permalink)  
Antiguo 13/05/2008, 02:43
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

gracias darkj,

la pista del in_array me ha servido, y he conseguido lo que queria...

$cp_1 = array ("28003","28035","28250","28390","28602","28692"," 28794","28919","28939",11111);

if (in_array ($cp,$cp_1)){
$para[0] ="[email protected]";

solo plantearte una cosa... me han facilitados los cp seguidos, es decir, no tengo la separacion de las "", por lo que tengo que pegar los 300 cp, e ir uno por uno metiendole las "".

hay alguna manera de que el array no tenga las "" para evitarme ponerlas? he porbado de poner el array sin "", y a la variable $cp_1 ponerselas pero me da error.

a ver si me sacas un conejo de la chistera para no tener que tocar todos los cp!!

gracias

ferranWEB
  #9 (permalink)  
Antiguo 13/05/2008, 02:51
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con sentencia if...

si son todos los CPs de 5 cifras, puedes hacerte una funcion q cada 5 cifras te meta el valor en un array xD
__________________
» Presupuesto Pagina Web
  #10 (permalink)  
Antiguo 13/05/2008, 02:55
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Ayuda con sentencia if...

Cita:
Iniciado por ferranWEB Ver Mensaje
gracias darkj,

la pista del in_array me ha servido, y he conseguido lo que queria...

$cp_1 = array ("28003","28035","28250","28390","28602","28692"," 28794","28919","28939",11111);

if (in_array ($cp,$cp_1)){
$para[0] ="[email protected]";

solo plantearte una cosa... me han facilitados los cp seguidos, es decir, no tengo la separacion de las "", por lo que tengo que pegar los 300 cp, e ir uno por uno metiendole las "".

hay alguna manera de que el array no tenga las "" para evitarme ponerlas? he porbado de poner el array sin "", y a la variable $cp_1 ponerselas pero me da error.

a ver si me sacas un conejo de la chistera para no tener que tocar todos los cp!!

gracias

ferranWEB
Habia pensado que como son números puedes prescindir de las ", pero como son codigos postales, algunas provincias comienzan en 0 con lo que debes usar las " para no perderlo.

Pues nada, te veo o sustituyendo el caracter espacio por ", " o bien dejandote los dedos en el CTRL+V
  #11 (permalink)  
Antiguo 13/05/2008, 03:04
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con sentencia if...

Pon un ejemplo de como te llega a ti la cadena, y ya te decimos xD
__________________
» Presupuesto Pagina Web
  #12 (permalink)  
Antiguo 13/05/2008, 03:09
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

gracias a los 2 por responder!!

a ver, no acabo de entenderte misko lo que me dices. la cadena que recibo es $cp. quiero comprobar si esta variable(el cp) se encuentra dentro del array. sabemos que son 5 numeros, si o si.. pero no acabo de entender lo de substiruir la cadena.

la cadena con los cp la tengo que tener yo con todos ellos en el array, y el valor que introduce el usuario es la que tengo que comprobar...

saludos
  #13 (permalink)  
Antiguo 13/05/2008, 03:22
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con sentencia if...

a ver, tu has dixo que para formar el array te dan una cadena, y q tienes que hacerlo tu a manita,

Dinos como es esa cadena ( con la que construyes el array, la q tienes q ir haciendo tu a mano ) y sacamos una forma de que no tengas que hacerla a mano.

He leido que te dan todos los CPS juntos ( los q iran en el array ), tonces me imagino algo asi ??

$CPparaRellenarArray = "287174738287128764392872938749" ;

o como te dan esa lista de CPs para rellenar el array ? xd
__________________
» Presupuesto Pagina Web
  #14 (permalink)  
Antiguo 13/05/2008, 03:24
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con sentencia if...

Creo que he leido q te lo dan sin " "

es decir


28282,29102,28198,12910...........

Si es asi, es facilisimo xD
__________________
» Presupuesto Pagina Web
  #15 (permalink)  
Antiguo 13/05/2008, 03:28
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

me los han dado tb sin ,, solamente tengo los numeros. y tengo que evaluar el array...

como de facil?

saludos
  #16 (permalink)  
Antiguo 13/05/2008, 03:38
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con sentencia if...

pon un ejemplo de lo que te han dado xico xDDDDDDDD
__________________
» Presupuesto Pagina Web
  #17 (permalink)  
Antiguo 13/05/2008, 03:46
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

buenas, tengo algo asi para el primer array:

28003 28035 28250 28390 28602 28692 28794 28919 28939
28004 28039 28260 28391 28607 28693 28798 28920 28940
28005 28040 28270 28400 28609 28694 28900 28921 28941
28008 28041 28280 28409 28610 28695 28901 28922 28942
28010 28044 28290 28410 28620 28696 28902 28923 28943
28011 28047 28293 28411 28630 28720 28903 28924 28944
28012 28048 28294 28412 28640 28737 28904 28925 28945
28013 28049 28295 28413 28647 28739 28905 28926 28946
28014 28210 28296 28420 28649 28740 28906 28927 28947
28015 28212 28300 28430 28650 28741 28950 28909 28930
28019 28213 28311 28440 28660 28743 28911 28931 28960
28020 28220 28320 28450 28668 28749 28970 28912 28932
28023 28223 28330 28460 28669 28760 28913 28933 28971
28024 28224 28340 28470 28670 28761 28914 28934 28978
28025 28229 28350 28490 28679 28770 28915 28935 28979
28026 28230 28359 28491 28680 28780 28980 28916 28936
28029 28233 28360 28492 28690 28791 28917 28937 28986
28034 28240 28380 28600 28691 28792 28918 28938 28991

saludos
  #18 (permalink)  
Antiguo 13/05/2008, 03:48
Avatar de mgusdl  
Fecha de Ingreso: abril-2007
Ubicación: Malaga, España
Mensajes: 190
Antigüedad: 17 años
Puntos: 5
Re: Ayuda con sentencia if...

Yo para esas cosas uso la funcion reemplazar del programa de edición, en mi caso EditPlus, luego nada más que montar a mano las filas unas con otras.
  #19 (permalink)  
Antiguo 13/05/2008, 03:57
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con sentencia if...

a ver, ponlas todas en la misma linea okz? y haces esto

$lineaCPs = "Aki la linea entera, separadas como tienes por espacios entre cada CP" ;

$arrayCPs = split(" ",$lineaCps) ;

y ese es el array que tienes q usar con el in_array() ;)
__________________
» Presupuesto Pagina Web
  #20 (permalink)  
Antiguo 13/05/2008, 04:22
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

buenas, he hecho lo siguiente:

Código:
$cp_1 = array (28003 28035 28250 28390 28602 28692 28794 28919 28939 28004 28039 28260 28391 28607 28693 28798 28920 28940 28005 28040 28270 28400 28609 28694 28900 28921 28941 28008 28041 28280 28409 28610 28695 28901 28922 28942 28010 28044 28290 28410 28620 28696 28902 28923 28943 28011 28047 28293 28411 28630 28720 28903 28924 28944 28012 28048 28294 28412 28640 28737 28904 28925 28945 28013 28049 28295 28413 28647 28739 28905 28926 28946 28014 28210 28296 28420 28649 28740 28906 28927 28947 28015 28212 28300 28430 28650 28741 28950 28909 28930 28019 28213 28311 28440 28660 28743 28911 28931 28960 28020 28220 28320 28450 28668 28749 28970 28912 28932 
28023 28223 28330 28460 28669 28760 28913 28933 28971 28024 28224 28340 28470 28670 28761 28914 28934 28978 28025 28229 28350 28490 28679 28770 28915 28935 28979 28026 28230 28359 28491 28680 28780 28980 28916 28936 28029 28233 28360 28492 28690 28791 28917 28937 28986 28034 28240 28380 28600 28691 28792 28918 28938 28991);

		$arrayCP1 = split(" ",$cp_1) ;

		if (in_array ($cp,$arrayCP1)){
$para[0] ="[email protected]";}
y me da el siguiente error:

Parse error: syntax error, unexpected T_LNUMBER, expecting ')' in /home2/ on line 193 y en esa linea tengo:

$cp_1 = array (28003 28035....

que hago mal?

saludos
  #21 (permalink)  
Antiguo 13/05/2008, 04:31
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con sentencia if...

Código PHP:


    $CPs 
"28003 28035 28250 28390 28602 28692 28794 28919 28939 28004 28039 28260 28391 28607 28693 28798 28920 28940 28005 28040 28270 28400 28609 28694 28900 28921 28941 28008 28041 28280 28409 28610 28695 28901 28922 28942 28010 28044 28290 28410 28620 28696 28902 28923 28943 28011 28047 28293 28411 28630 28720 28903 28924 28944 28012 28048 28294 28412 28640 28737 28904 28925 28945 28013 28049 28295 28413 28647 28739 28905 28926 28946 28014 28210 28296 28420 28649 28740 28906 28927 28947 28015 28212 28300 28430 28650 28741 28950 28909 28930 28019 28213 28311 28440 28660 28743 28911 28931 28960 28020 28220 28320 28450 28668 28749 28970 28912 28932 
28023 28223 28330 28460 28669 28760 28913 28933 28971 28024 28224 28340 28470 28670 28761 28914 28934 28978 28025 28229 28350 28490 28679 28770 28915 28935 28979 28026 28230 28359 28491 28680 28780 28980 28916 28936 28029 28233 28360 28492 28690 28791 28917 28937 28986 28034 28240 28380 28600 28691 28792 28918 28938 28991"
;

    
$cp_1 split(" ",$CPs) ;
        

    if ( 
in_array($cp,$cp_1) )
        
$para[0] ="[email protected]"
__________________
» Presupuesto Pagina Web
  #22 (permalink)  
Antiguo 13/05/2008, 04:32
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

hola mgusdl,

he hecho lo que me has dicho, de substiruit con el wordpad los espacios por la , y me lo ha hecho perfectamente!! gracias!!

el problema es que me hace lo que quiero, pero me da un error:

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home2/

y me ha quedado algo tal que asi:

$cp_1 = array (11111,22222,33333,44444....)

saludos
  #23 (permalink)  
Antiguo 13/05/2008, 04:35
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

gracias miskO!

ahora si, pero me da el mismo error con el array que le comentaba a mgusdl

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home2/creasit/

que falla?

saludos
  #24 (permalink)  
Antiguo 13/05/2008, 04:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Re: Ayuda con sentencia if...

Que contiene $cp ?
__________________
» Presupuesto Pagina Web
  #25 (permalink)  
Antiguo 13/05/2008, 04:51
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Re: Ayuda con sentencia if...

solucionado!!

era un error mio, tengo dos direcciones a enviar, segun un bloque de cp u otro. el problema es que no habia definido cp_2, y claro, no tenia valor!!

gracias a los 2 por vuestra aydua!!!

ferranWEB
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 18:50.