Foros del Web » Programando para Internet » PHP »

recorrer todos los datos

Estas en el tema de recorrer todos los datos en el foro de PHP en Foros del Web. Tengo que buscar todas las empresas de determinadada ciudad. El problema es que el sitio esta hecho de forma que las dos tablas no tienen ...
  #1 (permalink)  
Antiguo 05/04/2008, 17:01
 
Fecha de Ingreso: abril-2007
Mensajes: 59
Antigüedad: 17 años
Puntos: 0
recorrer todos los datos

Tengo que buscar todas las empresas de determinadada ciudad.
El problema es que el sitio esta hecho de forma que las dos tablas no tienen datos en comun mas que el nombrede la empresa el codigo que hago es este.
Cita:

if( $_POST['ciudad']!="" ){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);
//selecciono todo de la tabla empresa donde el nombre ciudad es el que elijo
//y los obtengo todos
$bd->db_sql_select('*','empresa','ciudadCorp=\''.$_POS T['ciudad'].'\' ','','','');

$bd->db_execute_query();
$row2 = $bd->get_next_row();
//cargo el nombre ciudad
$ciudad=$row2['nombreComercial'];

$bd2 = new db($host,$user,$pass);
$bd2->db_connect();
$bd2->db_select_db($db);
//aqui quisiera segun esos nombres ciudad que cargue mostrar todos los de la tabla reclutamiento el problema es que me quedo en el primer nombre ciudad y no muestro las demas
$bd2->db_sql_select('*','reclutamiento','nombreEm=\''.$ ciudad.'\' ','','','');

$bd2->db_execute_query();
$row = $bd2->get_next_row();

}
el problema es que tengo una lista de nombres de empresas en esa ciudad y luego en la otra tabla en reclutamiento me tendria que fijar esas empresas y buscarlas en la otra tabla y listarlas.
el problema es que se me queda en la primer empresa y luego no me lista nada.
Alguien me puede asesorar????
como hago pra listar todas esas empresas que traigo en el primer array???
graciassss
  #2 (permalink)  
Antiguo 05/04/2008, 18:02
 
Fecha de Ingreso: abril-2007
Mensajes: 59
Antigüedad: 17 años
Puntos: 0
Re: recorrer todos los datos

lo hice diferente con un inner join pero igual se me queda en el primer dato y no me muestra los demas
este seria todo el formulario
Cita:

<?
include_once('includes/db.inc.php');

$count=$bd->num_rows;
$countPages=(fmod($count,10)==0)?(int)($count/10):(int)($count/10)+1;

if(isset($_REQUEST['page'])) {
$actualPage=$_REQUEST['page'];
}else{
$actualPage=1;
}
$begin=($actualPage-1)*10;

if($_POST['areas']!="" and $_POST['puesto']==""){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);

$bd->db_sql_select('*','reclutamiento',' departamento=\''.$_POST['areas'].'\'',array('idReclutamiento'=>'desc'),$begin.',10 ');
//imprimo la sentencia sql para ver que trae
//echo $bd->sql;
$bd->db_execute_query();


$row = $bd->get_next_row();
}
if($_POST['areas']!="" and $_POST['puesto']!=""){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);

$bd->db_sql_select('*','reclutamiento','puesto=\''.$_P OST['puesto'].'\' and departamento=\''.$_POST['areas'].'\'',array('idReclutamiento'=>'desc'),$begin.',10 ');
//imprimo la sentencia sql para ver que trae
//echo $bd->sql;
$bd->db_execute_query();


$row = $bd->get_next_row();
}

if($_POST['areas']=="" and $_POST['puesto']!=""){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);

$bd->db_sql_select('*','reclutamiento','puesto=\''.$_P OST['puesto'].'\' ',array('idReclutamiento'=>'desc'),$begin.',10');
//imprimo la sentencia sql para ver que trae
//echo $bd->sql;
$bd->db_execute_query();


