[Pgsql-ayuda] Asi se trabaja?

rodrigo miranda rodrigonibaldo@terra.cl
24 Jan 2004 17:23:10 +0000


hola saludos Alvaro te agradesco tu respuesta y sin duda tomare todas 
tus sugerencia ya que se ven bien justificadas, ahora la unica duda con lo que me dices tiene
en relacion con la linea que  me animo a escribir esta pregunta que es la 5, y tu
con respecto a esta me dices:
"La linea 5 no esta correctamente indentada".  


1	$sql ="";
2	$sql.=" select claclenght('abcde')"; //llamo procedimiento
3	$res  = pg_query($sql);
4	while($row=pg_fetch_array($res)){
5	$num = $row["0"];            //tomo el 
6       echo $num;
       }

A que te refieres con esto no entiendo, espero esta aclaracion ya que
como te dije es la linea que me trae todas mis dudas, gracias de
antemano .







> n Sat, Jan 24, 2004 at 01:21:09PM +0000, rodrigo miranda wrote:
> 
> Hola,
> 
> Con respecto al codigo para Postgres todo está bien y es correcto, pero
> el código PHP no es bueno.  Dos sugerencias:
> 
> 1. usa templates, no pongas HTML dentro del codigo PHP
>    (ej. smarty.php.net).  No pongas nada de HTML fuera de un template,
>    por pequeño que sea.
> 
> 2. verifica las condiciones que asumes cuando recibes algo.
>    Por ej. despues de pg_query(), verifica que $res es un resultado
>    (que la funcion no devuelve nulo), y que pg_num_rows es efectivamente
>    1.
> 
> 1	$sql  ="";
> 2	$sql .="Select calclenght('abcde')"; //llamo procedimiento
> 3	$res  = pg_query($sql);
> 4	while($row=pg_fetch_array($res)){
> 5	$num = $row["0"];             //tomo el valor
> 6	echo $num;                    //lo desplego pantalla
> 
> 
> La linea 1 es innecesaria y agrega ruido.
> 
> El comentario en la linea 2 es innecesario, de partida porque no llamas
> al procedimiento ahi, sino que solo asignas el string SQL a una variable
> para ejecutarla despues.  Y en segundo lugar porque lo que haces es muy
> sencillo y no necesitas un comentario para entenderlo.  (Se aplica lo
> mismo al resto de los comentarios de tu código.  IMHO sería más útil un
> solo comentario al principio del bloque de código indicando a grandes
> rasgos qué es lo que quieres hacer)
> 
> Despues de la linea 3 deberia haber algo como 
> if (!$res) { error "no funciona la BD"; }
> (no conozco bien la sintaxis de PHP para esto, pero esa es la idea)
> 
> Ademas, despues de eso deberia haber un
> if (pg_num_rows($res) != 1) { error "no funciona la BD" };
> 
> La linea 5 no esta correctamente indentada.
> 
> 
> 
> Como ves, todos los comentarios apuntan mas que nada a usar un buen
> estilo de código.  Esto lleva a código más robusto y más mantenible.
> (Recuerda que el código va a pasar más tiempo siendo mantenido que
> siendo programado, por lo tanto este punto es muy importante)
> 
> Unas pocas costumbres como estas te pueden ayudar a construir
> aplicaciones realmente buenas y no la basura estandar que se ve en PHP
> por todos lados.