Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-07-2006
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
El zero a la izquierda

Tengo una tabla MySQL con una columna llamada `id` que alberga la identificación de cada noticia (en mi base de datos). El caso es que este `id` es de tipo INTEGER y tiene una longitud de 10 dígitos. Bueno, yo uso este código para obtener las propiedades de cada registro de dicha tabla:
Código PHP:
          <?php
            
include(dbconf);
            
$result mysql_query("SELECT `id`, `id_user`, `title`, `date` FROM `news`");
            
$total_news mysql_num_rows($result);
            for(
$cnew 0;$cnew $total_news$cnew++){
                
$id mysql_result($result$cnew"id");
                
$id_user mysql_result($result$cnew"id_user"); 
                
$title mysql_result($result$cnew"title");
                
$date mysql_result($result$cnew"date");
                
$user mysql_result(mysql_query("SELECT `user` FROM `admin` WHERE `id` = ".$id_user), 0"user");                    
                echo 
"<tr>";
                echo 
"<td width='50'><input type='checkbox' name='del".$id."' value='del".$id."'>".$id."</td>";
                echo 
"<td width='181'>".$title."</td>";
                echo 
"<td width='75'>".$user."</td>";
                echo 
"<td width='85'>".$date."</td>";
                echo 
"<td width='75'><input type='submit' name='ed".$id."' value='Editar'></td>";
                echo 
"</tr>"
            }
          
?>
Bueno, el problema - por decirlo así, como mínimo es feo a la vista - está en que en $id me aparecen todos los ceros a la izquierda de la columna `id` de cada registro y esto es molesto.
Como puedo eliminar los dichosos zeros a la izquierda? Tendré problemas con la identificación? Creo que no, al ser números 32 = 000000032. No creo que haya ningún problema, así pues, como elimines esos ceros sobrantes?
__________________
l2prog.co.nr
Responder Con Cita
  #2  
Antiguo 06-07-2006
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
Hola

No se por que te aparecen los ceros a la izquierda, a mi nunca me ha sucedido, pero te puedo dar algunos consejos:
1. Yo nunca he utilizado las comillas que pones en el nombre de todos los campos y tablas, desconozco su utilidad, yo lo haría de la siguiente forma:
Código PHP:
$result mysql_query("SELECT id, id_user, title, date FROM news"); 
2. Montas un lio enorme para hacer algo que ya lo hace PHP, con mysql_fetch_array:
Código PHP:
<?php
            
include(dbconf);
            
$query mysql_query("SELECT id, id_user, title, date FROM news");
            while( 
$result mysql_fetch_array$query ) ) {
                
$user mysql_result(mysql_query("SELECT `user` FROM `admin` WHERE `id` = ".$id_user), 0"user");                    
                echo 
"<tr>";
                echo 
"<td width='50'><input type='checkbox' name='del".$result['id']."' value='del".$result['id']."'>".$result['id']."</td>";
                echo 
"<td width='181'>".$result['title']."</td>";
                echo 
"<td width='75'>".$user."</td>";
                echo 
"<td width='85'>".$result['date']."</td>";
                echo 
"<td width='75'><input type='submit' name='ed".$result['id']."' value='Editar'></td>";
                echo 
"</tr>"
            }
?>
3. Las dos consultas que realizas se pueden hacer en una:
Código SQL [-]
SELECT n.id, n.id_user, n.title, n.date, a.user FROM news n, admin a WHERE n.id_user = a.id

4. y último, esto es mas por gusto que otra cosa y es no meter el código HTML dentro del PHP.

Código PHP:
<?php
            
include(dbconf);
            
$query mysql_query("SELECT n.id, n.id_user, n.title, n.date, a.user FROM news n, admin a WHERE n.id_user = a.id");
            while( 
$result mysql_fetch_array$query ) ) {
?>
                <tr>
                <td width='50'><input type='checkbox' name='del<?=$result['id']?>' value='del<?=$result['id']?>'><?=$result['id']?></td>
                <td width='181'><?=$result['title']?></td>";
                <td width='75'><?=$result['user?></td>
                <td width='
85'><?=$result['date']?></td>
                <td width='
75'><input type='submit' name='ed<?=$result['id']?> value='Editar'></td>";
                </tr>
<?
        
}    
?>
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #3  
Antiguo 06-07-2006
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Gracias por los consejos, pero te puedo asegurar que las comillas de las consultas no producen ningún error. He probado el código en el phpMyAdmin i funcionan las comillas...
__________________
l2prog.co.nr
Responder Con Cita
  #4  
Antiguo 07-07-2006
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
Hola

Yo no digo que funcione o que no funcione, digo que ignoro su utilidad y que si eliminas las comillas también fuciona y eso que te ahorras de poner.

He realizado un ejemplo con el mismo código que tienes tú y a mi no me aparece por ningun sitio los ceros, ¿podrías poner como introduces los datos y como tienes definido ese campo en la tabla?
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #5  
Antiguo 12-07-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Las comillas supongo que sirven para poner nombres "raros" a los campos o tablas, como nombres con espacios o palabras reservadas. Para programas como phpMyAdmin que son genéricos, está muy bien que lo hagan pero para uno mismo es sumamente engorroso estar poniendo esas comillas innecesarias.

Otra cosa, te recomiendo revisar la ayuda de php para que veas porqué no conviene usar mysql_result().

En cuanto al "problema" original puede deberse a que el campo en cuestión tiene el atributo zerofill. O bien se lo quitas o fuerzas el tipo de datos:

Código PHP:
$id = (int) mysql_result(...); 
// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Navegar en un DBgrid de izquierda a derecha amadis Conexión con bases de datos 1 17-01-2006 12:53:32
Extraer texto a la izquierda de un indice Johnny Q SQL 17 06-10-2005 21:06:05
Justificar texto a izquierda y derecha en reporte haanbaco Impresión 1 07-03-2005 13:33:58
Duda con los JOINS por la izquierda o derecha agova SQL 4 16-07-2004 17:12:44
como pooner 0 en la izquierda Michel Firebird e Interbase 6 29-07-2003 15:09:09


La franja horaria es GMT +2. Ahora son las 07:25:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi