| Autor | Zpráva | ||
|---|---|---|---|
| S3ky Profil |
#1 · Zasláno: 19. 5. 2013, 14:27:40
Zdravím, vypisuju z databáze položky menu a vedle toho textové pole, které ukazuje ID
<?php
echo '<div id="obal-odkazy">';
echo '<form id="serazovac" name="serazovac" method="post" action="">';
echo '<ul>';
require "../pripojeni-mysql.php";
$dotaz='SELECT * FROM dat06';
$vysledek=mysql_query($dotaz);
while($zaznam=mysql_fetch_array($vysledek)){
echo '<li>'.$zaznam['nazev'].'<input type="text" class="idecko" name="'.$zaznam['urlnazev'].'" id="'.$zaznam['urlnazev'].'" value="'.$zaznam['idtextu'].'" /></li>';
}
echo '</ul>';
echo '<input class="ulozit" type="submit" value="Uložit změny">';
echo '</form>';
?> |
||
| noname Profil * |
#2 · Zasláno: 19. 5. 2013, 18:49:00
Měnit ID je hodně špatný nápad. Jestli chceš něco měnit, měň cokoliv, ale ID nech a použij ho jako pevný bod.
UPDATE tabulka SET nazev = '".$_POST["urlnazev"]."' WHERE ID=".$_POST["id"] |
||
| Micruss Profil |
#3 · Zasláno: 20. 5. 2013, 07:37:39
Ještě by to chtělo ošetřit ty posty
<? # mysql $nazev = mysql_real_escape_string($_POST['urlnazev']); $id = intval($_POST['id']); ?> |
||
| S3ky Profil |
#4 · Zasláno: 20. 5. 2013, 15:28:37
Děkuju za odpovědi, ale problém je
'".$_POST["urlnazev"]."', protože místo "urlnazev" je vždycky něco jiného, podle toho co to načte z databáze. Např.ve sloupci urlnazev mám tři položky, "hlavni-stranka", "kontakt", "fotky", takže $_POST odešle $_POST["hlavni-stranka"] = "třeba 6", $_POST["kontakt"] = "4", $_POST["fotky"] = "5".
|
||
| Micruss Profil |
Tak explodem
<?
$nazev = mysql_real_escape_string($_POST['urlnazev']);
$exp = explode(',', $nazev);
$hlavnistranka = $exp[0]; $kontakt = $exp[1]; $fotky = $exp[2];
# A nebo teda opačně, že propojíš všecky 3 POSTY a pak save do db a tím explodem je rozdělíš... při výpisu třeba
?> |
||
| S3ky Profil |
#6 · Zasláno: 20. 5. 2013, 16:38:12
Říkám, že
$_POST['urlnazev'] se nikdy neodesílá.
|
||
| ts_istudio Profil |
#7 · Zasláno: 20. 5. 2013, 17:03:17
S3ky:
„Říkám, že $_POST['urlnazev'] se nikdy neodesílá.“ Přečti si #2. |
||
| S3ky Profil |
#8 · Zasláno: 20. 5. 2013, 20:09:51
Všem děkuju za snahu. Nakonec jsem to vyřešil po svém.
<?php
echo '<div id="obal-odkazy-serazeni">';
echo '<form id="serazovac" name="serazovac" method="POST" action="">';
echo '<ul>';
require "../pripojeni-mysql.php";
$dotaz='SELECT * FROM dat01 order by serazeni';
$vysledek=mysql_query($dotaz);
while($zaznam=mysql_fetch_array($vysledek)) {
echo '<li>'.$zaznam['nazev'].'<input type="text" class="idecko" name="'.$zaznam['urlnazev'].'" id="'.$zaznam['urlnazev'].'" value="'.$zaznam['serazeni'].'" /></li>';
}
echo '<input type="hidden" name="kontrola" id="kontrola" value="kontrola" />';
echo '</ul>';
echo '<input class="ulozitserazeni" type="submit" value="Uložit změny">';
echo '</form>';
if(isset($_POST['kontrola'])) {
$dotaz='SELECT * FROM dat01';
$vysledek=mysql_query($dotaz);
while($zaznam=mysql_fetch_array($vysledek)){
if(trim(!is_numeric($_POST{$zaznam['urlnazev']}))) echo "Nezadal jsi číslo!"; else {
$cislo = $_POST{$zaznam['urlnazev']};
$dotaz="UPDATE dat01 SET serazeni='".$cislo."' where urlnazev='".$zaznam['urlnazev']."'";
mysql_query($dotaz);
echo "<meta http-equiv='refresh' content='0'>";
}
}
}
?> |
||
|
Časová prodleva: 13 let
|
|||
0