91³Ô¹ÏÍø

Watch CBS News

Serious charges in Grays Ferry mass shooting will be held, Philadelphia judge rules

A Philadelphia Municipal Court Judge ruled Thursday that the most serious charges against four of six defendants in the Grays Ferry mass shooting from last summer will be held for trial.

For the first time, families of the victims and defendants watched a video from the night of July 7, 2025, that showed 14 solid seconds of gunfire. Prosecutors said 15 guns were fired and 145 pieces of ballistic evidence were recovered.

Thirteen people were shot in a hail of gunfire, including three who died.

Among them was Azir Harris. His parents were in court as a doorbell camera video played showing the deadly mass shooting near the intersection of Etting and Dickinson streets. 

"It hurts to see that. To see your child or any child out on the street go through that," Troy Harris, Azir's father, said. "Try to keep prayers up, keep pushing, it's really hard. It's breathtaking. That's just what it is — breathtaking."

"It was painful, it was painful seeing my baby helpless," Debra Richardson, Azir's mother, said. "He was there to drop off friends, but I didn't expect that would never come back home."

Jason Reese and Zahir Wiley were also killed in the shooting. Wiley's mother said life is not the same.

"Everybody else can go back to their life. I can't. July 7 was over for me," Markeisha Manigault, Wiley's mother, said.

In court, prosecutors used surveillance video and messages from social media alleging the defendants were at the scene that night and firing weapons. 

Defense attorneys for defendants Terrell Frazier, Daquon Brown, Dieve Jordain and Brandon Fisher argued the evidence didn't show intent to kill, and said there was no conspiracy among the co-defendants. The judge responded intent is where the bullet goes.

The judge found there was enough evidence to keep third degree murder and other charges for trial. He tossed conspiracy, attempted murder and risking a catastrophe counts.

Parents said life after the deadly shooting in Grays Ferry is a struggle.

"It's on the parents to pick up the pieces, and it's like a domino effect can hurt generation and generations and we're trying to clean that up in society," Troy Harris said.

Two other defendants will be back in court for their preliminary hearings in a few weeks. The four defendants in court Thursday will be arraigned next month. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });