leo15 0 Zgłoś post Napisano Czerwiec 18, 2012 Witam, niby prosta czynność a może przysporzyć problemy, a dokładniej chodzi o prosty formularz: <form method="post" action="dodanie.php"> <table> <tr>Adres:(każdy adres w osobnym wierszu)</tr> <tr><textarea name="adres" style="width:400px;height:250px;" /></textarea></tr> <tr><input type="submit" name="wyslij" value="Wyślij"></tr> </table> </form> Tylko dalej idzie problem jak dodać każdy z osobna adres do bazy danych tak aby wszystkie nie były w jednym wierszu. Dodatkowo będzie dopisana funkcja sprawdzająca czy dany adres już nie istnieje w bazie: query = mysql_query("SELECT adres FROM cron WHERE adres='$zmienna'"); $count = mysql_num_rows($query); if($count) { echo 'Adres Istnieje'; } else { mysql_query("INSERT INTO cron SET adres='$zmienna', dodano='0'") or die(mysql_error()); echo 'Adres Dodany'; } Pomoże ktoś? Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Czerwiec 18, 2012 mysql_query("INSERT INTO cron SET adres='$zmienna', dodano='0'") Nie pomyliłeś czegoś aby? mysql_query("INSERT INTO cron(adres,dodano) VALUES('$zmienna' ,'0')") Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Czerwiec 18, 2012 1. $tab = explode("\n", $_POST['cos']); 2. Po co sprawdzać czy rekord istnieje? Załóż indeks UNIQUE na tę kolumnę i dodawaj "na pałę" Udostępnij ten post Link to postu Udostępnij na innych stronach
leo15 0 Zgłoś post Napisano Czerwiec 18, 2012 (edytowany) ZooMpl Nie pomyliłem działa poprawnie więc jest ok kafi 1. punkt działa ale teraz. Nie chce by linki sie powtarzały dlatego zastosowałem sprawdzanie. "Załóż indeks UNIQUE na tę kolumnę i dodawaj "na pałę"" - na pałę nie za bardzo linki muszą być unikalne. A jak dodawać to do bazy danych pomożesz kod napisać w całości? Błąd nadania UNIQUE Błąd zapytanie SQL: ALTER TABLE `cron` ADD UNIQUE ( `adres` ) MySQL zwrócił komunikat: #1170 - BLOB/TEXT column 'adres' used in key specification without a key length Edytowano Czerwiec 18, 2012 przez leo15 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Czerwiec 18, 2012 (edytowany) Masz wyraźnie napisane, w czym jest problem. Indeksów nie da się nałożyć na pola o nieokreślonej wielkości (takich jak BLOB/TEXT). Zmień je na VARCHAR z wyspecyfikowaniem, ileż to znaków może mieć adres. A jak już założysz ten indeks, to sama baza zadba o to, co by przypadkiem nie pojawiły się duble - po prostu zwróci ci w razie czego błąd. Edytowano Czerwiec 18, 2012 przez kafi (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
leo15 0 Zgłoś post Napisano Czerwiec 18, 2012 Udało sie ustawiłem i przy okazji skasowałem dubli sporo a teraz jak dodawać masowo te linki do mysql? Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Czerwiec 18, 2012 (edytowany) $tablica_z_danymi = array('pies', 'kot', 'mysz'); $sql = "INSERT INTO tabela (adres) VALUES ('" . implode("'), ('", $tablica_z_danymi) . "');"; Jak nie rąbnąłem się w przepisywaniu, to powinno zadziałać. Ewentualnie efektywniejszy paten $sql = "INSERT INTO tabela (adres) VALUES ('" . str_replace("\n", "'), ('", $_POST['cos']) . "');"; PS: Kolumnie "dodano" ustaw domyślną wartość na zero Edytowano Czerwiec 18, 2012 przez kafi (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
leo15 0 Zgłoś post Napisano Czerwiec 18, 2012 Dodaje do bazy ale pusty rekord linki są w postaci http://www.strona.pl/topic/37965/dodawanie-danych-formularzem-do-mysql <form action="2.php" method="post" enctype="text/plain"> Adres:(każdy adres w osobnym wierszu)<br> <textarea name="adres" style="width:400px;height:250px;"/></textarea> <br> <input type="submit" value="Wyslij"> </form> <?php include 'config.php'; mysql_select_db ("botfilm") or die ("nie mozna polaczyc sie z mysql"); //$tab = explode("\n", $_POST['adres']); $sql = "INSERT INTO cron (adres) VALUES ('" . str_replace("\n", "'), ('", $_POST['cos']) . "');"; ?> Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Czerwiec 18, 2012 (edytowany) No bo trzeba by ruszyć głową i cosia w tym kodzie poprawić Chociaż może jeszcze jakieś addslashes na tym cosiu by się przydało w sumie, tak dla złośliwych użytkowników. Edytowano Czerwiec 18, 2012 przez kafi (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
leo15 0 Zgłoś post Napisano Czerwiec 18, 2012 Ten coś jest poprawiony błąd tak jakby był w formularzu przy próbie wyświetlenia zawartości post echo $_POST['adres']; jest pusto Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Czerwiec 18, 2012 Spróbuj dać var_dump($_POST); Udostępnij ten post Link to postu Udostępnij na innych stronach
leo15 0 Zgłoś post Napisano Czerwiec 18, 2012 tylko tyle array(0) { } Udostępnij ten post Link to postu Udostępnij na innych stronach