Foros del Web » Programando para Internet » PHP »

Error en el FAQ de PHP

Estas en el tema de Error en el FAQ de PHP en el foro de PHP en Foros del Web. Pos eso, q hay un ligerísimo error en una de las FAQS de PHP, la q se refiere a combobox dinámicos con conexión a base ...
  #1 (permalink)  
Antiguo 02/06/2008, 10:15
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años, 7 meses
Puntos: 1
Error en el FAQ de PHP

Pos eso, q hay un ligerísimo error en una de las FAQS de PHP, la q se refiere a combobox dinámicos con conexión a base d datos.

Les posteo el código para ver si alguien es tan amable (y experto;) como para corregirlo, no sólo x mí sino x cualquier otro usuario q se pase x esa zona del FAQ del PHP.

<?
// datos de conexion a la BD.
$servidor ="localhost"; // host
$usuario ="";
$clave ="";
$basedatos =""; // Indicar una Base de datos.

// si se ha pulsao el boton enviar ($enviado) se procesa el formulario ..
// Sino, se continua con el formulario y los nuevos valores de los Select ..
// OJO si se tienen mas varibles (mas <input> ) se van a perder sus valores a no ser
// que los obtengamos y se les de como valor inicial en el value= de cada uno segun corresponda.

if (!empty($_POST['enviado'])){

// Procesar el formulario ...
echo "Procesando formulario:<br>";
echo "Recibido id_tabla_padre: ".$_POST['id_padre']."<br>";
echo "Recibido id_tabla_hija: ".$_POST['id_hija'];

} else {

// Conexión a la BD
$conexion = mysql_connect($servidor, $usuario, $clave) or die(mysql_error());
mysql_select_db($basedatos, $conexion) or die(mysql_error());

// Obtener el $id_padre del envio a si mismo del formulario ..
$id_padre=$_POST['id_padre'];

// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";

// Formar Selec "Padre".
echo "<select name=\"id_padre\" onChange=\"this.form.submit()\">\n";
echo "<option value=\"\"> Seleccione un Item </option>\n";

$SQLconsulta_padre="SELECT * FROM tabla_padre";
$consulta_padre = mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error());

While ($registro_padre=mysql_fetch_assoc($consulta_padre )){
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
// Se selecciona en consecuencia (selected) la opción elegida.
if ($id_padre == $registro_padre['id']){
echo "<option value=\"".$registro_padre['id']."\" selected>".$registro_padre['item_texto']."</option>\n";
} else {
echo "<option value=\"".$registro_padre['id']."\">".$registro_padre['item_texto']."</option>\n";
}
}
echo "</select>\n\n";

mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.

// Formar Select "Hijo"
echo "<select name=\"id_hija\">\n";

// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo
// se muestra el mensaje de "seleccine un item" (del select padre).
if (!empty($id_padre)){

$SQLconsulta_hija="SELECT * FROM tabla_hija WHERE id_padre='$id_padre'";
$consulta_hija = mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
if (mysql_num_rows($consulta_hija) != 0){
While ($registro_hija=mysql_fetch_assoc($consulta_hija)) {
echo "<option value=\"".$registro_hija['id']."\">".$registro_hija['item_texto']."</option>\n";
}
} else {
echo "<option value=\"\"> No hay registros para este Item </option>";
}
} else {
echo "<option value=\"\"> <-- Seleccione un Item </option>";
}

mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.

echo "</select>\n\n";
echo "<input type=\"submit\" name=\"enviado\" value=\" Enviar \" >\n\n";
echo "</form>\n";
}

No pongo la tabla para no alargarlo mucho, si fuese necesaria, se encuentra junto al mensaje original en la FAQ d PHP:
http://www.forosdelweb.com/f18/faqs-php-530600/index4.html#post664999

Muchísimas gracias x su ayuda Salu2
  #2 (permalink)  
Antiguo 02/06/2008, 11:05
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Error en el FAQ de PHP

Hi !

Cual es el error ? Podrias haber especificado... Yo lo acabo de poner y no veo ningun error, si encontraste algo primero pon el error con el que te has topado.

Espero respuesta.

-ByE-
  #3 (permalink)  
Antiguo 02/06/2008, 12:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Error en el FAQ de PHP

exacto!!! ¿cual error??

quiza el error... fue, copiar y pegar como si fuera la ley.... pero solo es una FAQ' no algo de mucho alcanze, entiendo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 02/06/2008, 17:07
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Error en el FAQ de PHP

Efectivamente, le he dado a copiar pegar, he creado la base de datos del ejemplo y he puesto los valores d mi conexion.
Pero al cargar la página se ve casi todo el código d la misma, dentro d la propia página; al igual q en la vista d diseño del DW (no sólo las frases sino consultas del tipo:

"; echo "Recibido id_tabla_hija: ".$_POST['id_hija']; } else { // Conexión a la BD mysql_connect('localhost','root','')or die ('Ha fallado la conexión: '.mysql_error()); mysql_select_db($database_base, $base); // Obtener el $id_padre del envio a si mismo del formulario .. $id_padre=$_POST['id_padre']; // Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script). echo ""

Pero lo más importante es q el combo no funciona...
Siento no poder debido a mis limitaciones ser más claro con el error, he intentado comunicarlo d la mejor manera que sé. Gracias por su colaboración nuevamente. Salu2

Última edición por pcadict0; 02/06/2008 a las 17:44
  #5 (permalink)  
Antiguo 02/06/2008, 18:56
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Respuesta: Error en el FAQ de PHP

....
cambia "<?" por "<?php". Edito la FAQ,
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 12:59.