$row = $bd->get_next_row();
}
if($_POST['areas']=="" and $_POST['puesto']=="" and $_POST['ciudad']=="" ){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);

$bd->db_sql_select('*','reclutamiento','',array('idRec lutamiento'=>'desc'),$begin.',10');
//imprimo la sentencia sql para ver que trae
//echo $bd->sql;
$bd->db_execute_query();


$row = $bd->get_next_row();
}

if( $_POST['ciudad']!="" ){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);
$bd->db_sql_select('*','empresa E1 INNER JOIN reclutamiento E2 ON E1.nombreComercial=E2.nombreEm','E1.ciudadCorp = \''.$_POST['ciudad'].'\'','','');
//imprimo la sentencia sql para ver que trae
echo $bd->sql;

$bd->db_execute_query();
$row = $bd->get_next_row();

}


?>
<html>
<head>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<style type="text/css">
<!--
.style1 {font-weight: bold}
-->
</style>
</head>

<body>
<table width="450" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>

<td class="Negro14"><strong>Consultando Vacantes // Resultado</strong></td>
</tr>
<tr>
<td height="10"><img src="Images/1px.gif" width="10" height="10"></td>
</tr>

<tr>
<td height="10"><img src="Images/1px.gif" width="10" height="10"></td>
</tr>
<table width="400" border="0">
<tr>
<td width="10" class="Negro14"><strong>Fecha</strong> </td>
<td width="10" class="Negro14"><strong>Puesto</strong></td>
<td width="10" class="Negro14"><strong>Nombre Empresa</strong></td>
</tr>
</table>
<tr>
<?
if($row){
while($row){


?>

<table width="400" border="0">
<tr>
<?

$datoID=$row['idReclutamiento'];
?>
<td bgcolor="#F3F3F3" class="Negro14"><? echo $row['fecha'];?><td bgcolor="#F3F3F3" class="Negro14"><? echo $row['puesto'];?><td bgcolor="#F3F3F3" class="Negro14"><? echo $row['nombreEm'];?><td bgcolor="#F3F3F3" class="Negro14"><a href="BuscandoEmpleoViewIn.php?datoid=<? echo $datoID?>"> + Info</a></td></td></td>
</tr>
</table>
<?
$row = $bd->get_next_row();
}
?>
<tr>
<td height="10" align="left" valign="top" class="Negro14"><strong>Page
<? echo $actualPage;?></strong></td>
</tr>
<tr>
<td height="10" align="left" valign="top" class="Negro14">
<?
if($countPages!=0){
$prevPage=$actualPage-1;
$nextPage=$actualPage+1;
if($actualPage!=1)
echo "<a href='BuscandoEmpleoResultadoIn.php?page=$prevPage ' class='TxtBody'>&lt; Prev</a><span class='TxtBody'> - </span>";
else
echo "<a href='#' class='TxtBody'>&lt; Prev</a><span class='TxtBody'> - </span>";
$page=1;
while($page<=$countPages){
if($page!=1)
echo "<span class='TxtBody'> - </span>";
if($page!=$actualPage)
echo "<a href='BuscandoEmpleoResultadoIn.php?page=$page'cla ss='TxtBody'>$page</a>";
else
echo " <strong>".$page."</strong>";

$page++;
}
if($actualPage!=$countPages && $countPages!=1)
echo "<span class='TxtBody'> - </span><a href='BuscandoEmpleoResultadoIn.php?page=$nextPage ' class='TxtBody'>Next &gt;</a>";
else
echo "<span class='TxtBody'> - </span><a href='#' class='TxtBody'>Next &gt;</a>";
}
?>
</td>
</tr>
<? }?>
</table></td>
</tr>
<tr>
<td height="10"><img src="Images/1px.gif" width="10" height="10"></td>
</tr>

