Pagina 1 din 3 123 UltimulUltimul
Rezultate 1 la 10 din 24

Subiect: Some help in PHP-mySQL

  1. #1
    Avatarul lui impelo
    impelo este deconectat Membru SeoPedia
    Reputatie:
    26
    Data înscrierii
    7th April 2011
    Locaţie
    Bucuresti
    Posturi
    304
    Putere Rep
    26


    Implicit Some help in PHP-mySQL

    Salut,

    Am de facut o afisare si nu am idee cum as putea...
    Am 2 baze de date:
    #baza1
    baza1_id
    baza1_denumire
    baza1_descriere


    #baza2
    baza2_id
    baza1_id (care reprezinta una din inregistrarile din #baza1)
    baza2_descriere

    Acum, cand vreau sa afisez rezultatele din #baza2, vreau sa afisez in loc de baza1_id sa afisez baza1_descriere corespunzatoare baza1_id. Intelegeti ce spun? Am facut urmatoarea treaba...



    Cod PHP:
                <?php
    $sql
    ="SELECT * FROM baza2 ORDER BY baza2_id DESC";
    $result=mysql_query($sql);
    while(
    $rows=mysql_fetch_array($resultMYSQLI_ASSOC)){
    ?>
                    <tr> 
                        <td><? echo $rows['baza2_id']; ?></td> 
                        <td><? echo $rows['baza1_id'];      //aici sa afiseze ce corespunde baza1_descriere ?></td>
                        <td><? echo $rows['baza2_descriere']; ?></td> 
                    </tr> 
    <?php }
    Cum pot afisa acel rand sa imi ia baza1_descriere in loc de baza1_id?

    Multumesc anticipat.

  2. #2
    Avatarul lui navigator10
    navigator10 este deconectat Junior SeoPedia
    Reputatie:
    21
    Data înscrierii
    16th March 2013
    Locaţie
    Craiova
    Vârstă
    33
    Posturi
    26
    Putere Rep
    21


    1 out of 1 members found this post helpful.

    Implicit

    trebuie sa mai faci inca un select in while, inainte de tabel:
    $query = "SELECT baza1_descriere WHERE baza1_id = '".$rows['baza1_id']."'";
    $result = mysql_query($query);
    $vec = mysql_fetch_array($result);
    iar unde vrei sa afisezi informatia in tabel scrii:
    <td><? echo $vec['baza1_descriere'];

  3. #3
    Avatarul lui Bogdan Ungureanu
    Bogdan Ungureanu este deconectat Membru SeoPedia
    Reputatie:
    29
    Data înscrierii
    17th September 2010
    Locaţie
    Craiova
    Vârstă
    33
    Posturi
    431
    Putere Rep
    29


    1 out of 1 members found this post helpful.

    Implicit

    Citat Postat în original de impelo Vezi Post
    Salut,

    Am de facut o afisare si nu am idee cum as putea...
    Am 2 baze de date:
    #baza1
    baza1_id
    baza1_denumire
    baza1_descriere


    #baza2
    baza2_id
    baza1_id (care reprezinta una din inregistrarile din #baza1)
    baza2_descriere

    Acum, cand vreau sa afisez rezultatele din #baza2, vreau sa afisez in loc de baza1_id sa afisez baza1_descriere corespunzatoare baza1_id. Intelegeti ce spun? Am facut urmatoarea treaba...



    Cod PHP:
                <?php
    $sql
    ="SELECT * FROM baza2 ORDER BY baza2_id DESC";
    $result=mysql_query($sql);
    while(
    $rows=mysql_fetch_array($resultMYSQLI_ASSOC)){
    ?>
                    <tr> 
                        <td><? echo $rows['baza2_id']; ?></td> 
                        <td><? echo $rows['baza1_id'];      //aici sa afiseze ce corespunde baza1_descriere ?></td>
                        <td><? echo $rows['baza2_descriere']; ?></td> 
                    </tr> 
    <?php }
    Cum pot afisa acel rand sa imi ia baza1_descriere in loc de baza1_id?

    Multumesc anticipat.
    Se face un join in SQL.

    De exemplu, query-ul tău va fi ceva de genul:

    SELECT * FROM baza2 left join baza1 on baza2.baza1_id = baza1.baza1_id ORDER BY baza2_id DESC
    Poți citi mai multe despre join-urile MySQL și tipurile de join în documentația de aici.

    Citat Postat în original de navigator10 Vezi Post
    trebuie sa mai faci inca un select in while, inainte de tabel:
    $query = "SELECT baza1_descriere WHERE baza1_id = '".$rows['baza1_id']."'";
    $result = mysql_query($query);
    $vec = mysql_fetch_array($result);
    iar unde vrei sa afisezi informatia in tabel scrii:
    <td><? echo $vec['baza1_descriere'];
    Implementarea ta de mai sus ar trebui să funcționeze, dar nu este foarte elegantă, doar te complici degeaba când se poate face doar modificând query-ul SQL.
    Am un blog personal nou.

  4. #4
    Avatarul lui impelo
    impelo este deconectat Membru SeoPedia
    Reputatie:
    26
    Data înscrierii
    7th April 2011
    Locaţie
    Bucuresti
    Posturi
    304
    Putere Rep
    26


    Implicit

    Multumesc Bogdan pentru ajutor. Este foarte util codul. Daca trebuie sa iau din mai multe tabele, cum ar trebui sa iasa? Am incercat
    *baza2 este cea care are id-uri din mai multe baze..

    SELECT * FROM baza2 left join baza1 on baza2.baza1_id = baza1.baza1_id AND baza3 on baza2.baza3_id = baza3.baza3_id ORDER BY baza2_id DESC
    Nu mai imi afiseaza nimic in cazul asta...

  5. #5
    Avatarul lui Bogdan Ungureanu
    Bogdan Ungureanu este deconectat Membru SeoPedia
    Reputatie:
    29
    Data înscrierii
    17th September 2010
    Locaţie
    Craiova
    Vârstă
    33
    Posturi
    431
    Putere Rep
    29


    1 out of 1 members found this post helpful.

    Implicit

    Citat Postat în original de impelo Vezi Post
    Multumesc Bogdan pentru ajutor. Este foarte util codul. Daca trebuie sa iau din mai multe tabele, cum ar trebui sa iasa? Am incercat
    *baza2 este cea care are id-uri din mai multe baze..



    Nu mai imi afiseaza nimic in cazul asta...
    Nu, o să ai ceva de genul:

    SELECT * FROM baza2 left join baza1 on baza2.baza1_id = baza1.baza1_id left join baza3 on baza2.baza3_id = baza3.baza3_id ORDER BY baza2_id DESC
    Cel mai bine ar fi să execuți query-ul în phpmyadmin să vezi ce rezultate îți dă sau dacă este vreo eroare de sintaxă.

    Să fiu sincer, n-am mai scris un query sql de câțiva ani, anul acesta am mai făcut câteva la facultate, la un laborator, deci e posibil ca exemplul de sus să nu fie ok - nu l-am testat. În ultimii ani am folosit AR-ul din Yii Framework.
    Ultima modificare făcută de Bogdan Ungureanu; 13th June 2013 la 14:41.
    Am un blog personal nou.

  6. #6
    Avatarul lui navigator10
    navigator10 este deconectat Junior SeoPedia
    Reputatie:
    21
    Data înscrierii
    16th March 2013
    Locaţie
    Craiova
    Vârstă
    33
    Posturi
    26
    Putere Rep
    21


    1 out of 1 members found this post helpful.

    Implicit

    $query = "SELECT baza1.baza1_descriere, baza2.baza2_id, baza2.baza2_descriere FROM baza1 INNER JOIN baza2 ON baza1.baza1_id = baza2.baza1_id ORDER BY baza2.baza2_id DESC";

  7. #7
    Avatarul lui impelo
    impelo este deconectat Membru SeoPedia
    Reputatie:
    26
    Data înscrierii
    7th April 2011
    Locaţie
    Bucuresti
    Posturi
    304
    Putere Rep
    26


    Implicit

    Nu am obiceiul sa deschid cate un thread pentru fiecare problema, asa ca va mai cer ajutorul inca odata tot aici...

    Vreau sa selectez anumite inregistrari. Am facut formularul unde selectez ce am nevoie..
    Cod PHP:
    <form method='get' action='?show=raportare'>
                        <div class="module_content">
                                <h4 class='alert_info'>Raportarea in functie de asigurator</h4>
                                <div class="clear"></div>
                                <fieldset style="width:48%; float:left;"><label>Asigurator</label>
                                    <select style="width:92%;" name="asigurator_tag">
                                        <option></option>
                                        <?php
                                            $sql
    ="SELECT * FROM asiguratori ORDER BY asigurator_tag ASC";
                                            
    $result=mysql_query($sql);
                                            while(
    $rows=mysql_fetch_array($resultMYSQLI_ASSOC)){
                                        
    ?>
                                        <option value="<? echo $rows['asigurator_id']; ?>"><? echo $rows['asigurator_tag']; ?></option>
                                        <?php }?>
                                    </select>
                                </fieldset>
                                <div class="clear"></div>
                                <fieldset style="width:48%; float:left;"><label>Data inceput</label>
                                    <input type="date" style="width:92%;" name="dela"></fieldset>
                                <fieldset style="width:48%; float:right;"><label>Data sfarsit</label>
                                    <input type="date" style="width:92%;" name="panala"></fieldset>
                                <div class="clear"></div>
                        </div>
                        <footer>
                            <div class="submit_link">
                                <input type="submit" value="Afiseaza raportul" class="alt_btn">
                            </div>
                        </footer>
                    </form>
    Asta este codul de afisare..
    Cod PHP:
    <?php
    include('config.php');
    switch(
    $_GET['show']){
        case 
    'raport':include'ext/raport.php';break;
        case 
    'raportare':include'ext/raportare.php';break;
        
    }
    ?>
    Asta este pagina de afisare
    Cod PHP:
    <?php
        $asigurator_id
    =$_POST['asigurator_id'];
        
    $dela=$_POST['dela'];
        
    $panala=$_POST['panala'];
        
    $sql="SELECT * FROM polite WHERE asigurator_id=$asigurator_id AND data_emitere >= " $dela " AND data_emitere <= " $panala " ORDER by data_emitere ASC";
        
    $result mysql_query($sql) or die(mysql_error()); 
    ?>

    +afisarea propriu-zisa


    Nu imi afiseaza si nu inteleg de ce.. am incercat 400000 de variante, niciuna nu e buna, plus ca nu imi afiseaza la link ?show=raportare&asigurator_id=...., ci ?asigurator_id=...


    Multumesc anticipat pentru ajutor.

  8. #8
    Avatarul lui Bogdan Ungureanu
    Bogdan Ungureanu este deconectat Membru SeoPedia
    Reputatie:
    29
    Data înscrierii
    17th September 2010
    Locaţie
    Craiova
    Vârstă
    33
    Posturi
    431
    Putere Rep
    29


    1 out of 1 members found this post helpful.

    Implicit

    Citat Postat în original de impelo Vezi Post
    Nu am obiceiul sa deschid cate un thread pentru fiecare problema, asa ca va mai cer ajutorul inca odata tot aici...

    Vreau sa selectez anumite inregistrari. Am facut formularul unde selectez ce am nevoie..
    Cod PHP:
    <form method='get' action='?show=raportare'>
                        <div class="module_content">
                                <h4 class='alert_info'>Raportarea in functie de asigurator</h4>
                                <div class="clear"></div>
                                <fieldset style="width:48%; float:left;"><label>Asigurator</label>
                                    <select style="width:92%;" name="asigurator_tag">
                                        <option></option>
                                        <?php
                                            $sql
    ="SELECT * FROM asiguratori ORDER BY asigurator_tag ASC";
                                            
    $result=mysql_query($sql);
                                            while(
    $rows=mysql_fetch_array($resultMYSQLI_ASSOC)){
                                        
    ?>
                                        <option value="<? echo $rows['asigurator_id']; ?>"><? echo $rows['asigurator_tag']; ?></option>
                                        <?php }?>
                                    </select>
                                </fieldset>
                                <div class="clear"></div>
                                <fieldset style="width:48%; float:left;"><label>Data inceput</label>
                                    <input type="date" style="width:92%;" name="dela"></fieldset>
                                <fieldset style="width:48%; float:right;"><label>Data sfarsit</label>
                                    <input type="date" style="width:92%;" name="panala"></fieldset>
                                <div class="clear"></div>
                        </div>
                        <footer>
                            <div class="submit_link">
                                <input type="submit" value="Afiseaza raportul" class="alt_btn">
                            </div>
                        </footer>
                    </form>
    Asta este codul de afisare..
    Cod PHP:
    <?php
    include('config.php');
    switch(
    $_GET['show']){
        case 
    'raport':include'ext/raport.php';break;
        case 
    'raportare':include'ext/raportare.php';break;
        
    }
    ?>
    Asta este pagina de afisare
    Cod PHP:
    <?php
        $asigurator_id
    =$_POST['asigurator_id'];
        
    $dela=$_POST['dela'];
        
    $panala=$_POST['panala'];
        
    $sql="SELECT * FROM polite WHERE asigurator_id=$asigurator_id AND data_emitere >= " $dela " AND data_emitere <= " $panala " ORDER by data_emitere ASC";
        
    $result mysql_query($sql) or die(mysql_error()); 
    ?>

    +afisarea propriu-zisa


    Nu imi afiseaza si nu inteleg de ce.. am incercat 400000 de variante, niciuna nu e buna, plus ca nu imi afiseaza la link ?show=raportare&asigurator_id=...., ci ?asigurator_id=...


    Multumesc anticipat pentru ajutor.
    În form șterge tot din action și adaugă asta în form.
    <input type='hidden' name='show' value='raportare' />
    Am un blog personal nou.

  9. #9
    Avatarul lui impelo
    impelo este deconectat Membru SeoPedia
    Reputatie:
    26
    Data înscrierii
    7th April 2011
    Locaţie
    Bucuresti
    Posturi
    304
    Putere Rep
    26


    Implicit

    Asa merge, imi face cum trebuie linkul, dar nu-mi afiseaza...
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND data_emitere BETWEEN ' AND ' ORDER by data_emitere ASC' at line 1
    $sql="SELECT * FROM polite WHERE asigurator_id=$asigurator_id AND data_emitere BETWEEN " . $dela . " AND " . $panala . " ORDER by data_emitere ASC";

  10. #10
    Avatarul lui Bogdan Ungureanu
    Bogdan Ungureanu este deconectat Membru SeoPedia
    Reputatie:
    29
    Data înscrierii
    17th September 2010
    Locaţie
    Craiova
    Vârstă
    33
    Posturi
    431
    Putere Rep
    29


    1 out of 1 members found this post helpful.

    Implicit

    Citat Postat în original de impelo Vezi Post
    Asa merge, imi face cum trebuie linkul, dar nu-mi afiseaza...
    Încearcă asta
    $sql="SELECT * FROM polite WHERE asigurator_id=$asigurator_id AND data_emitere BETWEEN '" . $dela . "' AND '" . $panala . "' ORDER by data_emitere ASC";
    Variabilele $dela și $panala nu au nicio valoare pentru ca form-ul este GET, nu POST.
    Deci asta
    $asigurator_id=$_POST['asigurator_id'];
    $dela=$_POST['dela'];
    $panala=$_POST['panala'];
    trebuie sa fie asa
    $asigurator_id=$_GET['asigurator_id'];
    $dela=$_GET['dela'];
    $panala=$_GET['panala'];
    Ai probleme mari cu exploit-urile sql. Ar fi bine sa citești threadul ăsta, dacă nu dorești să te trezești cu site-ul spart.
    Am un blog personal nou.

Pagina 1 din 3 123 UltimulUltimul

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Mysql
    De durie în forumul Server side
    Răspunsuri: 2
    Ultimul Post: 5th June 2011, 11:18
  2. php&mysql
    De durie în forumul Server side
    Răspunsuri: 4
    Ultimul Post: 3rd June 2011, 18:39
  3. programator php / mysql
    De charlieking în forumul Server side
    Răspunsuri: 1
    Ultimul Post: 8th June 2008, 09:37
  4. mysql & phpmyadmin
    De Adrian Poputoaia în forumul Bar, lobby...
    Răspunsuri: 5
    Ultimul Post: 15th April 2008, 01:36
  5. SUN a cumparat MySQL
    De Netul în forumul Server side
    Răspunsuri: 3
    Ultimul Post: 11th April 2008, 11:04

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •