Autor | Zpráva | ||
---|---|---|---|
Honza56 Profil * |
#1 · Zasláno: 31. 10. 2009, 17:50:27
Dobrý den,
Mám formulář, který obsahuje jedno pole se jménem ID. Do pole ID zadáme například hodnotu 5630. Poté provedeme SQL dotaz: $sql_data_select = mysql_query('SELECT * FROM `account_data` WHERE `id` = '.intval($_POST['id']).''); A nyní potřebuju, aby se vybraly všechna data z tabulky account_data (podotýkám, že záznamů to může nalézt více než 1). a uložil se výsledný SQL dotaz do proměnné $sql. tzn něco ve smyslu: $sql = 'INSERT INTO `account_data2` VALUES (ZDE BYCH POTŘEBOVAL DOSTAT TY DATA Z SQL VÝŠE (TZN NĚCO VE SMYSLU:5630,'honza56', heslo156);'; Děkuji předem |
||
RockFire Profil |
#2 · Zasláno: 31. 10. 2009, 18:06:26 · Upravil/a: RockFire
Napadá mě jen:
$nalezeni_poctu = mysql_query("SELECT count(id) FROM `account_data` WHERE `id` = '.intval($_POST['id']).'"); $promenna = array(); while($vysledek = $mysql_fetch_assoc($sql_data_select)) { for($i=1;$i<=$nalezeni_poctu;$i++) { $promenna[$i] = $vysledek["id"].",'".$vysledek["jmeno"]."','".$vysledek["heslo"]."'"; } } $pocet = count($promenna); if($pocet == 1) { $sql = mysql_query('INSERT INTO `account_data2` VALUES ('.$promenna[1].')'); } elseif($pocet == 2) { $sql = mysql_query('INSERT INTO `account_data2` VALUES ('.$promenna[1].')'); $sql2 = mysql_query('INSERT INTO `account_data2` VALUES ('.$promenna[2].')'); } //A pokračujeme... Ovšem pokud může být záznamů nějak moc, tak to není praktický :-D |
||
fajzen Profil |
#3 · Zasláno: 31. 10. 2009, 18:07:18
$sql_data_select = mysql_query('SELECT * FROM `account_data` WHERE `id` = '.intval($_POST['id']).''); $values = array(); while($result = mysql_fetch_assoc($sql_data_select)) { $values[] = "VALUES ($result['id'], '" . $result['nick'] . "', '" . $result['heslo'] . "')"; } $sql = "INSERT INTO `account_data2`" . implode(', ', $values); Ak sa však s vybranými dátami nebude pred ukladaním pracovať, tak sa to dá zariadiť aj len jedinou query: mysql_query("INSERT INTO `account_data2` SELECT `account_data`.`id`, `account_data`.`nick`, `account_data`.`heslo` FROM `account_data` WHERE `account_data`.`id` = " . intval($_POST['id'])); (názvy stĺpcov v tabuľke account_data som len hádal) |
||
Alphard Profil |
#4 · Zasláno: 31. 10. 2009, 18:13:07
Co třeba INSERT ... SELECT konstrukce?
Jen se musí shodovat počet sloupců, takže * nahradit konkrétním. |
||
Honza56 Profil * |
#5 · Zasláno: 31. 10. 2009, 18:31:17
fajzen:
Děkuji mnohokrát. mysql_query("INSERT INTO `account_data2` SELECT `account_data`.`id`, `account_data`.`nick`, `account_data`.`heslo` FROM `account_data` WHERE `account_data`.`id` = " . intval($_POST['id'])); Je přesně řešení, které potřebuji, díky a také děkuji ostatním. |
||
Časová prodleva: 14 let
|
0