Problemi tra GROUP BY e tabella 'datagrid.class.php'

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
760
4
18
Buongiorno, come da titolo vorrei visualizzare i dati estratti con GROUP BY in una tabella datagrid.class.php, ma quando lancio la query mi da questo errore: Cannot detect primary key
questo è il codice utilizzato
PHP:
<?php
    // richiamo lo script di Connessione
require 'Connessione.php';

$query = "SELECT *
FROM tblverbali
WHERE PraticaConclusa = 'No'
GROUP BY CodiceFiscale
ORDER BY AnnoSinistro, Nominativo";
$risultato = @mysql_query($query, $myconn) or die("Impossibile eseguire l'interrogazione.");

    if(mysql_num_rows($risultato) == 0)
    {
        exit
         ("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
style=\"color:black; font-family:arial; font-size: 14pt\"><b><span
style=\"color:red; font-size: 14pt\"><span style=\"color:red;
font-size: 14pt\"><i><br><br></span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nessun verbale da inserire...<span
style=\"color:black; font-family:arial; font-size: 14pt\"><b><span
style=\"color:blue height:1;width:1; background-color:red\"><span style=\"color:white;
font-size: 14pt\"><i><br><br>Tutti i sinistri risultano avere i verbali conlusi!  <br>Per inserire un nuovo verbale devi inserire un nuovo sinistro inserendo il nome del Richiedente!
</span></span></span></span>&nbsp;</span><a href='Utente_Insert.php'><img src='../images/InserisciUtente.jpg' title='Inserisci nuovo utente' border='0' alt='Forum'/></a>");

    ?>
<form>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input
style="color:blue" type="submit" value=" Back " onclick="this.form.action='MenuPrincipale.php?var=value'"/>
<?php

("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span
style=\"color:black; font-family:arial; font-size: 14pt\"><b><span
style=\"color:blue; font-size: 14pt\"><span style=\"color:red;
font-size: 14pt\"><i>Nessun verbale da visualizzare...<span
style=\"color:black\"><span style=\"color:blue>");

    }else{
$query = "SELECT *
FROM tblverbali
WHERE PraticaConclusa = 'No'
GROUP BY CodiceFiscale
ORDER BY AnnoSinistro, Nominativo";
    
   }

//---------------------------------------------
// open the connection to the db server
$link = mysql_connect($host,$user,$password);
include ('datagrid.class.php');
// Print HTML
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
echo '<html xmlns="http://www.w3.org/1999/xhtml">';
echo '<head>';
echo '<meta http-equiv="Content-Type"
     content="text/html; charset=iso-8859-1" />';
echo '<title>Visualizza verbali</title>';
echo '<link href="styles.css" rel="stylesheet" type="text/css" />';
echo '</head><body>';
// Use datagrid class with full options
$mydatagrid = & new datagrid($link,$database,$query,150);
$mydatagrid->setLinkPage("Edit_Verbali.php?id");
$mydatagrid->setLinkLabel("<img src='../images/Edit.gif' alt='edit' />");
$mydatagrid->setLinkTitle("modifica");
$mydatagrid->setPrev("<img src='../images/prev.gif' alt='previous' />");
$mydatagrid->setNext("<img src='../images/next.gif' alt='next' />");
$mydatagrid->setPkIsVisible(true);
?>
<span class="itembold" style="color:RED; left:100%; margin:10px 0 0 250px; font-family:arial; font-size: 24pt"> Elenco verbali delle pratiche non concluse &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>
    <?php
$mydatagrid->setSummaryTable("Visualizza i verbali delle pratiche non concluse");
$mydatagrid->setCaptionTable("Elenco verbali");
$mydatagrid->makeTable();
echo '</body></html>';

//INIZIO CONTEGGIO RECORD TROVATI
$risultato = mysql_query($query);
$totale = mysql_num_rows($risultato);
echo "Totale record trovati: ", "$totale <br>";
//FINE CONTEGGIO RECORD TROVATI
?>
Qualche idea?
Grazie Max61
 
ciao
così a naso, dato l'errore che ti riporta, sembrerebbe che l'errore dipenda da come hai fatto la tabella tblverbali.
hai messo un id primarykey autoincrement?
 
Ok
PHP:
-- phpMyAdmin SQL Dump
-- version 4.4.7deb1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Creato il: Gen 26, 2017 alle 11:29
-- Versione del server: 5.5.43-0+deb7u1
-- Versione PHP: 5.5.12-2

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `gestionesinistri`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `tblverbali`
--

CREATE TABLE IF NOT EXISTS `tblverbali` (
  `idverbali` int(11) NOT NULL,
  `tblanagrafica_id` int(11) NOT NULL,
  `NumPratica` int(11) NOT NULL,
  `Nominativo` varchar(255) NOT NULL,
  `CodiceFiscale` varchar(16) NOT NULL,
  `NumVerbale` int(10) NOT NULL,
  `DataVerbale` varchar(15) NOT NULL,
  `__________DecisioneGIL__________` text NOT NULL,
  `NoteVerbale` text NOT NULL,
  `StatoPratica` text NOT NULL,
  `AnnoSinistro` int(4) NOT NULL,
  `RespVerdeUrbano` varchar(255) NOT NULL,
  `RespPM` varchar(255) NOT NULL,
  `Legale1` varchar(255) NOT NULL,
  `Legale2` varchar(255) NOT NULL,
  `UfficioAttivitaAssicurative` varchar(255) NOT NULL,
  `CompagniaAssicurativa` varchar(255) NOT NULL,
  `RespEconomato` varchar(255) NOT NULL,
  `RespTecnico` varchar(255) NOT NULL,
  `RespComAssicurativa` varchar(255) NOT NULL,
  `Rinviato` varchar(2) NOT NULL,
  `RespTerzi` varchar(2) NOT NULL,
  `CitazioneGiudizio` varchar(255) NOT NULL,
  `Franchigia10000` varchar(2) NOT NULL,
  `TrasmessaCompetenza` varchar(2) NOT NULL,
  `PraticaConclusa` varchar(2) NOT NULL,
  `Parere` varchar(255) NOT NULL,
  `SommaLiquidata` decimal(7,2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indici per le tabelle scaricate
--

--
-- Indici per le tabelle `tblverbali`
--
ALTER TABLE `tblverbali`
  ADD PRIMARY KEY (`idverbali`);

--
-- AUTO_INCREMENT per le tabelle scaricate
--

--
-- AUTO_INCREMENT per la tabella `tblverbali`
--
ALTER TABLE `tblverbali`
  MODIFY `idverbali` int(11) NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 
ciao
da quello che vedo la tabella sembrerebbe ok, l'identificativo si chiama idverbali è PRIMARY KEY e AUTO_INCREMENT
fai una semplice prova
PHP:
<?php
//dati connessione
$query="SELECT idverbali FROM tblverbali";
if(mysql_query($query)){
    echo "id trovati";
}else{
    echo "ERRORE non si trovano gli id";
}
?>
poi con calma vedo di dare un occhio allo script che hai postato
 

Discussioni simili