Autor Zpráva
S3ky
Profil
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>';
  ?>      
To funguje podle mých představ, ale nemůžu přijít na to, jak ty IDčka hromadně změnit. Zkoušel jsem to přes foreach, ale nikdy to nefungovalo. Problém je v tom, že nechápu jak pracovat s jednotlivými textovými poli, když vlastně jejich název se odvíjí od $zaznam['urlnazev'].
noname
Profil *
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
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
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
Říkám, že $_POST['urlnazev'] se nikdy neodesílá.
ts_istudio
Profil
S3ky:
Říkám, že $_POST['urlnazev'] se nikdy neodesílá.

Přečti si #2.
S3ky
Profil
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'>";   
    } 
  } 
}                                                                 
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: