Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] połaczenie dwóch zapytań?
Forum PHP.pl > Forum > PHP
matx132
Witam a więc mam taki problem iż mam jedne zapytanie gdzie powiedzmy mam takie dane

  1. <?php
  2. id  nick  imie
  3. 1 a mat
  4. 2 b kam
  5. 3 c dan
  6. 4 d ole
  7. 5 c mat
  8. 6 a ole
  9. ?>


w bazie mam takie kolumny

id nick imie komentarz.

w drugim zapytaniu mam tak

  1. <?php
  2. nick komentarz
  3. a  kome
  4. b  koe
  5. c  kome
  6. d  kom
  7. ?>



jako iż mam tych zapytań w pierwszym mam ponad 36 tyś a w drugim 15 tyś

to nie chce robił update ponieważ jest to zbyt czasochłonne i czasem zacina mi sie serwer:)

czy nie idzie zrobic tak aby dodać odrazu wszystko za jednym INSERT INTO??
aby np nie dodawać napierw pierwszego zapytania a potem robić do nich UPDATE:)

z góry dziekuje za opdowiedz
wlamywacz
Chcesz to razem wyświetlić czy jak ? Nie lepiej to zrobić tak że:
  1. SELECT kolumna1.*, kolumna2.* FROM kolumna1 LEFT JOIN kolumna2 ON kolumna1.nick = kolumna2.nick
kallosz
srednio rozumiem.
matx132
mam takie dane jak podałem
1 zapytanie i 2 zapytanie

i chodzi o INSTERT INTO
moze tak
w jednym pliku mam podane dane jak w pierwszym przykladzie

a w drugim pliku mam dane takie jak w drugim przykladzie

jak widac w pierwszym przykładzie mamy 2 razy nick "c"
i chciałbym dodac jakoś inaczej niz update dane z drugiego zapytania do pierwszego zapytania gdzie nick ==c

moze to tak pokaze jeszcze

z pierwszego pliku sa z czytywane dane po przez
  1. <?php
  2. list($p,$k,$n) = explode(';', $line);
  3. ?>


i tworze zapytanie
  1. <?php
  2. mysql_query("INSERT INTO baza VALUES('".$p"','".$k"','".$n"'")
  3. ?>


z drugiego pliku sa z czytywane dane po przez
  1. <?php
  2. list($l,$o) = explode(';', $line);
  3. ?>


i tworze zapytanie
  1. <?php
  2. mysql_query("UPDATE SET baza komenatrz='".$o"' where nick='".$l."'")
  3. ?>


i chciałem sie dowiedzieć czy jest możliwość aby te dwa zapytania połączyć w jedno czyli

  1. <?php
  2. mysql_query("INSERT INTO baza VALUES('".$p"','".$k"','".$n"','".$o"'")
  3. ?>



tylko zeby $o była dodawana do dobrego nicka:)


nie chce UPDATE uzywać bo najpierw był dodał 36tyś rekordów a potem jeszcze musiał zrobić 15 tyś razy UPDATE a to strasznie czasochłonne a zaniedługo bedzie UPDATE ok 45 tyś razy:(

postanowiłem zrobic takie cośsmile.gif

  1. <?php
  2. $con = @mysql_pconnect("localhost","root","****");
  3. @mysql_select_db("te",$con);
  4. $i=0;
  5. $lines=gzfile('sql.txt.gz');
  6. $lines1=gzfile('sql1.txt.gz');
  7. if(!is_array($lines)) die("Nie można było otworzyć pliku");
  8. foreach($lines as $line)
  9.  {
  10.  
  11. list($p,$k,$g) = explode(';', $line);
  12. foreach($lines1 as $line1)
  13. {
  14.  
  15. list($g1,$s,$p1,$m) = explode(';', $line1);
  16. $i++;
  17. echo $g.' '.$g1."<br>";
  18. if ($g==$g1)
  19. {
  20. echo $p;
  21. break;
  22. }
  23.  }
  24.  }
  25. ?>


lecz strasznie długo to sie wykonuje a tu jest tylko 1/3 danych:(?
czy idzie to jakos inaczej zrobic??
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.