Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2012, 05:34
Avatar de jamie_88
jamie_88
 
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años
Puntos: 28
foreach despues de una query

Hola, tengo un problema...

estoy haciendo un script para hacer una consulta al db y despues quisiera hacer un par de foreach para obtener un select con optgroup...

algo "igual" lo he hecho con CodeIgneter para hacer un menu son sub-menu (la logica es la misma)...

(estoy usando wordpress pero el script es php, por eso he puesto el post aca)...

query:

Código PHP:

$query 
mysql_query("SELECT wp_term_taxonomy.term_id AS id, name FROM wp_term_taxonomy, wp_terms 
                    WHERE parent = '$id' 
                    AND wp_terms.term_id = wp_term_taxonomy.term_id"
);
$query2 mysql_query("SELECT name, wp_terms.term_id AS id, parent 
                    FROM wp_term_taxonomy, wp_terms 
                    WHERE wp_terms.term_id = wp_term_taxonomy.term_id 
                    AND count >'0' AND term_taxonomy_id >'3'"
); 
mi idea era hacer lo siguiente:

Código PHP:
$regioni mysql_fetch_array($query);
$citta mysql_fetch_array($query2);

echo 
'<select size="1" name="city" id="city" class="city">';
foreach(
$regioni as $r){
    echo 
'<optgroup label="'.$r->name.'">';
    foreach(
$citta as $c){
        if(
$r->id == $c->parent){
            echo 
'<option value="'$c->id .'">'$c->name .'</option>';
        }
    }
    echo 
'</optgroup>';
}  
echo 
'</select>'
lo mas cercano como output a lo que quiero es:

Código PHP:
echo '<select size="1" name="city" id="city" class="city">';
while(
$regioni mysql_fetch_array($query)){
    echo 
'<optgroup label="'$regioni['name'] .'">';
    while(
$citta mysql_fetch_array($query2)){
        if(
$regioni['id'] == $citta['parent']){
            echo 
'<option value="'$citta['id'] .'">'$citta['name'] .'</option>';
        }
    }
    echo 
'</optgroup>';
}
echo 
'</select>'
pero de esta manera el segundo optgroup no muesta ninguna option (y debe ser porque el segundo while ($citta) termina en el primer giro del primer while ($regioni)

gracias de antemano...