Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienianie danych do mysql
Forum PHP.pl > Forum > PHP
sajborg
Siemka musze zmienic jedna kolumne tym usserom których wpisze w input.W input oddzielam ich , czyli input wygląda tak

Kod
ja, marian, ela


i mam takie zapytanie

[php:1:700d0629ec]<?php
$sql="UPDATE user SET team_id='".$HTTP_POST_VARS['team']."' WHERE username IN (".$HTTP_POST_VARS['name'].")";
$db=mysql_query($sql) or Die("Co&para; jest skopane&nbsp;".$sql);
echo 'User został dodany';
?>[/php:1:700d0629ec]

Tylko ze to nie działa bo kazdy usser z input musi byc pomiędzy ' ' jak to zrobic questionmark.gif
Koshin
rozdziel wynik z input na tablice (uzyj explode)

potem stworz zmienna, w ktorej sklad wejda znaki " oraz imiona z input wybrane z tablicy.

chyba o to chodiz, bo do konca nie wiem o co ci chodzi.
sajborg
Ale ja nie wiem ile jest elementów w tablicy sad.gif
FiDO
[php:1:98bcec5a85]<?php

$in = implode("','", preg_split("/[s,]+/", $_POST['name']));
$sql = ".... WHERE cos IN ('". $in ."') ....";

?>[/php:1:98bcec5a85]
sajborg
SUper.Nigdy takiego czegoś nie robilem mogł byś mi wytlomaczyc jak to dziala questionmark.gif
Majdan
Może TO Ci pomoże.
FiDO
Cytat
SUper.Nigdy takiego czegoś nie robilem mogł byś mi wytlomaczyc jak to dziala questionmark.gif

Sprobuje smile.gif

1) [manual:dcf78a2024]preg_split[/manual:dcf78a2024]("/[s,]+/", $_POST['name'])
ta funkcja rozdziela dany string (w tym przypadku dane z formularza) na podstawie podanego wyrazenia regularnego, wyrazeniem tym jest tu dowolna ilosc przecinkow i bialych znakow (spacja, tab, enter) wystepujacych po sobie (czyli mozesz podac w formularzu "jeden,dwa , trzy"), ew. zeby zapobiec mozliwosci stosowania kilku przecinkow obok siebie ("jeden,,,,dwa,,,,trzy") moznaby zastosowac wyrazenie "/s*,s*/", co znaczy mniej wiecej tyle co:
dopasuj przecinek, ktory ma przed i za soba dowolna ilosc bialych znakow (w tym i brak takowych)
Wynikiem tej funkcji jest tablica, ktorej elementami sa poszczegolne wyrazy po podziale

2) $in = [manual:dcf78a2024]implode[/manual:dcf78a2024]("','", $wynik_poprzedniego)
To z kolei laczy dowolna tablice za pomoca łącznika podanego w pierwszym parametrze, czyli wynikiem bedzie np. "jeden','dwa','trzy"
Potem jeszcze dodanie granicznych apostrofow i mamy wynik koncowy.
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.