Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [Php e Mysql] Interrogazione non complessa

    ...ma che non so la sintassi.
    Es. DB cosi strutturato:
    [ID contatore] [goal] [Palla]

    Dovrei interrogare il db in modo che mi estrapoli, in ordine di goal, le palle che sono andate piu' volte in rete.
    Es. Segno con 3 volte con la palla rossa, 5 con la nera e 10 con la bianca.

    Mi ritrovo con il db cosi:
    [1] [1] [Palla rossa]
    [2] [1] [Palla rossa]
    [3] [1] [Palla rossa]
    [4] [1] [Palla nera]
    [5] [1] [Palla nera]
    [6] [1] [Palla nera]
    [7] [1] [Palla nera]
    etc, etc

    Dovrei ritrovarmi a video con:
    10 goal palla bianca
    5 palla nera
    3 palla rossa

    Spero di essermi spiegato. Grazie.
    [CRY] - Counter-Strike clan! I want you!
    Sostenitore della teoria: ruttare e' umano ma scoreggiare e' divino.

  2. #2
    dovrebbe essere una cosa di questo tipo:

    codice:
    SELECT COUNT(goal), palla FROM tableName GROUP BY palla

  3. #3
    codice:
    $palla_goal='palla rossa';
    $r=mysql_query("SELECT * FROM tab WHERE palla='$palla_goal'");
    echo 'I goal di '.$palla_goal.' sono: '.mysql_num_rows($r);

  4. #4
    prima di tutto il campo goal è perfettamente inutile se in esso hai sempre il valore 1.
    comunque la query è la seguente:
    codice:
    SELECT COUNT(IDContatore) AS Tot, Palla FROM nometabella GROUP BY (Palla)
    "0 è tutto finito. 1 è solo l'inizio"
    HO IL CERTIFICATO DI RESISTENZA.

  5. #5
    ciao... premetto che quello che sto per spiegarti non so se sia o meno il metodo migliore in termini di prestazione e non so se sia possibile (ma forse si) ottenere quello che tu vuoi in un'unica query...


    quello che farei io è una prima estrazione dal db dei tipi di palline che hai a disposizione e metterei tutti i tipi di palline in un array:

    ES:

    codice:
    $array = array();
    $query = "SELECT Palla FROM nome_db";
    $result = mysql_query($query, $db) or die("Query non valida: " . mysql_error());
    while($row = mysql_fetch_array($result)){
      if (!in_array($row['Palla']), $array)) {
        $array[] = $row['Palla'];
    }

    dopodichè scorrerei l'array e per ogni elemento (tipo di palla) farei la query in cui cerco il maggior numero di reti segnate

    ES:
    codice:
    $array_goal = array();
    foreach ($array as $value) {
     $query = "SELECT goal FROM nome_db WHERE Palla={$value}";
     $result = mysql_query($query, $db) or die("Query non valida: " . mysql_error());
     while($row = mysql_fetch_array($result)){
       if ($row['Goal']) > $array_goal[$value])) {
         $array_goal[$value] = $row['Goal'];
      }
    }
    in $array_goal ti trovi le coppie chiave (tipo di pallina) e valore (numero di goal)... te lo cicli e stampi chiave - valore...

    buttata li così, come prima idea... ma ti ripeto, potrebbero esserci metodi migliori.


    r@ptus

  6. #6
    vedi, come volevasi dimostrare, ci sono metodi molto migliori!!!!





    eheh,

    ciao

  7. #7
    Originariamente inviato da ^r@pTuS^
    vedi, come volevasi dimostrare, ci sono metodi molto migliori!!!!





    eheh,

    ciao

    hai dimenticato di chiudere la parantesi dell'IF del primo blocco di codice, e del foreach del 2°

  8. #8
    UHM... AVEVO COMPLEtAMENTE TRAVISATO... credevo che ad ogni pallina fosse associato il numero di goal, tipo:

    id: 0
    goal: 10
    pallina: rossa

    id: 1
    goal: 5
    pallina: nera

    ecc. ecc.

    guardando meglio ho visto che basta contare...

    ABACO rulez


    byuz

  9. #9
    Siete stati tutti molto gentili, questa sera provo. GG
    [CRY] - Counter-Strike clan! I want you!
    Sostenitore della teoria: ruttare e' umano ma scoreggiare e' divino.

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.