Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Estrazione dati da db

  1. #1

    Estrazione dati da db

    Ciao Ragazzi, allora io ho un tabella chiamata giochi_files con un campo speciali (contenente una stringa formattata in questo modo |9||20|)

    I numeri 9 e 20 corrispondono all'ID ad un'altra tabella (la tabella giochi_speciali), in cui dentro ho la stringa nome_categoria

    Ora volevo sapere come faccio a recuperare il nome di entrambe le categorie? Perchè facendo così

    $query_read3 = mysql_query("SELECT * FROM speciali WHERE id = '$speciale_cat'");

    Non mi restituisce nulla in quanto i dati sono collegati, dovrei prima scollegarli e poi fare un ciclo while per estrarre i nomi?

  2. #2
    Da quello che hai postato non si può capire l'errore, perchè non si sa come viene valorizzata la variabile $speciale_cat.
    Al di la del problema, mi chiedo, perchè hai inserito in un campo più id di un'altra tabella?
    Perchè non utilizzare le relazioni?
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Non viene nessun errore, ma non mi stampa nulla.

    Il codice del sito era già così e mi devo adattare, quindi adesso non so come associare l'id del gioco con la categoria

    Schema tabelle

    giochi_file

    id_gioco | Nome | ecc..| Speciale

    1| prova | ecc.. | |9||20|

    speciale

    id_speciale | nome_categoria

    io dovrei estrarre i due id (quindi 9 e 20) dalla tabella speciale

  4. #4
    Si ma in $speciale_cat cosa c'è?
    un singolo id?
    se così allora il tuo problema è di sql:
    codice:
    SELECT * FROM speciali WHERE id = '$speciale_cat1' OR id = '$speciale_cat2'
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    Il problema che in speciale_cat (quella che ricavo dal gioco) ci sono 2 id per esempio |9||20|

    che appartengono all'id 9 e 20 della tabella speciali

  6. #6
    Puoi fare così :

    $r1 = mysql_query("SELECT * FROM giochi_files")OR DIE(mysql_error());//prendiamo tutti i giochi

    while($k = mysql_fetch_array($r1)){
    if($k['speciali'] != ""){//SE IL CAMPO SPECIALI NON E' VUOTO
    $speciali = $k['speciali'];//ora abbiamo la stringa in formato |9||20| ecc

    $all = explode("|",$speciali);//spezziamo la stringa
    $LISTA_ID_SPECIALI = array(); //inizializziamo un array che conterrà tutti gli id
    foreach($all as $k=>$v){//e la passiamo in un foreach
    if(!empty($v)){//se non è vuoto il valore dell'array
    $LISTA_ID_SPECIALI[] = $v;//riempie un bell'array con tutti gli id
    }
    }
    }
    $names = array();
    //ora che abbiamo gli id e vuoi sapere i nomi, basta fare
    foreach($LISTA_ID_SPECIALI as $key=>$value){
    //ecco la query!
    $query_read3 = mysql_query("SELECT * FROM speciali WHERE id = '$value'");
    $colonne= mysql_fetch_array($query_read3);
    $nome_categoria = $colonne['nome_campo_categoria'];
    $names[] = $nome_categoria;
    }
    }

    //finalmente, alla fine
    foreach($names as $key=>$value){
    echo "Nome categoria : $value
    \n";
    }


    Il codice non è testato, l'ho scritto in una botta, non so se farà per te, però puoi trarre qualche spunto

  7. #7
    Si potrebbe pensare di modificare
    Codice PHP:
    $names = array();
    //ora che abbiamo gli id e vuoi sapere i nomi, basta fare
    foreach($LISTA_ID_SPECIALI as $key=>$value){
    //ecco la query!
    $query_read3 mysql_query("SELECT * FROM speciali WHERE id = '$value'"); 
    $colonnemysql_fetch_array($query_read3);
    $nome_categoria $colonne['nome_campo_categoria'];
    $names[] = $nome_categoria;

    in
    Codice PHP:
    $risultato mysql_query("SELECT * FROM speciali WHERE id = IN (".implode(",",$LISTA_ID_SPECIALI).")"); 
    while(
    $riga mysql_fetch_array($risultato )){
    $names[] = $riga ['nome_colonna'];

    in questo modo si esegue una sola query.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  8. #8

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.