Mi problema es un poco complicado y espero que me pueda explicar correctamente.
Estoy diseñando un sitio que despliega fotos que son guardas en una base de daros de forma binaria, junto con las fotos se despliegan en el archivo php una corta descripción de la foto.
Lo que yo quiero lograr, es una manera de ingresar valores enteros en html tags para cambiar el orden de cómo se despliegan las fotos en el archivo html/php.
Para esto, uso un while para ir loopiando en la base de datos, y así voy mostrando todas la fotos que esta en la bd.
Aquí va una parte del script:
Código:
Lo que estoy haciendo aquí es mostrar la foto junto con la descripción de la misma y un input text tag que sirve para ingresar los valores que cambiarán el orden de cómo aparecen las fotos en el html. result=mysql_query("SELECT * FROM imagen") or die("algo está muy mal");//para loopiar en el while $result2=mysql_query("SELECT des1 FROM imagen") or die("algo está muy mal");//para imprimir los textos $result3=mysql_query("SELECT orden FROM imagen") or die("algo está muy mal");//para imprimir los textos print "<form method='post' action='file.php'> <table border='1' align='left' cellpadding='2' cellspacing='0'> <tr> <td> <p align='center'>foto</p> </td> <td> <p align='center'>des1</p> </td> <td> orden </td> <td> <p align='center'>nuevo orden</p> </td> </tr> <tr>"; $i=1; $counter = 0; While($row=mysql_fetch_object($result)) { $des1=mysql_fetch_object($result2); $orden= mysql_fetch_object($result3); print "<td> <IMG SRC=\"header.php?PicNum=$row->PicNum\" border=\"0\" high=\"200\" width =\"100\"> </td> <td> <p align='center'>$des1->des1</p> </td> <td><p align='center'>$orden->orden</p> </td> <td> <p align= 'center'><input type='text' name='newO".$i++."'size='1' value=0 maxlength='15'></p>//miren el valor newO </td>"; $counter += 1; if ($counter == 1){ print "</tr>"; $counter =0; } } print"</tr></table>"; for($i=0;$i<=87;$i++){ print "<br/>"; } print"<input type='submit' name='orden' value='ir'></form>"; if($_POST['orden']){ //********************AQUÍ ESTÁ EL PROBLEMA CREO************** $k=1; $result=mysql_query("SELECT * FROM imagen") or die("algo está muy mal"); while($row=mysql_fetch_object($result)){ $n = $newO.$k; mysql_query("UPDATE imagen SET orden = $n WHERE PicNum = PicNum LIMIT 1") or die ("no podes pibe ".mysql_error()); $k++; } } //****************************************************************** ?>
Yo creo que mi error está en esta linea: “mysql_query("UPDATE imagen SET orden = $n WHERE PicNum = PicNum LIMIT 1") or die ("no podes pibe ".mysql_error());” el valor $n no lo está tomando, cuando escribo un número en el campos y hago el submit, el valor “orden” no cambia en la bd.
“newO” es el nombre de los campos de texto, pero uso un “newO.$i++” para ir creando newO1, newO2, etc.
Si yo cambio $n por newO en el query, cambia el valor del primer campo de texto pero claro está, no de los otros, necesito crear una manera que sirva para todos y que sea independiente al número de fotos que halla en la bd.
Espero haberme explicado bien
Puden encontrar o que estoy haciendo en http://lafiestarefinal.net/imageWeb/file.php
Alvaro