robím jednu stránku a potrebujem tam upload viacerých riadkov z textarea tak, aby každý bol v novom riadku DB, ale ak už taký v DB existuje, nezapíše ho znova.
Kód som si spravil, ale očividne nefunguje tak ako by mal.
Chyba je v tom, že ak pridám zoznam kódov, tak niektoré ktoré sú v DB rozozná a nepridá ich, no niektoré pridá aj tak (väčšinou sú to kódy nad kódmi čo sa v DB nenachádzajú).
Netuším kde v kóde je chyba.
Tuto je kód:
Kód: Vybrať všetko
if (isset($_POST['upload'])){
$lines = explode("\n", $_POST["codes"]);
foreach($lines as $line) {
$select_codes = dbquery("SELECT * FROM codes WHERE code='".$line."'");
$exist = dbrows($select_codes);
if ($exist == 0){
$sql = dbquery("INSERT INTO codes (code) VALUES ('$line')");
}
}
}
echo "<form method='post' action=''>";
echo "<textarea name='codes' cols='50' rows='15'></textarea>";
echo "<br/><input type='submit' name='upload' value='Upload'>";
echo "</form>";
echo "</div>";Presnejšie používam tento kód ktorý mi zobrazí počet pridaných kódov, počet existujúcich atď. (kvôli jednoduchšiemu debugu):
Kód: Vybrať všetko
if (isset($_POST['upload'])){
$all_count = 0;
$added_count = 0;
$already_in_count = 0;
$lines = explode("\n", $_POST["codes"]);
foreach($lines as $line) {
$all_count += 1;
$select_codes = dbquery("SELECT * FROM codes WHERE code='".$line."'");
$exist = dbrows($select_codes);
if ($exist == 0){
$sql = dbquery("INSERT INTO codes (code) VALUES ('$line')");
if ($sql){
$added_count += 1;
}
}else{
$already_in_count += 1;
}
}
}
echo "$added_count code/s added from $all_count code/s posted.";
if ($already_in_count > 0){ echo "<br/> <strong>$already_in_count code/s were already in DB.</strong>";}Dbrows je vlastne funkcia ktorá vráti mysql_num_rows.