Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z dodawaniem rekordu w MySQL
Forum PHP.pl > Forum > Przedszkole
SzymonGeek
Witam, mam problem z uploadem w php i mysql
Gdy uploaduje plik to niestety nie dodaje danych do bazy.
Oto kod:
Kod
<? include("config.php"); ?>
<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="512000" />
<input name="plik" type="file" />
<textarea name="opis" rows="5" cols="50">Opis Pliku</textarea>
<input type="submit" value="Wyślij plik" />
</form>

<?php
$db = mysql_connect ("$db_host", "$db_user", "$db_pass");
mysql_select_db ("$db_table");

$plik_tmp = $_FILES['plik']['tmp_name'];
$plik_nazwa = $_FILES['plik']['name'];
$plik_rozmiar = $_FILES['plik']['size'];

$plik_opis = $_POST['opis'];

$plik_nazwa = strtolower($plik_nazwa);
$plik_nazwa = str_replace("ż","z",$plik_nazwa);
$plik_nazwa = str_replace("","a",$plik_nazwa);
$plik_nazwa = str_replace(" ","",$plik_nazwa);
$plik_nazwa = str_replace("_","",$plik_nazwa);

$mysql = mysql_query("INSERT INTO upload SET name='{$plik_nazwa}', size='{$plik_rozmiar}', opis='{$plik_opis}', link='http://{$domain}/{$plik_nazwa}'");


if(is_uploaded_file($plik_tmp)) {
     move_uploaded_file($plik_tmp, "upload/$plik_nazwa");
    mysql_query("INSERT INTO `upload` SET `name` = '{$plik_nazwa}', `size` = '{$plik_rozmiar}', `opis` = '{$plik_opis}', `link` = 'http://{$domain}/{$plik_nazwa}'");
    echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
    <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer! Link do pliku:   <code>http://$domain/$plik_nazwa</code> ";
}

mysql_close ($db);
?>

Prosze o pomoc smile.gif
Pozdrawiam
Damonsson
Temat: Jak poprawnie zadac pytanie
SzymonGeek
Cytat(Damonsson @ 3.02.2013, 14:17:09 ) *

Ok poprawiłem smile.gif
Dzięki za rade ;p
Tajgeer
http://www.w3schools.com/sql/sql_insert.asp

Zapoznaj się ze składnią INSERT.
Damonsson
Co poprawiłeś? ohmy.gif

Cytat
Wykonywanie zapytań do bazy
Jeśli wykonujesz jakieś zapytanie do bazy danych i w wyniku tego nie masz spodziewanych wyników, sprawdź dokładnie jak to zapytanie wygląda oraz czy baza danych nie zwróciła błędu. Dla prostych instrukcji komunikacji z bazą mysql wystarczy użyć mysql_error() by zobaczyć ostatnio zwrócony błąd przez bazę. Dla innych baz lub innych sposobów komunikacji - zajrzyj do dokumentacji by dowiedzieć się jakie funkcje zwracają błędy bazy danych.Możesz również skopiować wywietlone zapytanie i wykonać je w programie do obsługi baz danych, np. phpMyAdmin czy MySQL QueryBrowserze. Zobaczysz, czy Twoje zapytanie na pewno wykonuje się poprawnie i czy zwraca to czego oczekujesz.



@up MySQL z tego co wiem przyjmuje taką składnię, choć jest niepoprawna i nie powinno się tak pisać.
SzymonGeek
To poprawiłęm smile.gif
Cytat
Pokaż nam kod, na którym pracujesz
Staraj się jednak nie dawać całej masy śmieci. Jeśli wydaje ci się, że błąd dotyczy np. php, nie wklejaj nam całej masy zbędnego kodu html, który służy jedynie jako layout dla skryptu. Tylko zaciemniasz kod.


Tajgeer, gdy wklepuje zapytanie
Kod
INSERT INTO upload SET name='{$plik_nazwa}', size='{$plik_rozmiar}', opis='{$plik_opis}', link='http://{$domain}/{$plik_nazwa}'
w phpMyADMIN to normalnie tworzy mi do name np test size = 0 itp
Więć wydaje mi się iż zapytanie jest dobre
Tajgeer
Przeczytaj jeszcze raz dokładnie ten temat i zwróć uwagę na fragment, który wskazał Damonsson.
Damonsson
Sama struktura zapytania jest zła, jednak MySQL je akceptuje. Dopóki nie pokażesz błędu, to równie dobrze, możesz napisać do wróżbity Macieja, efekt będzie ten sam.

  1. $mysql = mysql_query("INSERT INTO upload SET name='{$plik_nazwa}', size='{$plik_rozmiar}', opis='{$plik_opis}', link='http://{$domain}/{$plik_nazwa}'") or die(mysql_error());
SzymonGeek
Tylko za pomocą
Kod
<? mysql_error(); ?>

Nic nie pokazuje
Damonsson
Skoro nic nie pokazuje, to zapytanie się wykonuje poprawnie.

Ja chyba już wiem o co chodzi wink.gif Ale jak dostosujesz się do porad z tematu jak poprawnie zadać pytanie i tego co napisałem to sam znajdziesz problem.
SzymonGeek
Fajnie by było gdybyś mi powiedział smile.gif
Damonsson
I co Ci to da? Przy następnym problemie znów będziesz biegał na forum, bo nie umiesz zastosować się do porad jak rozwiązać dany problem.

Moja szklana kula podpowiada:
Zmień
  1. <? include("config.php"); ?>
na
  1. <?php include("config.php"); ?>
SzymonGeek
Cytat(Damonsson @ 3.02.2013, 15:29:16 ) *
I co Ci to da? Przy następnym problemie znów będziesz biegał na forum, bo nie umiesz zastosować się do porad jak rozwiązać dany problem.

Moja szklana kula podpowiada:
Zmień
  1. <? include("config.php"); ?>
na
  1. <?php include("config.php"); ?>

Niestety ale nie działa

OK już wiem w czym był problem smile.gif
Dzięki za pomoc smile.gif
Po prostu zmieniłem aby po wypełnieniu formularza przenosiło do np index1.php
i same errory są .
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.