Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727

    forse devo unire due query?

    ciao a tutti, premesso che sono un cavernicolo del PHP, che ho provato a leggere in giro ma non ho risolto nulla e che la query che devo modificare non l'ho fatta io... vi chiedo umilmente il seguente aiuto... ho questa query che funziona alla perfezione-->

    <?
    $q = "
    SELECT categoria, sottocategoria, COUNT(*)
    FROM tabella where categoria like 'alfabeto'
    GROUP BY categoria, sottocategoria
    ORDER BY categoria, sottocategoria
    ";
    $result = mysql_query($q)
    or die ("KO: ".mysql_error()."<br /><pre>$q</pre>");
    while (list($cat_temp, $sottocattemp, $num) = mysql_fetch_array($result))
    {
    ?>
    <?
    echo "<a href=\"pagina-$sottocattemp.php\">" .ucfirst($sottocattemp). "</a>";
    ?>
    <?
    }
    ?>

    bene, ho la necessità di aggiungere nella riga dell'ECHO un valore in più estratto sempre dalla stessa tabella in base alla variabile $sottocattemp, in pratica dovrei aggiungere-->

    $query = "select foto from tabella WHERE sottocategoria like '$sottocattemp' limit 1";

    e nella riga dell'ECHO-->

    <img src="<?=$foto?>">

    ma proprio non ci riesco, grazie in anticipo a chi mi aiuterà!!!!!!!

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, allora la query se va modificata potrebbe essere così:
    codice:
    SELECT foto, categoria, sottocategoria, COUNT(*)
    FROM tabella where categoria like 'alfabeto'
    WHERE sottocategoria like '%".$sottocattemp."%'
    GROUP BY categoria, sottocategoria
    ORDER BY categoria, sottocategoria
    LIMIT 1
    Poi mi pare un po' strano il group by se poi vai ad usare il limit 1 ma non so quale dev'essere il risultato finale.
    Comunque aggiungendo "foto" in testa, prelevi anche il campo foto.
    Quindi avrai poi
    codice:
    while (list($foto,$cat_temp, $sottocattemp, $num) = mysql_fetch_array($result))
    

    Personalmente non uso un list per splittare i risultati dato che hai già l'array dati e volendo quindi così:
    codice:
    
    
    codice:
    $result = mysql_query($q)
    or die ("KO: ".mysql_error()."<br /><pre>$q</pre>");
    while ($row = mysql_fetch_array($result))
    {
       $row['foto']; //es. per il campo foto
    }
    

    In $row avrai tutti i campi prelevati .

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727
    grazie per la risposta ma non va bene
    e non va bene solo x colpa mia infatti leggendo cosa mi hai scritto ho capito che non mi sono spiegato bene-->
    la query originale deve continuare a fare quello che faceva prima, invece come l'hai modificata tu non lo fa più, ora te la spiego meglio e se hai ancora pazienza mi puoi aiutare?
    la query originale mi crea un elenco con TUTTE le sottocategorie della categoria like 'alfabeto' che io poi stampo così

    echo "<a href=\"pagina-$sottocattemp.php\">" .ucfirst($sottocattemp). "</a>";

    se mettiamo il LIMIT 1 in quel punto perdo l'elencazione di TUTTE le sottocategorie
    e perchè io ho messo sotto il LIMIT1 (e non so bene dove metterlo)?
    perchè vorrei che per OGNI sottocategoria elencata, mi estraesse ANCHE UNA foto relativa a quella sottocategoria
    è un casino lo so...

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao , cosi' come sembra hai solo una tabella. Se si basta aggiungere il campo foto come ho fatto sopra. Se le foto stanno altrove in altra tabella andra' fatta una JOIN su tabelle dedicata tramite appunto sottocategoria.
    Non conosco lo shema del DB e a meno che non lo spieghi tu posso solo immaginare.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.