Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytania mysql, jak poprawnie zadawac wiele na raz
chyzio
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 12.03.2006

Ostrzeżenie: (0%)
-----


Problem w tym ze nie wiem jak wykonac kilka zapytan na raz. Przyklad wkladamy dane do dwoch tabel na raz i jak to wykonac poprawnie mozna tak:

  1. <?php
  2. $query = " zapytanie_sql ";
  3. $wynik = mysql_query($query);
  4.  
  5. $query = " drugie_zapytanie_sql ";
  6. $wynik = mysql_query($query);
  7. ?>


Naturalnie chce zeby wykonaly sie dwa zapytania albo zadne ten sposob tego nie rozwiazuje
(IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

Jak powinno sie wykonywac wiele zapytan sql na raz?? jest jakis sposob ich laczenia??
Go to the top of the page
+Quote Post
Mary$
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 19.02.2007
Skąd: 3city

Ostrzeżenie: (0%)
-----


mnie się wydaje, że za pomocą mysql_query() chyba nie można wykonywać dwóch zapytań na raz, więc mi sie wydaje najlepszy ten sposób, który Ty pokazałeś
Go to the top of the page
+Quote Post
kossa
post
Post #3





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

Ostrzeżenie: (0%)
-----


1. Transakcje

2. Wykonujesz jedno zapytanie, jeśli się powiodło wykonujesz drugie itd. napisz funkcję któa będzie realizowała taki system

Łukasz
Go to the top of the page
+Quote Post
jezoo
post
Post #4





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 4.04.2006

Ostrzeżenie: (0%)
-----


ja to rozwiazalem tak:
  1. <?php
  2. $sql1 = "zapytanie1";
  3.  
  4. $sql2 = "zapytanie2";
  5.  
  6. $sql3 = "zapytanie3";
  7.  
  8.  
  9.  
  10. $create = array($sql1,$sql2,$sql3);
  11.  
  12. if(mysql_query(current($create))!=mysql_error())
  13. echo "<p><b>SQL =".current($create)."</b> <b style='color:#66cc33;'>[DONE]</b></p>";
  14. else {
  15. echo "<b>Blad zapytania</b><br>".mysql_error();
  16. exit;}
  17.  
  18. if(mysql_query(next($create))!=mysql_error())
  19. echo "<p><b>SQL =".current($create)."</b> <b style='color:#66cc33;'>[DONE]</b></p>";
  20. else {
  21. echo "<b>Blad zapytania</b><br>".mysql_error();
  22. exit;}
  23.  
  24. if(mysql_query(end($create))!=mysql_error())
  25. echo "<p><b>SQL =".current($create)."</b> <b style='color:#66cc33;'>[DONE]</b></p>";
  26. else {
  27. echo "<b>Blad zapytania</b><br>".mysql_error();
  28. exit;}
  29. ?>
Go to the top of the page
+Quote Post
chyzio
post
Post #5





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 12.03.2006

Ostrzeżenie: (0%)
-----


no zaraz to wtedy mozna by prosciej:

  1. <?php
  2. $query = " zapytanie_sql ";
  3. $wynik = mysql_query($query);
  4.  
  5. if ($wynik){
  6. echo 'Ok' ;
  7. }else {
  8. exit();
  9. }
  10.  
  11.  
  12. $query = " drugie_zapytanie_sql ";
  13. $wynik = mysql_query($query);
  14.  
  15. if ($wynik){
  16. echo 'Ok' ;
  17. }else {
  18. exit();
  19. }
  20. ?>

No niby tak ale ja nie chce przerywac dzialania skryptu czyli nie moge poprostu umiescic exit :/

"jezoo": a ten Twoj sposob dziala?? a co w sytacji gdy sql1 oraz sql2 sie wykona a sql3 nie?

Tu chyba "kossa" ma racje, transakcje powinny byc i jak sie wszystko nie powiedzie rollback

Ten post edytował chyzio 21.02.2007, 12:20:41
Go to the top of the page
+Quote Post
jezoo
post
Post #6





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 4.04.2006

Ostrzeżenie: (0%)
-----


moj sposob dziala w 100% bo go uzywam, a co do nie wykonania jakiegos zapytania to w else robisz rollback'a zanim zrobi exita, czyli:
  1. <?php
  2. if(mysql_query("zapytanie sql")!=mysql_error())
  3. echo "to zie powiodlo";
  4. else{
  5. echo "a tutaj krzaki";
  6. rollback();
  7. exit; }
  8. ?>

to nie jest poprawny kod, tylko koncepcja realizacji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował jezoo 22.02.2007, 13:12:02
Go to the top of the page
+Quote Post
soska66
post
Post #7





Grupa: Zarejestrowani
Postów: 132
Pomógł: 1
Dołączył: 3.02.2005

Ostrzeżenie: (0%)
-----


Jezeli zapytanie wyglada tak samo, a rozni sie tylko zmienna (zmiennymi), to ja bym zrobil funkcje z parametrem. I wtedy w razie potrzeby stosowal je pojedynczo, albo w petli, ktora w kazdym kroku zmienialaby dana zmienna

Jesli byloby kilka zupelnie roznych zapytan (inne tabele, inne pola) to nie bawilbym sie jakos specjalnie i chyba zrobilbym osobne funkcje po prostu. No ale to bym musial miec koncept bo tak to troche w ciemno
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 02:33