<tr>
<td height="10"><img src="Images/1px.gif" width="10" height="10"></td>
</tr>
<tr>
<td class="Negro14"><br><a href="BuscandoEmpleoConsultandoIn.html" target="_self" class="Negro14link"><strong>&raquo; Realizar otra Busqueda</strong></a></td>
</tr>
</table></td>
</tr>
</table>

<map name="Map"><area shape="rect" coords="32,23,48,37" href="indexEng.html">
<area shape="rect" coords="8,23,25,35" href="index.html">
</map></body>
</html>
el problema lo tengo en la consulta de ciudad , el resto me las hace bien
desde ya muchas gracias si alguien me pude ayudar

Última edición por sheilac; 05/04/2008 a las 18:08
  #3 (permalink)  
Antiguo 05/04/2008, 18:08
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 19 años
Puntos: 3
Re: recorrer todos los datos

sheilac
aca veo:
Código PHP:
$bd->db_execute_query();
$row2 $bd->get_next_row();
//cargo el nombre ciudad
$ciudad=$row2['nombreComercial']; 
pero no veo que estes guardando todas las respuestas en un array:

Código PHP:
$bd->db_execute_query();
$row2 $bd->get_next_row();
//cargo el nombre ciudad EN UN ARRAY <----
$ciudad[]=$row2['nombreComercial']; 
para despues recorrerlo.
A lo mejor no entendi bien lo que necesitas!
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #4 (permalink)  
Antiguo 05/04/2008, 18:52
 
Fecha de Ingreso: abril-2007
Mensajes: 59
Antigüedad: 17 años
Puntos: 0
Re: recorrer todos los datos

si en realidad creo es esto, pero como recorro luego ese array en mi funcion???
gracias
  #5 (permalink)  
Antiguo 06/04/2008, 00:11
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 19 años
Puntos: 3
Re: recorrer todos los datos

Vas a tener un array llamado $ciudad.

Para recorrer un array podés utilizar foreach():

Código PHP:
<?php
    
foreach($ciudad as $key=>$c){
    echo 
$c// en $c tenes los valores que fuiste guardando dentro del array
    /*
    Aquí debes agregar el código necesario. 
   */  
  
}
?>
Postea justo como necesitas mostrar estos valores asi podemos ver mejor cual es tu necesida específica.
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #6 (permalink)  
Antiguo 06/04/2008, 07:52
 
Fecha de Ingreso: abril-2007
Mensajes: 59
Antigüedad: 17 años
Puntos: 0
Re: recorrer todos los datos

la verdad disculpa pero no entiendo que seria $key=>$c en mi codigo
lo que intento hacer (capaz y hay una mejor solucion) es como mis tablas no estan relacionadas mas que por el nombre empresa en la primer consulta en la tabla empresa obtengo todas las empresas cuya ciudad es montevideo y luego con esos datos en la segunda tabla reclutamiento ubico de ese array que tengo los nombres de las empresas me fijo esten en la tabla reclutamiento y las listo.
por eso hago esto
$ciudad[]=$row2['nombreComercial'];
me fjio en ese array ciudad los nombres de las empresas y las busco en la tabla reclutamiento.
el problema es que se me queda en el "primer nombre empresa" , no busca todos.
y la verdad estoy mas que perdida.
este es todo mi codigo del formulario tratando de hacer esos cambios pero no ubico como hacer el cambio de arriba
segun este foreach vuelvo a ejecutar otra consulta en la base de datos

Cita:

<?
include_once('includes/db.inc.php');

$count=$bd->num_rows;
$countPages=(fmod($count,10)==0)?(int)($count/10):(int)($count/10)+1;

if(isset($_REQUEST['page'])) {
$actualPage=$_REQUEST['page'];
}else{
$actualPage=1;
}
$begin=($actualPage-1)*10;

if($_POST['areas']!="" and $_POST['puesto']==""){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);

