mysqli_query() mi ritorna un array vuoto anche se presente un record nella tabella

mazman

Nuovo Utente
27 Mar 2020
6
0
1
Ciao a tutti!
Sono al mio primo pgm in html/php.
Ho un problema che non riesco a risolvere e chiedo aiuto a qualche esperto che ringrazio anticipatamente.
Creato db; popolato da file csv; eseguito elenco record da visualizzare in tabella <table>; ad ogni record/riga tabella mostrata ho possibilità di modificare o eliminare record con pulstante ref xxxx.php passado le variabili che formano la kiave del db.(due campi).
Alla chiamata fino ad alcuni giorni fa funzionava e aprivo scheda con i dati già registrati e pronti ad essere modificati.
Da qualche giorno sembra che la query non restituisca dati
Non so più cosa fare !!!
PHP:
<?php

          include "includes/header.php";

          include "includes/connetti_db.php";


$avviso ="";

$msg ="";

$num=50;

dati passati da altra pagina

  $CODATT  = $_GET['var1'];

  $RAYON = $_GET['var2'];




$sql = 'SELECT * FROM fornitori WHERE  FO_CODATT = " '. $CODATT .' " AND FO_RAYON = " '. $RAYON .' " ';

  $result = mysqli_query($connessioneDB , $sql);

  if(!$result)

        {

              $avviso = ('Query fallita' . mysqli_error($connessioneDB) . mysqli_connect_errno());

         }

         else

         {

              $avviso = ('Query ok ' . mysqli_error($connessioneDB) . mysqli_connect_errno());

$num ++;

}


  while ($row = mysqli_fetch_array($result))

  {



  // istruzioni
$num ++;
}
              /*mysqli_free_result($result);*/

<h4><?php echo $avviso ."<br>" . $CODATT ."<br>" . $RAYON ."<br>" . $num ."<br>" . $row ; ?></h4>
ll risultato mi indica che non entra nel ciclo while pur essendo i dati passati ( $CODATT e $RAYON) corretti e presenti nel DB:
Query ok 0
MF000X
00
51
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@mazman
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
PHP (2).png

quando posti del codice php, oppure la funzione codice dalla barra degli strumenti


box inserisci.png



Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!
Grazie
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
= " '. $CODATT .' " A
sql prevede che i valori (non numeri) siano racchiusi tra apici, nella tua scrittura della query li hai racchiusi tra virgolette ed é sbagliato
sostituisci le virgolette con gli apici e viceversa

ps, se non l'hai modificata di recente, non ha mai funzionato …..
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@mazman
Ti ho chiesto di scrivere il codice usando i suoi tag! Per favore!

Leggi il regolamento
 

mazman

Nuovo Utente
27 Mar 2020
6
0
1
Chiedo venia al moderatore!! non avevo compreso il funzionamento e non trovavo le funzioni suggerite.
Spero che così sia corretto.

A marino51 grazie per il tuo commento

Ho provato tutte le combinazioni (se ho compreso bene anche il tuo suggerimento) che conosco ma il risultato è sempre lo stesso!!


PHP:
/*$query = "SELECT * FROM fornitori WHERE  FO_CODATT =' . $ATT . '  AND FO_RAYON =' . $RAY . '  ";*/
/*$query= 'SELECT * FROM fornitori WHERE  FO_CODATT =". $ATT . "  AND FO_RAYON =" . $RAY. "  ';*/
/*$query = 'SELECT * FROM fornitori WHERE  FO_CODATT = " '. $ATT .' " AND FO_RAYON = " '. $RAY .' " ';*/

/*$query = "SELECT * FROM fornitori WHERE  FO_CODATT =('{$ATT}')  AND FO_RAYON =('{$RAY}')";*/
$query = "SELECT * FROM fornitori WHERE  FO_CODATT =('{$CODATT}')  AND FO_RAYON =('{$RAYON}')";
 

mazman

Nuovo Utente
27 Mar 2020
6
0
1
Preciso che Le variabili $ATT e $RAY le ho inserite in prova per bypassare i valori ricevuti dalla pagina e valorizzate manualmente con dati presenti in tabella
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
PHP:
<?php

$CODATT = "qwerty";
$RAYON  = "zxcvbn";

$query = "SELECT * FROM fornitori WHERE  FO_CODATT = '" . $CODATT. "' AND FO_RAYON = '" . $RAYON . "'";

echo $query;

?>
1585387498486.png
 

mazman

Nuovo Utente
27 Mar 2020
6
0
1
ciao marino51
funziona parzialmente: cerco di spiegare

Se utilizzo
Codice:
/*variabili passate da pagina chiamante*/
$CODATT  = $_GET['var1'];
$RAYON = $_GET['var2'];

/*variabili definite*/
$ATT="MF000Y";
$RAY="0";

$query = "SELECT * FROM fornitori WHERE  FO_CODATT = '" . $CODATT. "' AND FO_RAYON = '" . $RAYON . "'";

/*controlli

while($row = mysqli_fetch_assoc($result))

  {
                            $RADICE=  $_POST['FO_RADICE'];
                            $CODORG =  $_POST['FO_CODORG'];
                            $CODATT  =  $_POST['FO_CODATT'];
                            $RAYON = $_POST['FO_RAYON'];
$num ++;
}

il risultato è sempre lo stesso cioè non entra nel ciclo while
Query ok 0
MF000Y
0
51



se utilizzo invece utilizzo

Codice:
$query = "SELECT * FROM fornitori WHERE  FO_CODATT = '" . $ATT. "' AND FO_RAYON = '" . $RAY . "'";

sembra entrare nel ciclo while ($num viene incrementato)
ma sembra non assegnare il nome alle variabili e ricevo questi msg di errore:

Notice: Undefined index: FO_RADICE in C:\xampp\htdocs\Fornitori - versione 3\modifica.fornitore.php on line 47

Notice
: Undefined index: FO_CODORG in C:\xampp\htdocs\Fornitori - versione 3\modifica.fornitore.php on line 48

Notice
: Undefined index: FO_CODATT in C:\xampp\htdocs\Fornitori - versione 3\modifica.fornitore.php on line 49

Notice
: Undefined index: FO_RAYON in C:\xampp\htdocs\Fornitori - versione 3\modifica.fornitore.php on line 50


Query ok 0
MF000Y
0
52
 

mazman

Nuovo Utente
27 Mar 2020
6
0
1
Si hai ragione post non centra nulla e li è un errore che ho corretto!
Codice:
$CODATT  =  $row['FO_CODATT'];
$RAYON    = $row['FO_RAYON'];

Tra i validi suggerimenti che mi hai dato uno in particolare mi è stato utilissimo :
echo $query;


Con questo, credo, ho probabilmente compreso perchè non mi entra nel ciclo:
questo è il risultato: SELECT * FROM fornitori WHERE FO_CODATT = ' MF111X ' AND FO_RAYON = ' 01'
1585420949544.png

il motivo per cui non funziona suppongo è il fatto che le variabili ricevute dalla pagina chiamante, la prima presenta uno spazio all'inizio e uno alla fine e la seconda uno spazio alla fine e non riesco ad eliminarli con la funzione LTRIM e RTRIM.
Se passo le variabili manualmente tutto funziona!!!
/*variabili definite*/
$ATT="MF000Y";
$RAY="01";
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
/*variabili passate da pagina chiamante*/
$CODATT = $_GET['var1'];
$RAYON = $_GET['var2'];
di solito dalla pagina chiamante i dati arrivano in $_POST
<form name="myForm" method="POST" action=......
ma probailmente hai forzato
<form name="myForm" method="GET" action=......
oppure li insrisci nella url che richiama lo script

quando ricevi dati da pagine precedenti e/o url, ti conviene sfruttare una funzione simile,
che aggiungi nello script (anche in fondo o in un include con le funzioni se é disponibile)
PHP:
function ValidateString($string) {
$val = htmlspecialchars( strip_tags( trim( $string ) ) );
$val = filter_var($val, FILTER_SANITIZE_STRING);
return $val;
}
che puoi richiamare così,
PHP:
$CODATT = ValidateString($_GET['var1']);
 

