Autor
|
Tema: [AYUDA] Como se concatenan saltos de linea en el codigo de PHP .= o && (Leído 9,519 veces)
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
Eso mismo si tengo una linea de codigo PHP muy larga y la quiero partir en varias lineas, hice asi: # escribimos la sentencia MySQL $sentencia="UPDATE ".$tabla." set nombres='$nombres',apellidos='$apellidos',direccion='$direccion',ciudad='$ciudad',pais='$pais',nacionalidad='$nacionalidad',"; $sentencia.="cedula='$cedula',tel_movil='$tel_movil',tel_casa='$tel_casa',tel_oficina='$tel_oficina',email='$email',red_email='$red_email',fecha_nac='$fecha_nac',"; $sentencia.="peso='$peso',altura='$altura',rh='$rh',organos='$organos',sangre='$sangre',religion='$religion',alcohol='$alcohol',tabaco='$tabaco',seguro='$seguro',"; $sentencia.="nom_company='$nom_company',num_poliza='$num_poliza',tel_company='$tel_company',num_seg_social='$num_seg_social',historial_clinico='$historial_clinico' where qr='".$qr."'";
conocen mas formas de partir el codigo ?
|
|
« Última modificación: 1 Septiembre 2014, 19:13 pm por Graphixx »
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
Markul
Desconectado
Mensajes: 38
|
Puedes continuar el codigo en la siguiente linea sin problemas,no es necesario partir la consulta de ese modo,si no me equivoco,de cualquier forma para hacer lo que intentas prueba asi: # escribimos la sentencia MySQL $sentencia="UPDATE ".$tabla." set nombres='$nombres',apellidos='$apellidos',direccion='$direccion',pais='$pais',nacionalidad='$nacionalidad',"; $sentencia=$sentencia ."cedula='$cedula',celular='$celular',telefono='$telefono',tel_oficina='$tel_oficina',email='$email',red_email='$red_email',fecha_nac='$fecha_nac',"; $sentencia=$sentencia ."peso='$peso',rh='$rh',organos='$organos',sangre='$sangre',religion='$religion',alcohol='$alcohol',tabaco='$tabaco',seguro='$seguro',"; $sentencia= $sentencia ."nom_company='$nom_company',num_poliza='$num_poliza',tel_company='$tel_company',num_seg_social='$num_seg_social',hist_clinico='$hist_clinico' where qr=".$qr;
|
|
|
En línea
|
|
|
|
MinusFour
|
Prueba: $sentencia = <<<END UPDATE "$tabla" set nombres='$nombres',apellidos='$apellidos',direccion='$direccion',pais='$pais',nacionalidad='$nacionalidad', cedula='$cedula',celular='$celular',telefono='$telefono',tel_oficina='$tel_oficina',email='$email',red_email='$red_email',fecha_nac='$fecha_nac', peso='$peso',rh='$rh',organos='$organos',sangre='$sangre',religion='$religion',alcohol='$alcohol',tabaco='$tabaco',seguro='$seguro', nom_company='$nom_company',num_poliza='$num_poliza',tel_company='$tel_company',num_seg_social='$num_seg_social',hist_clinico='$hist_clinico' where qr=$qr END;
Nota: Estás sacrificando eficiencia por legibilidad. Lo correcto sería configurar tu editor de texto para las oraciones largas.
|
|
« Última modificación: 1 Septiembre 2014, 17:28 pm por MinusFour »
|
En línea
|
|
|
|
Shell Root
|
@Graphixx y printeaste la cadena y la ejecutaste en el motor de base de datos?
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
@Graphixx y printeaste la cadena y la ejecutaste en el motor de base de datos?
La consulta me funciona tal y como esta (ya la actualice)... lo que queria era saber que otras formas de partir codigo existen, estuve leyendo en foros y decian que con && pero con "&&" no me funciono.
|
|
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
WHK
|
Como es eso de partirlo? lo que debes hacer es acostumbrarte a identar los códigos estén en el legunaje que estén: <?php /* escribimos la sentencia MySQL */ $sentencia = ' UPDATE '.$tabla.' SET nombres = "'.$nombres.'", apellidos = "'.$apellidos.'", direccion = "'.$direccion.'", ciudad = "'.$ciudad.'", pais = "'.$pais.'", nacionalidad = "'.$nacionalidad.'", cedula = "'.$cedula.'", tel_movil = "'.$tel_movil.'", tel_casa = "'.$tel_casa.'", tel_oficina = "'.$tel_oficina.'", email = "'.$email.'", red_email = "'.$red_email.'", fecha_nac = "'.$fecha_nac.'", peso = "'.$peso.'", altura = "'.$altura.'", rh = "'.$rh.'", organos = "'.$organos.'", sangre = "'.$sangre.'", religion = "'.$religion.'", alcohol = "'.$alcohol.'", tabaco = "'.$tabaco.'", seguro = "'.$seguro.'", nom_company = "'.$nom_company.'", num_poliza = "'.$num_poliza.'", tel_company = "'.$tel_company.'", num_seg_social = "'.$num_seg_social.'", historial_clinico = "'.$historial_clinico.'" WHERE qr = "'.$qr.'" ';
Recuerda escapar cada variable con mysqli_escape_string() para prevenir las inyecciones sql y usar el objeto DateTime() para validar fechas y exportar con el formato sql ( $ob->format('Y-m-d') ). Mira, acá hay una consulta sql que hice hace tiempo y a pesar del tamaño que tiene mantengo la identación y no necesito partirla o separarla (auqnue esta consulta ya no lo uso porque estaba muy pesada, ahora uso tablas para caché desnormalizadas): <?php $busqueda = $this->mysqli->query(' SELECT usuarios.id, usuarios.apellidos, usuarios.nombres, COUNT(DISTINCT especialidades_areas.id) as cantidad_especialidades, COUNT(DISTINCT centros_medicos.id) as cantidad_centros_medicos, COUNT(DISTINCT profesionales_titulos.id) as cantidad_titulos, IF(usuarios.hash_foto IS NOT NULL, 0, 1) as tiene_foto, IF(COUNT(DISTINCT especialidades_areas.id) = 0, 0, 1) as tiene_especialidades, IF(COUNT(DISTINCT centros_medicos.id) = 0, 0, 1) as tiene_centros_medicos, IF(COUNT(DISTINCT profesionales_titulos.id) = 0, 0, 1) as tiene_titulos FROM usuarios INNER JOIN usuarios_roles_relacion ON (usuarios_roles_relacion.usuario_id = usuarios.id) INNER JOIN usuarios_roles ON (usuarios_roles.id = usuarios_roles_relacion.usuarios_rol_id) LEFT JOIN especialidades_areas_relacion_profesionales ON (especialidades_areas_relacion_profesionales.usuario_id = usuarios.id) LEFT JOIN especialidades_areas ON (especialidades_areas.id = especialidades_areas_relacion_profesionales.especialidades_area_id) LEFT JOIN usuarios_relacion_centro_medico ON ( usuarios_relacion_centro_medico.usuario_id = usuarios.id AND usuarios_relacion_centro_medico.usuarios_rol_id = ( SELECT id FROM usuarios_roles WHERE namespace = "profesional" LIMIT 1 ) ) LEFT JOIN centros_medicos ON (centros_medicos.id = usuarios_relacion_centro_medico.centro_medico_id) LEFT JOIN centros_medicos_tipos ON (centros_medicos_tipos.id = centros_medicos.centros_medicos_tipo_id) LEFT JOIN profesionales_titulos ON (profesionales_titulos.usuario_id = usuarios.id) WHERE usuarios_roles.namespace = "profesional" AND usuarios.esta_acreditado_superintendencia = 1 AND CONCAT_WS( " ", usuarios.apellidos, usuarios.nombres, usuarios.apellidos, profesionales_titulos.texto, centros_medicos_tipos.nombre, centros_medicos.nombre, especialidades_areas.nombre, centros_medicos_tipos.nombre, centros_medicos.nombre, profesionales_titulos.texto, usuarios.apellidos, usuarios.nombres, usuarios.apellidos, " " ) LIKE "%pedro%" GROUP BY usuarios.id ORDER BY tiene_foto, usuarios.apellidos, usuarios.nombres ');
|
|
« Última modificación: 1 Septiembre 2014, 20:14 pm por WHK »
|
En línea
|
|
|
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
WHK , que diferencia hay entre importar la variable asi: nombres='$nombres',
A importar la variable asi: nombres= "'.$nombres.'",
Gracias.
|
|
« Última modificación: 2 Septiembre 2014, 04:27 am por WHK »
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
WHK
|
Varias, la primera es costumbre, la segunda es mayor control, no puedes evaluar todo tipo de objetos sobre comillas dobles, yo acostumbro a usar objetos y entre comillas dobles casi nunca funcionan o funcionan mal y terminan en fugas de información inesperadas. Con comillas simples el string no se evalua, con comillas dobles si se evalua, el problema viene cuando usas mucho código html dentro de código php, por ejemplo: <a href="" <?php id($x) echo 'class="active"'; ?>>xxx</a> Si lo hubiera hecho en php con comillas dobles hubiera tenido que haber escrito html con comillas simples y puede ser peligroso porque casi todos los lenguajes de programación incluyendo php filtran comillas dobles para prevenir los xss pero no las simples a menos que des parámetros especiales a las funciones como ENT_QUOTES. Mayor control también porque puedes procesar funciones sobre variables entremedio, por ejemplo: <?php $extras = 'ghi'; echo ' abc def '.$this->str->escapeHtml($extras).' jkl ';
Hacer esto con comillas dobles poniendo las variables por dentro puede generar: Mal acostumbramiento a usar variables que tienen solo un uso de vida, por ejemplo: <?php $extras = $this->str->escapeHtml('ghi'); echo " abc def $extras jkl ';
Ahi hay varios problemas, uno que $extras ya no lo podrás usar en un contexto que no sea html porque va filtrada,, por ejemplo si lo quieres usar en una consulta sql o dentro de una variable javascript no te servirá porque estará codificada en html, el orto problema es que talves quieras poner un simbolo peso entremedio y tendrás que usar carácteres de escape porque se va a evaluar y puede ser peligroso, otro problema como lo dije antes va en los códigos html, por ejemplo simplemachines (el sistema en php de este foro) escribe mucho las etiquetas html en echo por lo cual debes usar muchisimos carácteres de escape porque tanto php como el html los escriben en comillas dobles o podrás caer en agujeros de seguridad o en problemas de codificación. Por ejemplo: <?php echo "<a href=\"#\">\$ 0.00 pesos</a>";
Entonces para no hacer trabajo de más, prevenir agujeros de seguridad, hacer que php no evalue haciendo los echos mas rápidos, prevenir tener que estar escribiendo a cada rato carácteres de escape, etc etc mejor te acostumbras a usar una sola manera de hacer las cosas... para mi la mejor manera y la mas correcta es usar siempre código php con comillas simples, concatenar variables con un punto y escribir código html en comillas dobles. Cuando necesito escribir código javascript dentro de php escribo php en comillas simples y javascript en comillas dobles, pero cuando javascript lo escribo en un archivo solo entonces ahi lo uso también con comillas simples, solamente html es el único lenguaje que siempre siempre uso con comillas dobles y sin excepción, las consultas sql desde php las hago con comillas dobles y php con comillas simples. De esta manera cuando voy a programar nunca tengo problemas ni enredos con las comillas y nunca me dan problemas de ningún tipo, salvo cuando debo escribir obligadamente comillas simples sobre comillas simples, ahi si uso las secuencias de escape pero son muy pocas las veces y trato de evitarlas, en html cuando necesito escribir valores con comillas simples y dobles uso html entities, como "e; Saludos.
|
|
|
En línea
|
|
|
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
Gracias compañero queda todo muy claro, nos salimos un poco del tema, pero todo nutre el aprendizaje en PHP.
|
|
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
JorgeEMX
|
Otra forma de poder usar variables, sobre todo objetos, entre comillas dobles y que sea menos confuso: echo "Hola {$obj->text}";
Y si, la manera correcta es identar bien los strings como lo indica WHK. Así no tendrás enemigos y tu vida nunca correrá peligro
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
contar saltos de linea RichTextBox VB
Programación Visual Basic
|
Carlosnuel
|
5
|
12,913
|
6 Abril 2007, 01:55 am
por CeLaYa
|
|
|
Saltos de linea
PHP
|
zhynar_X
|
2
|
5,562
|
8 Septiembre 2007, 17:59 pm
por дٳŦ٭
|
|
|
Saltos de linea en PHP.
PHP
|
Akise
|
2
|
2,130
|
25 Junio 2013, 03:33 am
por Akise
|
|
|
Ayuda con saltos de línea
Programación Visual Basic
|
TheH4ck
|
7
|
3,797
|
13 Marzo 2015, 18:58 pm
por okik
|
|
|
¿Cómo imprimir un string sin que este tenga saltos de línea? Hice un script de letras de canciones
Scripting
|
emperie
|
1
|
3,303
|
21 Agosto 2023, 17:44 pm
por Danielㅤ
|
|