• Home
  • Forum
  • Fare Web
  • PHP

MySql in un popup

  • Creatore Discussione Creatore Discussione paparucino
  • Data di inizio Data di inizio 8 Mag 2011
P

paparucino

Nuovo Utente
8 Mag 2011
10
0
1
  • 8 Mag 2011
  • #1
Ciao a tutti,
ho un problema di questo genere:
uno script php legge e mostra i dati di un database. Se lo script viene eseguito in una normale pagina del browser tutto funziona correttamente (accesso a Mysql, ricerca e display dei dati)
Se provo a far eseguire lo script dall interno di una popup window ho un messaggio d'errore.
Il popup si apre e al suo interno compare
Codice:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /media/hdb1/foo/Gestione/libri/printer1.php on line

Il codice per l'accesso ai dati nel DB è il seguente

Codice:
...
$db = mysqli_connect($db_host,$db_user, $db_password) or die('Connessione a MySql fallita. Controllare i dati di configurazione: ' . mysqli_connect_error($db));
mysqli_select_db($db,$db_name) or die('Selezione del DB fallita. Controllare il nome del DataBase: ' . mysqli_error($db));

$result = mysqli_query($db,"SELECT * FROM $db_table WHERE $option LIKE \"%$cerca%\"  ORDER BY $sort LIMIT 0,1000");
$num_rows = mysqli_num_rows($result);
....

Lo script che attiva il popup viene attivato in questo modo

Codice:
<script language="javascript" type="text/javascript">
<!--
function popitup(url) {
	newwindow=window.open(url,'name','height=300,width=400');
	if (window.focus) {newwindow.focus()}
	return false;
}

// -->
</script>

..........

<form method='post' name='alfa' action='printer1.php'  onSubmit="return popitup('printer1.php')" >
<input type = 'hidden' name = 'opzione' value = "<?php echo $option; ?>" />
<input type = 'hidden' name = 'testo' value = "<?php echo $cerca; ?>" />
<input class = 'input' value = 'Print' type = 'submit'/>
</form>



Qualche idea?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 8 Mag 2011
  • #2
Prova a sostituire questa riga:
PHP:
$result = mysqli_query($db,"SELECT * FROM $db_table WHERE $option LIKE \"%$cerca%\"  ORDER BY $sort LIMIT 0,1000");
Con questa:
PHP:
$result = mysqli_query($db,"SELECT * FROM $db_table WHERE $option LIKE \"%$cerca%\"  ORDER BY $sort LIMIT 0,1000") or die(mysqli_error($db));
E vedi quale errore ti restituisce.
 
P

paparucino

Nuovo Utente
8 Mag 2011
10
0
1
  • 8 Mag 2011
  • #3
Ecco cosa mi sono empre dimenticato di fare!!! mettere "or die....."
grazie per avermelo ricordato.
Cmq l'errore che ricevo è il seguente

Codice:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE "%%" ORDER BY LIMIT 0,1000' at line 1

Ho visto il problema, non riceve la variabile $cerca. Come posso sopperire a ciò?

Grazie ancora per il "die"
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 8 Mag 2011
  • #4
Puoi postare tutto lo script PHP per la ricerca nel database?
 
P

paparucino

Nuovo Utente
8 Mag 2011
10
0
1
  • 8 Mag 2011
  • #5
Eccolo:

'testo' e 'opzione' sono passati a questo script dal form di cui al primo post di questo thread

Codice:
.....
$cerca = trim($_POST['testo']);
$option = trim($_POST['opzione']);

switch ($option){
    case 'cognome': $sort = 'titolo'; break;
    case 'titolo': $sort = 'titolo'; break;
    case 'originale': $sort = 'cognome'; break;
    case 'genere': $sort = 'cognome'; break;
    case 'edizioni': $sort = 'edizioni'; break;
    case 'ISBN': $option = 'isbn'; $sort = 'isbn'; break;
}


$db_host = 'xxxx';
$db_user = 'xxxxxxxxxxx';
$db_password = 'xxxxxxx';
$db_name = 'books';
$db_table ='libreria';


$db = mysqli_connect($db_host,$db_user, $db_password) or die('Connessione a MySql fallita. Controllare i dati di configurazione: ' . mysqli_connect_error($db));
mysqli_select_db($db,$db_name) or die('Selezione del DB fallita. Controllare il nome del DataBase: ' . mysqli_error($db));

$result = mysqli_query($db,"SELECT * FROM $db_table WHERE $option LIKE \"%$cerca%\"  ORDER BY $sort LIMIT 0,1000") or die(mysqli_error($db));
$num_rows = mysqli_num_rows($result);
if ($num_rows <= 0 )
{die('<b class="die">'.ucwords($cerca).'  <---doesnt exist</b><br /><br /><br /><br /><br />');}
$i = 1;
while ($row = mysqli_fetch_array($result))
{ 
...
}

segue l'elaborazione dei dati lrtti
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 9 Mag 2011
  • #6
L'unica soluzione è usare GET. Modifica il form così:
HTML:
<form method='get' name='alfa' action='printer1.php'  onSubmit="return popitup('printer1.php')" >
<input type = 'hidden' name = 'opzione' value = "<?php echo $option; ?>" />
<input type = 'hidden' name = 'testo' value = "<?php echo $cerca; ?>" />
<input class = 'input' value = 'Print' type = 'submit'/>
</form>
E queste due righe:
PHP:
$cerca = trim($_POST['testo']);
$option = trim($_POST['opzione']);
Così:
PHP:
$cerca = trim($_GET['testo']);
$option = trim($_GET['opzione']);
Assicurati di non visualizzare la barra degli indirizzi nel popup.
 
P

paparucino

Nuovo Utente
8 Mag 2011
10
0
1
  • 9 Mag 2011
  • #7
Grazie, ora vado a vedere come togliere la barra degli indirizzi dal popup poi provo e ti farò sapere
 
P

paparucino

Nuovo Utente
8 Mag 2011
10
0
1
  • 9 Mag 2011
  • #8
Dopo aver googlato un pò ho modificato la funzione che apre il popup in questo modo
Codice:
<script language="javascript" type="text/javascript">
<!--
function popitup(url) {
	newwindow=window.open(url,'name','height=300,width=400,[COLOR="red"]directories=no,location=no,menubar=no,toolbar=no[/COLOR]');
	if (window.focus) {newwindow.focus()}
	return false;
}

// -->
</script>
ho modificato i codici come mi hai suggerito ma ovviamente non funziona e la barra degli indirizzi è sempre lì minacciosa.
Altre ricerche su google e ho scoperto che, se è vero, non è possibile disabilitare tale barra. va detto che sostanzialmente si riferivano a IE7 e 8, ma non funziona neppure in Firefox, Opera, Chrome.
Qualche idea?

Dimenticavo... uso linux, non Windows
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 9 Mag 2011
  • #9
Sono stato sciocco io, scusami. La soluzione che ho proposto non risolve assolutamente il tuo problema. Domani ti spiegherò come fare.
 
P

paparucino

Nuovo Utente
8 Mag 2011
10
0
1
  • 10 Mag 2011
  • #10
Grazie, sei molto gentile e soprattutto paziente
 
P

paparucino

Nuovo Utente
8 Mag 2011
10
0
1
  • 10 Mag 2011
  • #11
Devo fare pubblica ammenda.
Le indicazioni che mi hai dato vanno benissimo. Se forzo i dati i dati nel file printer1.php il popup mostra correttamente i dati di MySql.
Nel fare prove/misure/tentativi ho sicuramente introdotto un errore per cui il get/post non funzionano correttamente.
Sto indagando.

Grazie infinite per la'iuto e scusami ancora per il tempo che ti ho fatto perdere
 
P

paparucino

Nuovo Utente
8 Mag 2011
10
0
1
  • 10 Mag 2011
  • #12
Ahemmm... eccomi ancora qua perchè il problema non è risolto.
Ho corretto l'errore che mi ha portato fuori strada, ora se non uso il popup è tutto OK, ma se provo ad indirizzare lo stesso script nel popup i dati del form non vengono ricevuti dallo script.

Queste solo le prime tre linee di printer1.php e vengono visualizzate solo i 4 trattini
Codice:
<?php
$cerca = trim($_GET['testo']);
$option = trim($_GET['opzione']);
echo $cerca." ---- ".$option;
.....
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 11 Mag 2011
  • #13
Come metodo di invio rimetti POST, e cambia così l'evento onsubmit del form:
HTML:
return popitup('printer1.php?opzione=' + document.alfa.opzione.value + '&testo=' + document.alfa.testo.value)
Fammi sapere.
 
P

paparucino

Nuovo Utente
8 Mag 2011
10
0
1
  • 11 Mag 2011
  • #14
Ho provato ma non funziona, però cercando negli angoli più oscuri della rete ho trovato una noticina con la soluzione.
Praticamente il form deve essere costruito come qua sotto (in rosso le varianti rispetto al mio originale):

