Pokazałeś nam swoje zapytanie, widać jak byk że zmienna tytuł nie jest przekazywana, podobnie jak czas. W zapytaniu stosujesz dwa pola czas! Wiec które jest za co odpowiedzialne? Próbujesz swoim skryptem znaleźć najpierw tytul i go z edytować, a co będzie jak będa dwa takie same tytuły?
<?php
echo('Znajdz plik który chcesz edytować <form action="?action=edycja" method="post">
Tytul: <input type="text" name="tyt"><br>
<input type="submit" name="wyslij" value="Wyslij"><br>
</form>');
if(!empty($_POST['tyt'])){ $tyt = $_POST['tyt'];
$sql = ('SELECT * FROM teledyski WHERE tytul LIKE "'.$tyt.'"');
print($c['adres'].'<br>'); print('Tytul: '.$c['tytul'].'<br>'); print('Wykonawca: '.$c['wykonawca'].'<br>'); print('Czas: '.$c['czastrwania'].'<br>');
print('Zmień dane (musisz wpisać wszystkie informacje).<br><br> '); print('<form action="?action=edycja" method="post"> '); print('Wykonawca: <input type="text" name="wykonawca" value='.$c['wykonawca'].'> Tytul: <input type="text" name="tytul" value='.$c['tytul'].'>');
print('<br>Kategoria: <select name="kategoria" value='.$c['kategoria'].'>'); print(' <option>Country</option> '); print(' <option>Dance</option> '); print(' <option>Disco_Polo</option> '); print(' <option>Dla_Dzieci</option> '); print(' <option>Hip-Hop</option> '); print(' <option>Jazz</option> '); print(' <option>Metal</option> '); print(' <option>Pop</option> '); print(' <option>Rock</option> '); print(' <option>Techno</option> '); print(' <option>Hip-Hop</option> '); print(' </select><br> '); print('Opis: <br><textarea name="opis" rows="5" cols="40">'.$c['opis'].'</textarea><br> '); print('Czas trwania: <input type="text" name="czastrwania" size="4" value='.$c['czastrwania'].' ><input type="hidden" name="id" size="4" value='.$c['id'].' >'); print('<br><input type="submit" name="zapisz" value="Zapisz"> '); }
}
if(isset($_POST['zapisz'])){ $id = $_POST['id'];
$czastrwania = $_POST['czastrwania'];
$opis = $_POST['opis'];
$czas = $_POST['czas'];
$kategoria = $_POST['kategoria'];
$tytul = $_POST['tytul'];
$wykonawca = $_POST['wykonawca'];
$aktualka = ('UPDATE teledyski SET czastrwania="'.$czastrwania.'", opis="'.$opis.'", czas="'.$czas.'", kategoria="'.$kategoria.'" , tytul="'.$tytul.'", wykonawca="'.$wykonawca.'" WHERE id = "'.$id.'"');
echo 'Zmiany zostały zapisane'; }
}
else echo('Blad podczas polaczenia z baza');
?>
Na krasnalu tego nie widać ale pierwszy lepszy serwer i nie wysłałbyś danych i później wróciłbyś z następnym problemem, dlaczego bo nie zastosowałeś zmiennych globalnych POST! Przypatrz sie dokładnie zapytaniu. Masz pole które nazywa się czastrwania a nie tak jak przedtem czas! Jak umiesz dodawać i edytować kolumny z poziomu phpmyadmin to zmienisz nazwe sobie.
A tak powinna wyglądać tabela.
CREATE TABLE `teledyski` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`adres` varchar(255) NOT NULL,
`czastrwania` varchar(255) NOT NULL,
`opis` text NOT NULL,
`czas` varchar(255) NOT NULL,
`kategoria` varchar(255) NOT NULL,
`tytul` varchar(255) NOT NULL,
`wykonawca` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
Tzn może bez tych varcharów wszędzie.