$bd->db_sql_select('*','reclutamiento',' departamento=\''.$_POST['areas'].'\'',array('idReclutamiento'=>'desc'),$begin.',10 ');
//imprimo la sentencia sql para ver que trae
//echo $bd->sql;
$bd->db_execute_query();


$row = $bd->get_next_row();
}
if($_POST['areas']!="" and $_POST['puesto']!=""){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);

$bd->db_sql_select('*','reclutamiento','puesto=\''.$_P OST['puesto'].'\' and departamento=\''.$_POST['areas'].'\'',array('idReclutamiento'=>'desc'),$begin.',10 ');
//imprimo la sentencia sql para ver que trae
//echo $bd->sql;
$bd->db_execute_query();


$row = $bd->get_next_row();
}

if($_POST['areas']=="" and $_POST['puesto']!=""){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);

$bd->db_sql_select('*','reclutamiento','puesto=\''.$_P OST['puesto'].'\' ',array('idReclutamiento'=>'desc'),$begin.',10');
//imprimo la sentencia sql para ver que trae
//echo $bd->sql;
$bd->db_execute_query();


$row = $bd->get_next_row();
}
if($_POST['areas']=="" and $_POST['puesto']=="" and $_POST['ciudad']=="" ){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);

$bd->db_sql_select('*','reclutamiento','',array('idRec lutamiento'=>'desc'),$begin.',10');

$bd->db_execute_query();
$row = $bd->get_next_row();
}

if( $_POST['ciudad']!="" ){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);
//selecciono todo de la tabla empresa donde el nombre ciudad es el que elijo
//y los obtengo todos
$bd->db_sql_select('*','empresa','ciudadCorp=\''.$_POS T['ciudad'].'\' ','','','');

$bd->db_execute_query();
$row2 = $bd->get_next_row();
//cargo el nombre ciudad en un array
$ciudad[]=$row2['nombreComercial'];
//for each de ciudad para recorrer el array no entiendo que es $key =>$C para mi
foreach($ciudad as $key=>$c){
$bd2 = new db($host,$user,$pass);
$bd2->db_connect();
$bd2->db_select_db($db);
//aqui quisiera segun esos nombres ciudad que cargue mostrar todos los de la tabla reclutamiento el problema es que me quedo en el primer nombre ciudad y no muestro las demas
$bd2->db_sql_select('*','reclutamiento','nombreEm=\''.$ ciudad.'\' ','','','');

$bd2->db_execute_query();
$row = $bd2->get_next_row();
//cierro for each
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<style type="text/css">
<!--
.style1 {font-weight: bold}
-->
</style>
</head>

<body>
<table width="450" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>

<td class="Negro14"><strong>Consultando Vacantes // Resultado</strong></td>
</tr>
<tr>
<td height="10"><img src="Images/1px.gif" width="10" height="10"></td>
</tr>

<tr>
<td height="10"><img src="Images/1px.gif" width="10" height="10"></td>
</tr>
<table width="400" border="0">
<tr>
<td width="10" class="Negro14"><strong>Fecha</strong> </td>
<td width="10" class="Negro14"><strong>Puesto</strong></td>
<td width="10" class="Negro14"><strong>Nombre Empresa</strong></td>
</tr>
</table>
<tr>
<?
// while ($row = $bd->get_next_row()){
if($row){
while($row){


?>

<table width="400" border="0">
<tr>
<?

$datoID=$row['idReclutamiento'];
?>
<td bgcolor="#F3F3F3" class="Negro14"><? echo $row['fecha'];?><td bgcolor="#F3F3F3" class="Negro14"><? echo $row['puesto'];?><td bgcolor="#F3F3F3" class="Negro14"><? echo $row['nombreEm'];?><td bgcolor="#F3F3F3" class="Negro14"><a href="BuscandoEmpleoViewIn.php?datoid=<? echo $datoID?>"> + Info</a></td></td></td>
</tr>
</table>
<?
$row = $bd->get_next_row();
}
?>
<tr>
<td height="10" align="left" valign="top" class="Negro14"><strong>Page
<? echo $actualPage;?></strong></td>
</tr>
<tr>
<td height="10" align="left" valign="top" class="Negro14">
<?
if($countPages!=0){
$prevPage=$actualPage-1;
$nextPage=$actualPage+1;
if($actualPage!=1)
echo "<a href='BuscandoEmpleoResultadoIn.php?page=$prevPage ' class='TxtBody'>&lt; Prev</a><span class='TxtBody'> - </span>";
else
echo "<a href='#' class='TxtBody'>&lt; Prev</a><span class='TxtBody'> - </span>";
$page=1;
while($page<=$countPages){
if($page!=1)
echo "<span class='TxtBody'> - </span>";
if($page!=$actualPage)
echo "<a href='BuscandoEmpleoResultadoIn.php?page=$page'cla ss='TxtBody'>$page</a>";
else
echo " <strong>".$page."</strong>";

$page++;
}
if($actualPage!=$countPages && $countPages!=1)
echo "<span class='TxtBody'> - </span><a href='BuscandoEmpleoResultadoIn.php?page=$nextPage ' class='TxtBody'>Next &gt;</a>";
else
echo "<span class='TxtBody'> - </span><a href='#' class='TxtBody'>Next &gt;</a>";
}
?>
</td>
</tr>
<? }?>
</table></td>
</tr>
<tr>
<td height="10"><img src="Images/1px.gif" width="10" height="10"></td>
</tr>

<tr>
<td height="10"><img src="Images/1px.gif" width="10" height="10"></td>
</tr>
<tr>
<td class="Negro14"><br><a href="BuscandoEmpleoConsultandoIn.html" target="_self" class="Negro14link"><strong>&raquo; Realizar otra Busqueda</strong></a></td>
</tr>
</table></td>
</tr>
</table>

<map name="Map"><area shape="rect" coords="32,23,48,37" href="indexEng.html">
<area shape="rect" coords="8,23,25,35" href="index.html">
</map></body>
</html>
abajo es donde muestro los datos y hago la paginacion
desde ya muchas gracias
  #7 (permalink)  
Antiguo 06/04/2008, 10:38
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 19 años
Puntos: 3
Re: recorrer todos los datos

No termino de comprender muy bien tu función porque no la puedo probar ;). El problema esta en esta seccion del code:
Código PHP:
<?php
if( $_POST['ciudad']!="" ){
$bd = new db($host,$user,$pass);
$bd->db_connect();
$bd->db_select_db($db);
//selecciono todo de la tabla empresa donde el nombre ciudad es el que elijo
//y los obtengo todos
$bd->db_sql_select('*','empresa','ciudadCorp=\''.$_POS T['ciudad'].'\' ','','','');

$bd->db_execute_query();
$row2 $bd->get_next_row();

//cargo el nombre ciudad en un array
$ciudad[]=$row2['nombreComercial'];

$bd2 = new db($host,$user,$pass);
$bd2->db_connect();
$bd2->db_select_db($db);

$bd2->db_sql_select('*','reclutamiento','nombreEm=\''.$ ciudad.'\' ','','','');

$bd2->db_execute_query();
$row $bd2->get_next_row();
}
?>
Me podrias enviar la libreria que utilizas para ver como funciona por ejemplo: $row2 = $bd->get_next_row(); porque en algún lado tienes que hacer que la consulta a la DB te muestre TODOS los resultados y llene el array $ciudad.
No logro entender como haces la consulta a la DB, porque no tengo las funciones
$bd2->funcion

Para aprender foreach te dejo este link http://ar2.php.net/foreach
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #8 (permalink)  
Antiguo 06/04/2008, 10:39
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 19 años
Puntos: 3
Re: recorrer todos los datos

Podes mandarme la libreria al mail que esta abajo en mi firma (correo)
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:39.