Skocz do zawartości
Zaloguj się, aby obserwować  
leo15

Dodawanie danych formularzem do mysql

Polecane posty

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

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

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

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 przez leo15 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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 przez kafi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

 $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 wink.png

Edytowano przez kafi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

No bo trzeba by ruszyć głową i cosia w tym kodzie poprawić wink.png

Chociaż może jeszcze jakieś addslashes na tym cosiu by się przydało w sumie, tak dla złośliwych użytkowników.

Edytowano przez kafi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×