Contar cantidades en lugar de número de filas - MySQL/PHP

Hice una pregunta sobre mi consulta SQL hace un tiempo y funcionó bien hasta que noté que había olvidado una parte muy importante del código y ahora pasé aproximadamente una hora y media tratando de modificar mi código. La pregunta original planteaba una buena manera de unir internamente dos tablas (orders y order_items). Luego hice mysql_num_row() sobre la consulta SQL y lo detuve. Olvidé que hay una celda en mi tabla order_items llamada cantidad. Necesito integrar esto en mi conteo. Incluyo mi código a continuación, y agradecería cualquier idea sobre cómo implementar esto fácilmente.

$SQL2ORDERSEARCH = "
SELECT * FROM order_items
INNER JOIN orders
ON orders.id = order_items.ord
WHERE orders.session = '$sessionID'
AND order_items.dish = '$SEARCHITEMS_OBJECT->dish'
AND order_items.size = 'full'";

$ORDERSEARCH = mysql_query($SQL2ORDERSEARCH) or die(mysql_error());
$ORDERSEARCH_NUM_ROWS = mysql_num_rows($ORDERSEARCH);
$FULLTOTAL = $FULLTOTAL + $ORDERSEARCH_NUM_ROWS;

Traté de intentar una ruta diferente haciendo un conteo. Así que modifiqué mi consulta como tal:

$SQL2ORDERSEARCH = "
SELECT COUNT(quantity) FROM order_items
INNER JOIN orders
ON orders.id = order_items.ord
WHERE orders.session = '$sessionID'
AND order_items.dish = '$SEARCHITEMS_OBJECT->dish'
AND order_items.size = 'full'";

Técnicamente no necesito nada más ya que todo lo que intento hacer es contar cuántos platos están involucrados aquí. Luego creé una declaración if para determinar si había filas provenientes de esta consulta y luego calculé la cantidad de ellas.

if($ORDERSEARCH_NUM_ROWS > 0 ) {
   while($ORDERSEARCH_OBJECT = mysql_fetch_object($ORDERSEARCH)) {
      $FULLQTY = COUNT($ORDERSEARCH_OBJECT->quantity);
   }
}

He obtenido resultados mixtos. A veces obtengo solo 1 directo en la tabla de datos. Otras veces (dependiendo de cualquier cambio pequeño como $FULLQTY += COUNT($ORDERSEARCH_OBJECT->quantity); y al intentarlo) obtengo resultados en los que parece casi un patrón con los números aumentando en 5+ y de alguna manera sumando casi 20+ cuanto más abajo vayas en la lista.

Solo estoy buscando una manera fácil de obtener el recuento de la celda de cantidad en order_items, mostrándolos en una tabla y luego calculando un total. Tengo todo bien y elegante menos obtener el recuento de la celda de cantidad en order_items. Cualquier idea, lo agradecería mucho!

preguntado el 22 de mayo de 12 a las 16:05

Después de seguir trabajando, usé SUM() pero tuve que configurarlo como SELECCIONAR SUMA (cantidad) AS cantidadTotal en mi consulta. Útil saber usar SUM() pero inútil en todos los demás sentidos. No votando a nadie por sus respuestas en este caso. -

1 Respuestas

¿No sería un simple seleccionar suma (cantidad) Trabaja aquí ?

contestado el 22 de mayo de 12 a las 16:05

Cuando intenté la SUMA (cantidad), recibí resultados en blanco o 1 en todos los ámbitos. Sé que hay más de uno de cada elemento en mis resultados, así que sé que no estoy obteniendo los resultados correctos. Disculpe por ser bastante lento en esto, ya que no soy el mejor en mucho con SQL más allá de las selecciones/inserciones/actualizaciones/eliminaciones básicas. - lxndr

Después de seguir trabajando, usé SUM() pero tuve que configurarlo como SELECCIONAR SUMA (cantidad) AS cantidadTotal en mi consulta. Útil saber usar SUM() pero inútil en todos los demás sentidos. No votando a nadie por sus respuestas en este caso. - lxndr

No estoy seguro de entender tu punto: Sum era el camino a seguir, ¿no? ¿Qué es lo que no fue útil? Si nuestras respuestas no lo ayudaron, agregue una respuesta propia con lo que hizo para resolver el problema y márquela como la respuesta. - Yahel

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.