[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.