shadow28
1.04.2011, 21:27:08
Witam mam taki oto skrypt:
I taki problem.. skrypt powinien dodawać nowe rekordy do bazy danych, ale właśnie.. powinien a nie dodaje. Co tu może być nie tego?
Dzięki za odpowiedzi

html><body>
<form action="form.php" method="post">
imię:<br />
<input type="text" name="imie" /><br />
Nazwisko:<br />
<input type="text" name="nazwisko" /><br />
Ulica:<br />
<input type="text" name="ulica" /><br />
Miejscowość:<br />
<input type="text" name="Miejscowosc" /><br />
<input type="submit" value="Dodaj do bazy" />
</form>
</body></html>
<?php
// odbieramy dane z formularza
$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$ulica = $_POST['ulica'];
$miejscowosc = $_POST['miejscowosc'];
if($imie and $nazwisko and $ulica and $miejscowosc) {
// łączymy się z bazą danych
or
die('Brak połączenia z serwerem MySQL'); or
die('Nie mogę połączyć się z bazą danych');
// dodajemy rekord do bazy
$ins = @mysql_query("INSERT INTO Ludzie(imie, nazwisko, ulica, miejscowosc) Values $imie, $nazwisko,$ulica,$miejscowosc");
if($ins) echo "Rekord został dodany poprawnie"; else echo "Błąd nie udało się dodać nowego rekordu";
}
?>
bastard13
1.04.2011, 21:31:25
Zmień zapytanie:
"INSERT INTO Ludzie(imie, nazwisko, ulica, miejscowosc) Values $imie, $nazwisko,$ulica,$miejscowosc"
na:
"INSERT INTO Ludzie(imie, nazwisko, ulica, miejscowosc) Values ('$imie', '$nazwisko','$ulica','$miejscowosc');"
brakuje ci nawiasów oraz apostrofów.
I rada na przyszłość, nigdy nie używaj @ w kodzie. Błędy się obsługuje i tak naprawdę, każdy jeden przybliża do rozwiązania problemu, a @ je wycisza.
Gdybyś nie użył tego znaku dostałbyś odpowiedni komunikat i pewnie doszedłbyś do rozwiązania.
adasiu
1.04.2011, 21:32:42
Powinno być
$ins = @mysql_query("INSERT INTO `Ludzie` (`imie`, `nazwisko`, `ulica`, `miejscowosc`) VALUES ('$imie', '$nazwisko', '$ulica', '$miejscowosc'");
Pozdr.