mazman

Nuovo Utente
27 Mar 2020
6
0
1
Buongiorno marino51 e grazie ancora per la pazienza e gli utilissimi suggerimenti

l'unico modo che mi sono inventato per richiamare la pagina passando le vaiabili è questo:

Codice:
echo   "<td> <a  href='modifica.forntore.php?var1= " .$CODATT. " &var2= " .$RAYON. "' title='Vai alla scheda per modificare Fornitore'   class='riga_tab'><i class='fas fa-edit fa-2x-1x' ></i>  </a></td>";

essendo in una tabella che mostra i dati non credo sia possibile inserire un form con input


Comunque avrei risolto il problema con questo semplice controllo nella pagina chiamata

Codice:
$CODATT = str_replace(" ", "", $CODATT);
$RAYON = str_replace(" ", "", $RAYON);

e sembra che funzioni!!!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Non mi funziona la connessione/query mysqli. Ma perché? PHP 1
A query mysqli prepared statements PHP 0
G phpmailer e php 8.1 con estensione mysqli PHP 6
D convertire questo stringa in mysqli PHP 4
S PHP e Mysqli PHP 0
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
gandalf1959 Estrazione e visualizzazione del simbolo dell'euro php/mysqli PHP 0
T Aiuto per php7 e mysqli PHP 3
C file - mysqli PHP 1
C mysqli ! PHP 1
maxnegri Sommare i prezzi dei prodotti aggiunti al carrello di diverse aziende con Select sum php mysqli PHP 10
maxnegri [PHP] Eliminare risultati duplicati da ciclo foreach ottenuti da una select php mysqli PHP 18
gandalf1959 Passaggio da mysql a mysqli PHP 13
F [PHP + MYSQLI] Stampa a video di una tabella nel database PHP 4
M Problema con connessione MySqli e funzione PHP 2
A Conversione Codice da mysql a mysqli Database 1
W [PHP] Visualizzare errori su Statements in MySQLi PHP 3
elpirata [Cerco][Gratuito]Cerco collaboratori per realizzazione piccolo gestionale Mysqli+Php Offerte e Richieste di Lavoro e/o Collaborazione 6
elpirata Porting mysql a mysqli PHP 13
M database mysqli con tasto dettaglio PHP 2
marini91 Update record in mysqli PHP 1
P Warning: mysqli_query() expects parameter 1 to be mysqli PHP 2
M Problema errori su mysqli PHP 4
M Sostituire le funzioni mysql con mysqli, ma quali? PHP 4
P problemi con mysqli PHP 19
L Visibilità connessione Db con MySQLi in funzioni definite dall'utente PHP 0
M Dati vecchi con mysqli MySQL 4
F mysqli creare una select con valori dal db PHP 4
P problema conessione dati con mysqli PHP 2
kanzy XML->MySQLi: memorizza solo l'ultimo record PHP 3
M Passare dati in un array da statement mysqli PHP 2
M PDO e mysqli PHP 1
S Problema con mysqli PHP 2
G Passare da Mysqli a Mysql PHP 1
P problemi con mysqli PHP 16
N ciao a tutti ho bisogno di aiuto con l'estensione mysqli?? MySQL 0
alankanz PDF editabili gestirli in PHP e MySqli PHP 0
alankanz dividere risultati in pagine MySqli PHP 4
alankanz Suddividere risultati MySqli PHP 0
A SQL ERROR [ mysqli ] MySQL 2
P problemi con l'estensione mysqli PHP 5
L [php/mysqli] Tag come funzionano? PHP 2
P problemi ricerca record con mysqli PHP 14
P Primo approccio con mysqli PHP 6
H [RISOLTO]Problema connessione + insert mysqli PHP 10
criric Mysqli funzioni . approccio OOP Snippet PHP 0
F Sistema anti MySQLi Injection? PHP 6
P Errore connessione mysqli PHP 5
S Meglio mysqli o PDO ? PHP 2
A Classe per connessione MySqli PHP 6

Discussioni simili