Codice:
<form method='POST' name='alfa' action='printer1.php'[B][COLOR="red"] target='nuovapagina'[/COLOR][/B]>
<input type = 'hidden' name = 'opzione' value = "<?php echo $option; ?>" />
<input type = 'hidden' name = 'testo' value = "<?php echo $cerca; ?>" />
<input class = 'input' value = 'Print' type = 'submit' [B][COLOR="red"]onClick="window.open('','nuovapagina','width=200,height=200');"[/COLOR][/B]/>
</form>

In questo modo funziona come un violino e sono molto felice.

Ancora grazie infinite per l'aiuto
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
27
Roma
alessandro1997.netsons.org
  • 11 Mag 2011
  • #15
Beh, l'importante è aver risolto. Grazie per aver postato la soluzione.
 
Devi accedere o registrarti per poter rispondere.

Discussioni simili

M
Personalizzare Mysql su una macchina VPS in Aruba
  • morenog
  • 14 Gen 2025
  • Server Dedicati e VPS
Risposte
0
Visite
696
Server Dedicati e VPS 14 Gen 2025
morenog
M
S
Utilizzare MySql con maschere Access
  • staiul
  • 27 Nov 2024
  • MySQL
Risposte
0
Visite
342
MySQL 27 Nov 2024
staiul
S
K
form Inserimento record mysql
  • Kiko74b
  • 21 Gen 2023
  • PHP
Risposte
2
Visite
1K
PHP 25 Gen 2023
WmbertSea
P
Mysql lento a cancellare
  • paolo.ladoni
  • 18 Nov 2022
  • MySQL
Risposte
1
Visite
1K
MySQL 22 Nov 2022
marino51
P
Codifica caratteri speciali mysql php
  • Peterrey76
  • 24 Ott 2022
  • PHP
Risposte
2
Visite
2K
PHP 23 Apr 2025
webest
N
MAX() + ADD_DATE - per update su Mysql
  • Namaste!
  • 20 Lug 2022
  • MySQL
Risposte
0
Visite
2K
MySQL 20 Lug 2022
Namaste!
N
F
Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili
  • Fra_23
  • 25 Giu 2022
  • PHP
  • 2
Risposte
20
Visite
4K
PHP 16 Lug 2022
zorro
L
tipo boolean non funzionante su mariadb (mysql). E codice php 7.4.
  • luigi777
  • 18 Giu 2022
  • PHP
Risposte
0
Visite
810
PHP 18 Giu 2022
luigi777
L
M
PHP/MySQL - Estrarre valori min e max di ogni gruppo
  • Max61
  • 10 Giu 2022
  • PHP
Risposte
5
Visite
2K
PHP 13 Giu 2022
Max61
M
W
MySQL ciclo in SELECT
  • wolfland
  • 26 Mag 2022
  • MySQL
Risposte
0
Visite
2K
MySQL 26 Mag 2022
wolfland
W
L
Mysql gestionale multipiattaforma
  • lucavalentino
  • 7 Apr 2022
  • MySQL
Risposte
0
Visite
2K
MySQL 7 Apr 2022
lucavalentino
L
W
MySQL SELECT list dinamica
  • wolfland
  • 2 Feb 2022
  • MySQL
Risposte
0
Visite
2K
MySQL 2 Feb 2022
wolfland
W
M
utilizzo mysql in nodejs - crea createdAt e updateAt
  • misonsan
  • 31 Dic 2021
  • MySQL
Risposte
1
Visite
3K
MySQL 31 Dic 2021
misonsan
M
T
colonne di tabelle mysql ordinate
  • twogate
  • 28 Nov 2021
  • MySQL
Risposte
0
Visite
2K
MySQL 28 Nov 2021
twogate
T
M
Sintassi "personalizzata" per mysql workbench?
  • mattiac
  • 27 Set 2021
  • MySQL
Risposte
0
Visite
3K
MySQL 27 Set 2021
mattiac
M
A
Mysql
  • andreainter
  • 26 Ago 2021
  • MySQL
Risposte
0
Visite
1K
MySQL 26 Ago 2021
andreainter
A
F
Ricreare struttura php+mysql su Xampp
  • francescoITA
  • 23 Ago 2021
  • Apache
Risposte
0
Visite
6K
Apache 23 Ago 2021
francescoITA
F
M
Array associativi php su 2 campi mysql
  • maxnegri2036
  • 14 Ago 2021
  • PHP
Risposte
10
Visite
2K
PHP 16 Ago 2021
zorro
Z
Controllo giorni MYSQL
  • z.cristiano
  • 28 Giu 2021
  • PHP
Risposte
0
Visite
1K
PHP 28 Giu 2021
z.cristiano
Z
L
php mysql non salva solo id
  • luigithen
  • 23 Apr 2021
  • PHP
  • 2
Risposte
21
Visite
3K
PHP 25 Apr 2021
luigithen
L
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?