• User Attivo

    Conteggio record

    Salve a tutti, mi piacerebbe ottenere il conteggio accanto al sottomenu come avviene in questo sito: w w w.ffiles.com/flash/actionscript

    Questa cosa qui:
    Actionscript [143]
    Animations [142]

    come potrei fare?

    Questo è il codice :

    [PHP]
    ?php require_once('Connections/conn.php'); ?>
    <?php mysql_query('set names utf8');?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
    if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
    }

    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

    switch ($theType) {
    case "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "long":
    case "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case "double":
    $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
    break;
    case "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }
    return $theValue;
    }
    }

    $currentPage = $_SERVER["PHP_SELF"];

    mysql_select_db($database_conn, $conn);
    $query_rs_menu = "SELECT * FROM menu ORDER BY nome_menu ASC";
    $rs_menu = mysql_query($query_rs_menu, $conn) or die(mysql_error());
    $row_rs_menu = mysql_fetch_assoc($rs_menu);
    $totalRows_rs_menu = mysql_num_rows($rs_menu);

    $colname_rs_sottomenu = "-1";
    if (isset($_GET['id_menu'])) {
    $colname_rs_sottomenu = $_GET['id_menu'];
    }
    mysql_select_db($database_conn, $conn);
    $query_rs_sottomenu = sprintf("SELECT * FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC", GetSQLValueString($colname_rs_sottomenu, "text"));
    $rs_sottomenu = mysql_query($query_rs_sottomenu, $conn) or die(mysql_error());
    $row_rs_sottomenu = mysql_fetch_assoc($rs_sottomenu);
    $totalRows_rs_sottomenu = mysql_num_rows($rs_sottomenu);

    $maxRows_rs_prodotti = 25;
    $pageNum_rs_prodotti = 0;
    if (isset($_GET['pageNum_rs_prodotti'])) {
    $pageNum_rs_prodotti = $_GET['pageNum_rs_prodotti'];
    }
    $startRow_rs_prodotti = $pageNum_rs_prodotti * $maxRows_rs_prodotti;

    mysql_select_db($database_conn, $conn);
    $query_rs_prodotti = "SELECT * FROM prodotti ORDER BY id DESC";
    $query_limit_rs_prodotti = sprintf("%s LIMIT %d, %d", $query_rs_prodotti, $startRow_rs_prodotti, $maxRows_rs_prodotti);
    $rs_prodotti = mysql_query($query_limit_rs_prodotti, $conn) or die(mysql_error());
    $row_rs_prodotti = mysql_fetch_assoc($rs_prodotti);

    if (isset($_GET['totalRows_rs_prodotti'])) {
    $totalRows_rs_prodotti = $_GET['totalRows_rs_prodotti'];
    } else {
    $all_rs_prodotti = mysql_query($query_rs_prodotti);
    $totalRows_rs_prodotti = mysql_num_rows($all_rs_prodotti);
    }
    $totalPages_rs_prodotti = ceil($totalRows_rs_prodotti/$maxRows_rs_prodotti)-1;

    $queryString_rs_prodotti = "";
    if (!empty($_SERVER['QUERY_STRING'])) {
    $params = explode("&", $_SERVER['QUERY_STRING']);
    $newParams = array();
    foreach ($params as $param) {
    if (stristr($param, "pageNum_rs_prodotti") == false &&
    stristr($param, "totalRows_rs_prodotti") == false) {
    array_push($newParams, $param);
    }
    }
    if (count($newParams) != 0) {
    $queryString_rs_prodotti = "&" . htmlentities(implode("&", $newParams));
    }
    }
    $queryString_rs_prodotti = sprintf("&totalRows_rs_prodotti=%d%s", $totalRows_rs_prodotti, $queryString_rs_prodotti);
    ?>

    e questo è il codice del menu

    <div class="menu" id="menu">
      <div class="titolocategoria" id="titmenu">Categorie</div>
      <div class="categorie" id="categorie">
        <div class="tuttomenu" id="tuttomenu">
          <?php do { ?>
          <div id="menuprincipale"><a href="sottomenu.php?id_menu=<?php echo $row_rs_menu ['id']; ?>" class="testoMENU"> <?php echo ($row_rs_menu['nome_menu']); ?></a></div>
          <?php if ($row_rs_menu['id'] == $colname_rs_sottomenu){?>
          <?php do { ?>
          <div> <a href="prodotti.php?$=<?php echo $row_rs_sottomenu['id_menu']; ?>&amp;$!=<?php echo $row_rs_sottomenu['id']; ?>" class="testoSOTTOMENU"> ? <?php echo $row_rs_sottomenu['sottomenu']; ?></a></div>
          <?php } while ($row_rs_sottomenu = mysql_fetch_assoc($rs_sottomenu)); } ?>
          <?php } while ($row_rs_menu = mysql_fetch_assoc($rs_menu)); ?>
        </div>
      </div>
      <div class="motore" id="motore">
        <form id="form1" name="form1" method="get" action="risultati_ricerca.php">
          <span class="testoMENU">Cerca un prodotto</span><br />
          <input name="ricerca" type="text" id="ricerca" size="14" />
          <input name="cerca" type="submit" class="testoprivacy" id="cerca" value="cerca" />
        </form>
      </div>
    </div>
    

    [/PHP]


  • User

    Devi utilizzare la funzione COUNT sulla query per contare i record

    es:
    SELECT COUNT(id) FROM tabella WHERE articolo = 'actionscripr'


  • User Attivo

    Ciao, grazie per la risposta.
    Ho provato in questo modo, ma non mi visualizza più i sottomenù.

    Ho modificato da così

    [PHP]

    mysql_select_db($database_conn, $conn);
    $query_rs_sottomenu = sprintf("SELECT * FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC", GetSQLValueString($colname_rs_sottomenu, "text"));
    $rs_sottomenu = mysql_query($query_rs_sottomenu, $conn) or die(mysql_error());
    $row_rs_sottomenu = mysql_fetch_assoc($rs_sottomenu);
    $totalRows_rs_sottomenu = mysql_num_rows($rs_sottomenu);

    a così

    mysql_select_db($database_conn, $conn);
    $query_rs_sottomenu = sprintf("SELECT COUNT(id) FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC", GetSQLValueString($colname_rs_sottomenu, "text"));
    $rs_sottomenu = mysql_query($query_rs_sottomenu, $conn) or die(mysql_error());
    $row_rs_sottomenu = mysql_fetch_assoc($rs_sottomenu);
    $totalRows_rs_sottomenu = mysql_num_rows($rs_sottomenu);

    [/PHP]


  • User

    Per forza, conti solamente i record in questo modo, modifica la query inserendo i campi che vuoi prelevare:

    [PHP]
    $query_rs_sottomenu = sprintf("SELECT COUNT(id), campo1, campo2, campo3, ecc.... FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC", GetSQLValueString($colname_rs_sottomenu, "text"));
    [/PHP]


  • User Attivo

    Il campo è uno solo sarebbe 'sottomenu'
    ho provato così ma visualizza solo il primo 'sottomenu'

    [PHP]
    mysql_select_db($database_conn, $conn);
    $query_rs_sottomenu = sprintf("SELECT COUNT(id),sottomenu FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC", GetSQLValueString($colname_rs_sottomenu, "text"));
    $rs_sottomenu = mysql_query($query_rs_sottomenu, $conn) or die(mysql_error());
    $row_rs_sottomenu = mysql_fetch_assoc($rs_sottomenu);
    $totalRows_rs_sottomenu = mysql_num_rows($rs_sottomenu);

    [/PHP]

    forse dovrei aggiungere anche qualcosa in questo punto per visualizzare il conteggio?

    [PHP]

    <?php echo $row_rs_sottomenu['sottomenu']; ?>

    [/PHP]


  • User

    Se devi visualizzare più di un menu devi fare un ciclo, per il numero devi stampare anche l'id che in questo caso viene contato

    [PHP]
    <?php echo $row_rs_sottomenu['sottomenu'] . " ( " . $row_rs_sottomenu['id'] . " ) "; ?>
    [/PHP]


  • User Attivo

    Ho fatto in questo modo, ma non va visualizza in questo modo:
    accessori ()
    varie ()

    [PHP]
    mysql_select_db($database_conn, $conn);
    $query_rs_sottomenu = sprintf("SELECT COUNT(id),sottomenu FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC", GetSQLValueString($colname_rs_sottomenu, "text"));
    $rs_sottomenu = mysql_query($query_rs_sottomenu, $conn) or die(mysql_error());
    $row_rs_sottomenu = mysql_fetch_assoc($rs_sottomenu);
    $totalRows_rs_sottomenu = mysql_num_rows($rs_sottomenu);

    [/PHP]

    questo è il div del sottomenù

    [PHP]

    <div> <a href="prodotti.php?$=<?php echo $row_rs_sottomenu['id_menu']; ?>&$!=<?php echo $row_rs_sottomenu['id']; ?>" class="testoSOTTOMENU"><img src="img/minibutton.png" width="12" height="12" vspace="5" border="0" align="top" /> <?php echo $row_rs_sottomenu['sottomenu'] . " ( " . $row_rs_sottomenu['id'] . " ) "; ?></a></div>
    <?php } while ($row_rs_sottomenu = mysql_fetch_assoc($rs_sottomenu)); } ?>
    <?php } while ($row_rs_menu = mysql_fetch_assoc($rs_menu)); ?>
    </div>

    [/PHP]


  • User

    nella variabile $totalRows_rs_sottomenu c'è il numero


  • User Attivo

    @creativoweb said:

    nella variabile $totalRows_rs_sottomenu c'è il numero

    Scusa l'ignoranza, non ho capito in che senso c'è il numero?


  • User

    prova a stampare quella variabile...


  • User Attivo

    Ho stampato la variabile in questo modo ma non va, sicuro ho sbaglito qualcosa

    [PHP]

    <a href="prodotti.php?$=<?php echo $row_rs_sottomenu['id_menu']; ?>&$!=<?php echo $row_rs_sottomenu['id']; ?>" class="testoSOTTOMENU"><img src="img/minibutton.png" width="12" height="12" vspace="5" border="0" align="top" /> <?php echo $row_rs_sottomenu['sottomenu'] . " ( " . $totalRows_rs_sottomenu ['id'] . " ) "; ?></a></div>
    <?php } while ($row_rs_sottomenu = mysql_fetch_assoc($rs_sottomenu)); } ?>
    <?php } while ($row_rs_menu = mysql_fetch_assoc($rs_menu)); ?>

    [/PHP]


  • User

    metti solo il nome della variabile senza [id]


  • User Attivo

    Adesso stampa qualcosa, però stampa a tutti i sottomenù (1) in questo modo:
    Accessori (1)
    Varie (1)

    poi c'è sempre il problema che stampa solo un sottomenù.


  • User

    dovresti utilizzare un ciclo non mysql_fetch_assoc ma questo codice

    [PHP]

    $query =
    ("SELECT COUNT(id),sottomenu FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC", GetSQLValueString($colname_rs_sottomenu, "text"));
    $result = mysql_query($query) or die (mysql_error());
    while ($row = mysql_fetch_array($result))
    {

    // stampo il menu

    }
    [/PHP]

    Prova vedrai che ti funziona


  • User Attivo

    Ho provato, mi da errore su questa riga:

    [PHP]

    $query = ("SELECT COUNT(id),sottomenu FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC", GetSQLValueString($colname_rs_sottomenu, "text"));

    [/PHP]


  • User

    che errore ti da?


  • User Attivo

    Questo qui:

    Parse error: syntax error, unexpected ',' in D:\inetpub\webs.....


  • User

    $query = ("SELECT COUNT(id),sottomenu FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC". GetSQLValueString($colname_rs_sottomenu, "text")


  • User Attivo

    Mi da errore
    Parse error: syntax error, unexpected T_VARIABLE in D:\inetpub\webs
    sulla riga:
    $result = mysql_query($query) or die (mysql_error());

    ho fatto così, posto il codice completo:

    [PHP]
    $colname_rs_sottomenu = "-1";
    if (isset($_GET['id_menu'])) {
    $colname_rs_sottomenu = $_GET['id_menu'];
    }

    mysql_select_db($database_conn, $conn);
    $query = ("SELECT COUNT(id),sottomenu FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC". GetSQLValueString($colname_rs_sottomenu, "text")
    $result = mysql_query($query) or die (mysql_error());
    while ($row = mysql_fetch_array($result));

    [/PHP]

    [PHP]
    //e poi stampo il sottomenù

    <?php echo $row_rs_sottomenu['sottomenu'] . " ( " . $totalRows_rs_sottomenu . " ) "; ?>

    [/PHP]


  • User

    Prova a mettere questa query
    $query = "SELECT COUNT(id),sottomenu FROM sottomenu WHERE id_menu = %s ORDER BY sottomenu ASC";