Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytania mysql
Forum PHP.pl > Forum > PHP
chyzio
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??
Mary$
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ś
kossa
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
jezoo
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. ?>
chyzio
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
jezoo
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
soska66
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
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.