Foros del Web » Programando para Internet » PHP »

Problema con foreach

Estas en el tema de Problema con foreach en el foro de PHP en Foros del Web. Buenas tengo un problema con este pequeño codigo, el problema es en la zona del foreach, que si pongo la variable me da fallo que ...
  #1 (permalink)  
Antiguo 06/01/2010, 15:06
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 14 años, 5 meses
Puntos: 2
Problema con foreach

Buenas tengo un problema con este pequeño codigo, el problema es en la zona del foreach, que si pongo la variable me da fallo que segun he leido es porque no es un array y si pongo $_POST no entra en el bucle porque no muestra el echo que tiene dentro...

<?php
try{
$auxcon = mysql_connect("localhost","","")
or die ("no se ha podido conectar");

//Seleccion de la base de datos a utilizar
mysql_select_db("test")
or die("Error al tratar de selecccionar esta base");
echo $consulta; // VACIA
$sql=" SELECT * FROM test.ptc order by posicion";
$consulta = mysql_query($sql)
or die("La consulta contiene algún error");

$lineas = mysql_num_rows($consulta);
echo $consulta; //Muestra: Resource id#33
echo $lineas; //Muestra: 3 Es correcto porque hay 3 lineas en la tabla

$paginas=$consulta;
$tablapaginas=Array();
//Guardamos el numero de paginas
$numPaginas=mysql_num_rows($consulta);
echo $_POST; // Muestra:Array
// Guardamos cada linea en la tabla
$cont=0;
foreach($_POST as $row){ //Aqui si pongo $consulta me da fallo por eso pongo $_POST
$tablapaginas[$cont][0]=$row["id_ptc"];
$tablapaginas[$cont][1]=$row["nombrepagina"];
$tablapaginas[$cont][2]=$row["precioclick"];
$tablapaginas[$cont][3]=$row["precioclickreferido"];
$tablapaginas[$cont][4]=$row["minimocobro"];
$tablapaginas[$cont][5]=$row["observaciones"];
$tablapaginas[$cont][6]=$row["direcbanner"];
$tablapaginas[$cont][7]=$row["comprobante"];
$tablapaginas[$cont][8]=$row["formadepago"];
$tablapaginas[$cont][9]=$row["numeroads"];
$tablapaginas[$cont][10]=$row["posicion"];
$tablapaginas[$cont][11]=$row["enlacereferido"];

$cont=$cont+1;
echo $cont; // No lo muestra por tanto no entra en este bucle

} // Fin foreach

} // Fin try
catch(PDOException $excp ){
print("\nError en la conexion");
?>
<br></br>
<?php
} // Fin catch
  #2 (permalink)  
Antiguo 06/01/2010, 15:09
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema con foreach

mysql_query no devuelve los resultados de la conslta, usa mysql_fetch_array() para devolver los resultados de la consulta en un array..
  #3 (permalink)  
Antiguo 07/01/2010, 06:15
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Problema con foreach

ya solucione este problema

ahora me da problemas porque en el while no asigna bien, ya que haciendo un echo en el bucle no muestra nada

os dejo el codigo

<?php
try{
$auxcon = mysql_connect("localhost","","")
or die ("no se ha podido conectar");

//Seleccion de la base de datos a utilizar
mysql_select_db("test")
or die("Error al tratar de selecccionar esta base");
echo $consulta; // VACIA
$sql=" SELECT * FROM test.ptc order by posicion";
$consulta = mysql_query($sql)
or die("La consulta contiene algún error");

$lineas = mysql_num_rows($consulta);

echo $lineas; //Muestra: 3 Es correcto porque hay 3 lineas en la tabla

$paginas=$consulta;
$tablapaginas=Array();
//Guardamos el numero de paginas
$numPaginas=mysql_num_rows($consulta);

// Guardamos cada linea en la tabla
$cont=0;
while($row = mysql_fetch_array($paginas, MYSQL_NUM)){
$tablapaginas[$cont][0]=$row[0]; //idptc
$tablapaginas[$cont][1]=$row[1]; // nombrepagina
$tablapaginas[$cont][2]=$row[2]; //precioclick
$tablapaginas[$cont][3]=$row[3]; //precioclickreferido
$tablapaginas[$cont][4]=$row[4]; //minimocobro
$tablapaginas[$cont][5]=$row[5]; // observaciones
$tablapaginas[$cont][6]=$row[6]; //direcbanner
$tablapaginas[$cont][7]=$row[7]; //comprobante
$tablapaginas[$cont][8]=$row[8];//"formadepago"];
$tablapaginas[$cont][9]=$row[9];//"numeroads"];
$tablapaginas[$cont][10]=$row[10];//"posicion"];
$tablapaginas[$cont][11]=$row[11];//"enlacereferido"];

$cont=$cont+1;
echo $row["enlacereferido"]; // No lo muestra

} // Fin while

} // Fin try
catch(PDOException $excp ){
print("\nError en la conexion");
?>
<br></br>
<?php
} // Fin catch

Última edición por gspablo; 07/01/2010 a las 06:52
  #4 (permalink)  
Antiguo 07/01/2010, 07:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con foreach

como sugerencia: antes de utilizar cualquier variable, prueba a analizarla con var_dump() así te aseguras de la estructura, contenido, valor, etc... y lo haces bien... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/01/2010, 09:16
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema con foreach

Cita:
Iniciado por gspablo Ver Mensaje
echo $row["enlacereferido"]; // No lo muestra
Ehh.. sabes para que sirve el segundo parametro de mysql_fetch_array()?

Also this:
Cita:
Iniciado por pateketrueke Ver Mensaje
como sugerencia: antes de utilizar cualquier variable, prueba a analizarla con var_dump() así te aseguras de la estructura, contenido, valor, etc... y lo haces bien... ;)

Etiquetas: foreach
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 03:47.