Autor Zpráva
Honza56
Profil *
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
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
$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
Co třeba INSERT ... SELECT konstrukce?
Jen se musí shodovat počet sloupců, takže * nahradit konkrétním.
Honza56
Profil *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: