Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    inner join php con array

    Salve, ho la seguente select:
    Codice PHP:
    $strutturass mysql_query("SELECT id_struttura FROM servizi WHERE id_struttura!='' AND servizio_mare=1 Order BY RAND() ") or die(mysql_error());

    while (
    $strutturass_1 mysql_fetch_array($strutturass)) 
    {  
    $mioarray[]=$strutturass_1['id_struttura'];
         

    fino a qui tutto bene, solo che ora dovrei fare un inner gion con una seconda tabella che ha i seguenti campi

    id_struttura | id_provincia

    come faccio a prendere id_struttura con servizio_mare=1 e determinato id_provincia e mettere tutto dentro un array?

    Grazie

  2. #2
    oppure, scusate la mia ignoranza, è possibile fare cosi:

    prendere array uno che è fatto cosi: [1,2,5,8]
    prendere array due che è fatto cosi: [2,5]
    e fammi stampare un array con i valori comuni? [2,5]

    se si puo fare, come si fa?

  3. #3

  4. #4
    grazie, avrei solo un domanda, alla fine il mio array lo devo svuotare o no?

    e fare cosi va bene o è meglio fare un inner join?

  5. #5
    forse ho capito male io, ma secondo ti stai complicando la vita.
    quando esegui una query con INNER JOIN, il risultato ti tira fuori tutti i campi di tutte le tabelle che in cui hai fatto la join.
    quindi se esegui la query in maniera corretta ti ritrovi già tutto quello che ti serve dentro quell'array!

  6. #6
    Originariamente inviato da fermat
    forse ho capito male io, ma secondo ti stai complicando la vita.
    quando esegui una query con INNER JOIN, il risultato ti tira fuori tutti i campi di tutte le tabelle che in cui hai fatto la join.
    quindi se esegui la query in maniera corretta ti ritrovi già tutto quello che ti serve dentro quell'array!
    Allora mi spiego meglio, io mi sono fatto la classica query con l'inner join, solo che in questo modo, il risultato è lento, cioè ci sta un po a darmi i risultati, e volevo provare se cosi è piu veloce:
    Codice PHP:
    <?php
    $array1 
    = array("a" => "green""red""blue");
    $array2 = array("b" => "green""yellow""red");
    $result array_intersect($array1$array2);
    print_r($result);
    ?>
    o se esiste un metodo alternetivo

  7. #7
    nn so che query stai eseguendo, ma io ne eseguo una in cui faccio la join tra 5 tabelle e non è lenta.
    non è che tiri fuori troppi risultati?
    o magari nella pagina hai altre cose che appesantiscono (tipo immagini)?
    perchè mi pare strano che sia così lenta da doverti costringere ad operazioni alternative.

  8. #8
    Cioè stai dicendo che una join è più lenta di due select e successiva intersezione a manella?!?!
    L'SQL è nato per questo, se una semplicissima join è lenta è il DB che e strutturato in maniera abominevole!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    allora ecco le mie due tabelle:
    tabella servizi:

    id_struttura | servizio1 | servizio2 | ..... | servizio28 |

    id_struttura è numerico

    i campi servizi hanno solo il valore 1 o 0 e sono 28

    la tabella struttura :

    id_struttura | provincia | categoria

    id_struttura è numerico, come provincia e categoria.

    ora per esempio io vorrei estrarre tutti gli id_struttura , con servizi1 ,servizi5 ,servizi6 ,servizi22 , e provincia =22 e categoria = 3


    Come dovrei fare per eseguire una query veloce? c'è chi mi dice array, chi mi dice inner join, non lo so proprio..... Voi che mi consigliate

  10. #10
    a mio avviso i valori devono arrivare alla pagina direttamente dalla query.
    quindi fai la query con le join e tutte le clausole che ti servono.
    poi con il risultato riempi un array e lo butti dentro la pagina.
    ma, ripeto, usa le join e non tutte quelle elaborazioni che volevi fare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.