Foros del Web » Programando para Internet » PHP »

ayuda con problema al listar resultados

Estas en el tema de ayuda con problema al listar resultados en el foro de PHP en Foros del Web. hola a todos... necesito ayuda.... me enredé !! miren .. creé un php que me me inserta registros en una tabla mysql.... el tema es ...
  #1 (permalink)  
Antiguo 14/07/2009, 16:30
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta ayuda con problema al listar resultados

hola a todos...
necesito ayuda.... me enredé !!

miren .. creé un php que me me inserta registros en una tabla mysql....
el tema es que en una parte de este codigo... comparo a ver si existe el registro ingresado (nom_contrato).. hasta aqui todo bien.

el problema es que ahora quiero LISTAR los registros existentes (asi el usuario verá cuales YA fueron ingresados..)

esta es la parte del codigo donde hago esto:
Código PHP:
$busquedamysql_query("SELECT nom_contrato FROM contratos WHERE nom_contrato='$nom_contrato'");
$existentesmysql_query("SELECT nom_contrato FROM contratos");
$rowsReturned mysql_num_rows($existentes);

if(
mysql_num_rows($busqueda)>0// ó " !=0 " como se quiera ver 

      
// Inciso a:  
      
echo "El Contrato ingresado (" $nom_contrato .") ya existe.<br>"
      echo 
"<a href=\"javascript:history.back()\">Regresar<br></a>";
      echo 
"<br>";
      echo 
"Los Contratos ingresados son:<br>";
      
      while (
$row=mysql_fetch_array($existentes))
      {
        foreach(
$row as $indice
        { 
        print 
"$indice<br>"
        } 
      }

el PROBLEMA.. es que eso... me dá como resultado :

"El Contrato ingresado (aa) ya existe.
Regresar

Los Contratos ingresados son:
aa
aa
12
12
bb
bb"


como verán.. me arroja 2 VECES el resultado.... que hago mal

"aa" es el nombre de prueba que puse en el form de origen.... y "12" y "bb" son pruebas que ingresé en mysql :P
  #2 (permalink)  
Antiguo 14/07/2009, 17:00
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: ayuda con problema al listar resultados

Deberías saber que mysql_fetch_array devuelve un vector que contiene 2 veces cada dato. Una con un índice numérico y otro con el nombre del campo como palabra clave. Añade a la función la constante MYSQL_NUM para que devuelve un vector que contiene una sola vez cada dato, con el índice numérico

Prueba este código:
Código PHP:
mysql_fecth_array($recurso_sqlMYSQL_NUM); 
ó sustituye la funcion por esta
Código PHP:
mysql_fetch_row($recurso_sql); 
Ambas formas te vale.
__________________
Revolucionario controlador de plantillas para php
www.simphple.com
  #3 (permalink)  
Antiguo 14/07/2009, 17:05
Avatar de asassa  
Fecha de Ingreso: julio-2008
Ubicación: En el DF ectuoso
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: ayuda con problema al listar resultados

en efecto deberias usar esas que te mencionan o en su defecto te paso un ejenmplo
Código PHP:
<?Php $servidor "localhost"$usuario_bd "root"$password_bd "root"$basedatos "log"$conexion mysql_connect($servidor,$usuario_bd,$password_bd); if (!$conexion) {     echo "Error conectando a la base de datos.";    exit(); } $resultado=mysql_select_db($basedatos,$conexion); if (!$resultado) {     echo "Error seleccionando la base de datos.";  exit(); }?> 

<?php
   $queEmp 
"SELECT   id, nombre, email, status, asignacion from perfiles ";            
      
$resEmp mysql_query($queEmp$conexion);
       
$totEmp mysql_num_rows($resEmp);    
echo 
" <table width='100%' border='0' align='center' cellpadding='2' cellspacing='2'>";
echo 
"  <tr> ";
echo 
"  <td width='40%' bgcolor='#CCCCCC'><div align='center'>NOMBRE</div></td>";
echo 
"  <td width='20%' bgcolor='#CCCCCC'><div align='center'>EMAIL</div></td>";
echo 
"  <td width='15%' bgcolor='#CCCCCC'><div align='center'>STATUS</div></td>";
echo 
"    <td width='15%' bgcolor='#CCCCCC'><div align='center'>ASIGNACION</div></td>";
echo 
"    <td width='50%' bgcolor='#CCCCCC'><div align='center'>IMAGEN</div></td>";
echo 
" </tr>";
  
?>
  <?php
    
if( $totEmp ) {     
             while( 
$row_sel2 mysql_fetch_array($resEmp) ) { 
  
?>
 
</TR>
      <tr>
    <td width="100" bgcolor="#FFFFF0"><div align="center"><?php echo $row_sel2['nombre']   ?></div></td>
    <td width="85"  bgcolor="#FFFFF0"><div align="center"><?php echo $row_sel2['email'?></div></td>
    <td width="135" bgcolor="#FFFFF0"><div align="center"><?php echo $row_sel2['status'?></div></td> 
    <td width="145" bgcolor="#FFFFF0"><div align="center"><?php echo $row_sel2['asignacion'?></div></td>   
    <td width="231" bgcolor="#CCCCCC"><div align="center">:<a href="formulario2.php?variable1=<?php echo $row_sel2['nombre'?>&variable2=<?php echo $row_sel2['email'?>&variable3=<?php echo $row_sel2['status'?>&variable4=<?php echo $row_sel2['asignacion'?>&variable5=<?php echo $row_sel2['id'?>  " target="_blank" onClick="window.open(this.href,this.target,'width=900,height=500'); window.close; return false;"><?php echo "AGREGA IMAGEN"?></a></div></td>                
  </tr>
  <?php 
        

    }  
    
?>
</table>
y con que modifiques el query es mas que suficiente
  #4 (permalink)  
Antiguo 14/07/2009, 17:17
 
Fecha de Ingreso: diciembre-2008
Mensajes: 268
Antigüedad: 15 años, 4 meses
Puntos: 0
De acuerdo Respuesta: ayuda con problema al listar resultados

Cita:
Iniciado por Tokkara Ver Mensaje
Código PHP:
mysql_fecth_array($recurso_sqlMYSQL_NUM); 
MUCHAS GRACIAS TOKKARA y ASASSA !!

no tenia idea eso de los 2 codigos... gracias..
  #5 (permalink)  
Antiguo 14/07/2009, 17:52
Avatar de asassa  
Fecha de Ingreso: julio-2008
Ubicación: En el DF ectuoso
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: ayuda con problema al listar resultados

de nada cuando quieras.......
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 21:50.