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

    Raccogliere Dati in più Chiamate

    Salve ragazzi,
    è possibile recuperare dati da una tabella in più chiamate?
    Avevo provato a fare così ma successivamente non mi fa fare il fetch_assoc su un array..
    Codice PHP:
    $result1 $mysqli->query("SELECT id FROM voti WHERE BINARY categorie LIKE '%;$categoria_;%' ORDER BY votoMedio LIMIT 30");
    while(
    $dati $result1->fetch_assoc()){
        
    $result[] = $mysqli->query("SELECT id, titolo, thumbsL, thumbsM, durata, visualizzazioni FROM video WHERE BINARY categorie LIKE '%;$categoria_;%' DESC LIMIT 30");
    }
    $dati $result->fetch_assoc() 
    Ultima modifica di Luigi636; 12-06-2016 a 17:34

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Perché ciò che ti ritorna una query non è un array, è un record set, fetch_assoc() non lavora su array.
    L'array $result lo devi scorrere con foreach() e ad ogni iterazione usare while e fetch_assoc(), perché ogni entry dell'array contiene un record set.

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Perché ciò che ti ritorna una query non è un array, è un record set, fetch_assoc() non lavora su array.
    L'array $result lo devi scorrere con foreach() e ad ogni iterazione usare while e fetch_assoc(), perché ogni entry dell'array contiene un record set.
    Giusto.. Ma si possono raccogliere i dati diversamente per salvarli tutti in $result come se fosse stata fatta un'unica chiamata..?
    Perchè ho altri select che agiscono tramite dei link e l'operazione successiva è la stessa per tutte, ovvero:
    Codice PHP:
    while ($dati $result->fetch_assoc()) {
       
    etcetcetc.


  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Chiedi nella sezione database se puoi ottimizzare la query.

  5. #5
    Ho fatto tramite PHP.. E' venuto uno schifo alla vista, comunque sia funziona bene..

  6. #6
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Scusa, non capisco...

    le query nidificata ha come solo parametro variabile $categoria che non viene modificato all'interno del ciclo while.

    Quindi ad ogni ciclo ottieni sempre lo stesso elenco di 30 video.
    Non puoi tirarla fuori dal ciclo?

  7. #7
    No, mi esce l'elenco degli id dei primi 30 video, poi nella seconda query vado a prendermi i dati di ogni video tramite l'id

  8. #8
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Quote Originariamente inviata da Luigi636 Visualizza il messaggio
    No, mi esce l'elenco degli id dei primi 30 video, poi nella seconda query vado a prendermi i dati di ogni video tramite l'id
    Veramente la query nidificata nel ciclo while fa un'altra cosa: cerca le informazioni su 30 video che appartengono a $categoria.
    Infatti non c'è nessun collegamento con l'id del video che cerchi con la prima query.


    A parte questo, non ha senso fare una cosa del genere: devi creare una query che unisca le due tabelle con un INNER JOIN sugli id.

    Prova qualcosa del genere

    codice:
    "SELECT video.* FROM video INNER JOIN voti ON video.id=voti.id WHERE voti.categorie LIKE '%".$categoria."%' ORDER BY voti.votoMedio DESC LIMIT 30"

  9. #9
    Quote Originariamente inviata da Luke70 Visualizza il messaggio
    Veramente la query nidificata nel ciclo while fa un'altra cosa: cerca le informazioni su 30 video che appartengono a $categoria.
    Infatti non c'è nessun collegamento con l'id del video che cerchi con la prima query.


    A parte questo, non ha senso fare una cosa del genere: devi creare una query che unisca le due tabelle con un INNER JOIN sugli id.

    Prova qualcosa del genere

    codice:
    "SELECT video.* FROM video INNER JOIN voti ON video.id=voti.id WHERE voti.categorie LIKE '%".$categoria."%' ORDER BY voti.votoMedio DESC LIMIT 30"
    Si, evidentemente non ho copiato qualche parte di codice.. Ora studio le Inner Join.. Thank you

  10. #10
    Ciao,ma non puoi semplicemente utilizzare una INNER? Ovviamente il DB deve essere strutturato bene per non fare confusione.

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.