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
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ś


--------------------
Nie ma rzeczy niemożliwych - są tylko czasochłonne i mało opłacalne.
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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:58