Problema con versioni diverse di PHP

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
Ciao a tutti. Sto studiando php per un'esame di informatica però abbiamo un libro che fa riferimento a script php di una versione precedente rispetto a quella che dobbiamo usare. Stiamo usando la versione easyphp 2.0b1 il problema è quando andiamo a fare query per i database.
ovvero nella parte id del codice.
Vi riporto una parte dell'esercizio che stavo facendo:

<HTML>
<BODY>
<?php
# see_rec.php
# include il file esterno
include ("test_holding_inc.php");

$sql="SELECT * FROM nomi WHERE ID = '$ID_record'";

$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);

if ( $num_righe == 0 ) {
echo "Spiacente, non ci sono informazioni";
} else {
# abbiamo dei risultati
echo "<TABLE ALIGN=\"CENTER\" BORDER=\"3\">";
echo "<TR><TH>nome</TH><TH>Indirizzo</TH><TH>Città</TH><TH>Paese</TH></TR>";

while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga["nome"];
$indirizzo=$riga["indirizzo"];
$città=$riga["città"];
$paese=$riga["paese"];
$ID=$riga["ID"];
# mostra i risultati
echo "<TR><TD>$nome</TD><TD>$indirizzo</TD><TD>$città</TD><TD>$paese</TD></TR>";
}
} # fine dell'else
mysql_close($connessione);
?>

</TABLE>
<BR><A HREF="per_selection.php"> Indietro</A>
</BODY>
</HTML>

Nella parte $sql="SELECT * FROM nomi WHERE ID = '$ID_record'"; c'è un problema con la variabile ID perchè quando vado a testare il form mi restituisce un errore a questa riga per variabile id non definita. Cosa dovrei mettere per defirla? grazie dell'aiuto.
Sara
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Potresti riportare il testo esatto dell'errore che ti compare ed il contenuto del file "test_holding_inc.php"?
 

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
Ho modificato qualcosa perchè c'erano errori il file è diventato questo:

<HTML>
<BODY>
<?php
include ("connessione mysql e database.php");

$ID_record=$_GET['ID_record'];
$sql="SELECT * FROM nomi WHERE ID = '$ID_record'";

$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);

if ($num_righe == 0) {
echo "Spiacente, non ci sono informazioni";
} else {

echo "<TABLE ALIGN=\"CENTER\" BORDER=\"3\">";
echo "<TR><TH>Nome</TH><TH>Indirizzo></TH><TH>citta</TH><TH>Paese</TH></TR>";

while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga['nome'];
$indirizzo=$riga['indirizzo'];
$citta=$riga['citta'];
$paese=$riga['paese'];
$ID=$riga['ID'];

echo "<TR><TD>$nome</TD><TD>$indirizzo</TD><TD>$citta</TD><TD>$paese</TD></TR>";
}
}
mysql_close($connessione);
?>
</TABLE>
<BR><A HREF="html1pag325.php">Indietro</A>
</BODY>
</HTML>

L'errore che mi da è:
Notice: Undefined index: ID in C:\Program Files\EasyPHP 2.0b1\www\Esercizi per esame\MySQL\form1.php on line 25

Poi mi fa vedere la tabella con i dati però
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
La riga incriminata è questa:

PHP:
$ID=$riga['ID'];

Attenzione che PHP è case-sensitive, non è che nel DB il campo si chiama "id" o "Id" e non "ID" come hai scritto?

Prova a fare:

PHP:
print_r($riga);

così vediamo i nomi degli indici.
 

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
no è cosi, ho anche provato a metterlo minuscolo perchè non ricordavo ma se faccio così non mi da informazioni.
Io credo che il problema stia nel fatto che lo script è stato fatto su una versione vecchia di php e io ho l'ultima la 2.0b1 penso sia per questo che non mi viene giusto.
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Puoi modificare così questa parte di codice:

PHP:
while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga['nome'];
$indirizzo=$riga['indirizzo'];
$citta=$riga['citta'];
$paese=$riga['paese'];
$ID=$riga['ID'];
print_r($riga);
echo "<TR><TD>$nome</TD><TD>$indirizzo</TD><TD>$citta</TD><TD>$paese</TD></TR>";
}
 

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
fatto mi da cmq
Notice: Undefined index: ID_record in C:\Program Files\EasyPHP 2.0b1\www\Esercizi per esame\MySQL\form1.php on line 6
Spiacente, non ci sono informazioni
Indietro
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
La pagina 'form1.php' fa riferimento ad una variabile passata tramite GET. Quindi dovrà esserci un'altra pagina con una form che richiama questo script PHP. L'errore indica che lo script PHP è stato richiamato direttamente e quindi l'array GET è vuoto. Credo che sia da richiamare la pagina 'html1pag325.php'
e da lì ci sia poi la form, etc...
 

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
Si l'altro file è questo

<html>
<body>
<center><b><u><i>VISUALIZZA I RECORD DELLA TABELLA PERSONALE</i></u></b></center>
<?php
include ("connessione mysql e database.php");

$sql="SELECT nome,ID FROM nomi";
$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);
if ($num_righe == 0) {
echo "spiacente, non ci sono informazioni";
} else {
echo "<FORM METHOD=GET ACTION=\"form1.php\">";
echo "Per favore, seleziona una persona <br>";
echo "<SELECT NAME=\"ID_record\">";
while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga["nome"];
$ID=$riga["ID"];
# mostra i risultati
echo "<OPTION VALUE=\"$ID\" >$nome";

}
echo "</SELECT>";
} # fine dell'else
echo "<BR><BR>";
echo "<INPUT TYPE=\"SUBMIT\" VALUE=\"Vedi le informazioni!\">";
echo "<INPUT TYPE=\"RESET\" VALUE=\"Cancella!\">";
mysql_close($connessione);
?>
</FORM>
</BODY>
</HTML>
 

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
Si l'altro file è questo

<html>
<body>
<center><b><u><i>VISUALIZZA I RECORD DELLA TABELLA PERSONALE</i></u></b></center>
<?php
include ("connessione mysql e database.php");

$sql="SELECT nome,ID FROM nomi";
$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);
if ($num_righe == 0) {
echo "spiacente, non ci sono informazioni";
} else {
echo "<FORM METHOD=GET ACTION=\"form1.php\">";
echo "Per favore, seleziona una persona <br>";
echo "<SELECT NAME=\"ID_record\">";
while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga["nome"];
$ID=$riga["ID"];
# mostra i risultati
echo "<OPTION VALUE=\"$ID\" >$nome";

}
echo "</SELECT>";
} # fine dell'else
echo "<BR><BR>";
echo "<INPUT TYPE=\"SUBMIT\" VALUE=\"Vedi le informazioni!\">";
echo "<INPUT TYPE=\"RESET\" VALUE=\"Cancella!\">";
mysql_close($connessione);
?>
</FORM>
</BODY>
</HTML>
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
E richiamando questo file non da nessun errore e ti fa vedere l'elenco degli ID presenti nella tabella?

Ps. Il tag OPTION sarebbe meglio chiuderlo!

PHP:
echo "<OPTION VALUE=\"$ID\" >$nome</OPTION>";
 
Ultima modifica:

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
Grazie mille.. ho riprovato ora e con i tuoi consigli sono riuscita a trovare l'errore. nel database l'id l'ho scritto minuscolo era quello. non capisco perchè oggi pomeriggio quando l'avevo messo minuscolo mi dava comunque errore però ora funziona!
 

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
ora se posso chiedere di nuovo aiuto ho questo file:

<HTML>
<BODY>
<?php
# join_show.php

# include il file esterno
include ("connessione mysql e database.php");

$sql="SELECT hobby FROM nomi, hobby WHERE personale.ID=ID_nome AND ID='$ID_record'";

$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);

if ( $num_righe == 0 ) {
echo "Spiacente, non ci sono informazioni";
} else {
# abbiamo dei risultati
# crea la tabella

while ($riga=mysql_fetch_array($risultati_mysql))
{
$hobby=$riga["hobby"];
echo "<BR>$hobby";
}
} # fine dell'else
mysql_close($connessione);
?>
</BODY>
</HTML>

mi da questo errore:

Notice: Undefined variable: ID_record in C:\Program Files\EasyPHP 2.0b1\www\Esercizi per esame\MySQL\join_show.php on line 9

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\Esercizi per esame\MySQL\join_show.php on line 12
Spiacente, non ci sono informazioni
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
prova:
PHP:
$risultati_mysql = mysql_query($sql) or die (mysql_error());
senza passare il valore di connessione

Sicura che in questo caso maiuscole e minuscole siano apposto?
 
Ultima modifica:

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
La variabile $ID_record non è dichiarata da nessuna parte... Non è che anche questa pagina viene richiamata da una form, e quindi la variabile viene passata tramite un GET o un POST? Se è così la trovi in $_GET['ID_record'] (come per l'altro file) oppure in $_POST['ID_record'].
 

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
Problemi versioni php - variabili indefinite

Devo collegare 2 file e fare il join di due tabelle il primo è uno.php

<HTML>
<BODY>
<CENTER>Vedi i record della tabella nomi</CENTER>
<?php

$connessione=mysql_connect ("localhost","root","");
if (!$connessione){
echo "Impossible connettersi";
exit;
}
$db=mysql_select_db("sport",$connessione);
if (!$db) {
echo "impossibile selezionare db";
exit;
}

$sql="SELECT nome FROM nomi";
$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);
if ($num_righe == 0){
echo "non ci sono informazioni";
} else {
echo "<FORM METHOD=GET ACTION=\"visualizza.php\">";
echo "seleziona una persona";
echo "<SELECT NAME=\"id_record\">";
while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga["nome"];
$id=$riga["ID_nome"];
echo "<OPTION VALUE=\"$id\">$nome";
}
echo "<\SELECT>";
}
echo "<BR>";
echo "<INPUT TYPE=\"SUBMIT\" VALUE=\"Visualizza info\">";
echo "<INPUT TYPE=\"RESET\" VALUE=\"cancella\">";
mysql_close($connessione);
?>
</FORM>
</BODY>
</HTML>

e mi da come errore

Vedi i record della tabella nomi
seleziona una persona SARA: Undefined index: ID_nome in C:\Program Files\EasyPHP 2.0b1\www\uno.php on line 28
Visualizza le info
Cancella

e l'altro file con cui si dovrebbe collegare è visualizza.php

<HTML>
<BODY>
<CENTER>Vedi i record della tabella nomi</CENTER>
<?php

$connessione=mysql_connect ("localhost","root","");
if (!$connessione){
echo "Impossible connettersi";
exit;
}
$db=mysql_select_db("sport",$connessione);
if (!$db) {
echo "impossibile selezionare db";
exit;
}


$sql="SELECT nome,hobby FROM nomi,hobby WHERE nomi.id=ID_nome ";
$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);
if ($num_righe == 0){
echo "non ci sono informazioni";
} else {
while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga["nome"];

$id=$riga["id_record"];

}

}
echo "<BR>";

mysql_close($connessione);
?>
</FORM>
</BODY>
</HTML>


e mi da come errore:

Vedi i record della tabella nomi

Notice: Undefined index: id_record in C:\Program Files\EasyPHP 2.0b1\www\visualizza.php on line 28.

in teoria dovrebbe essere solo questo l'errore, l'interrogazione sql dovrebbe essere giusta perchè provandola sul prompt dei comandi mi da il join giusto tra la tabella nome e hobby. Come posso aggiustarlo? Il fatto è che la versione da dove ho preso il prompt è diversa da quella che sto usando come posso sistemarla?! Le due tabelle sono descritte così:


mysql> describe nomi;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| nome | varchar(20) | YES | | NULL | |
| indirizzo | varchar(30) | YES | | NULL | |
| provincia | varchar(20) | YES | | NULL | |
| citta | varchar(20) | YES | | NULL | |
| paese | varchar(20) | YES | | NULL | |
| id | int(11) | NO | PRI | NULL | auto_increment |
+-----------+-------------+------+-----+---------+----------------+

mysql> describe hobby;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| ID_nome | int(11) | YES | | NULL | |
| hobby | varchar(20) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
 

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
uno.php:
$id=$riga["ID_nome"]; - ID_nome non è presente come colonna del database "nomi"

visualizza.php:
$id=$riga["id_record"]; - id_record non è presente come colonna del database hobby e manco in nomi
La query è totalmente errata, usa:
$sql="SELECT * FROM nomi n, hobby h WHERE n.id=h.ID_nome ";
 

sarablack

Nuovo Utente
15 Apr 2008
13
0
0
Ragazzi forse sono riuscita allora:

<HTML>
<BODY>
<CENTER>Vedi i record della tabella nomi</CENTER>
<?php

$connessione=mysql_connect ("localhost","root","");
if (!$connessione){
echo "Impossible connettersi";
exit;
}
$db=mysql_select_db("sport",$connessione);
if (!$db) {
echo "impossibile selezionare db";
exit;
}
$sql="SELECT nome FROM nomi";
$risultati_mysql=mysql_query($sql,$connessione);
$num_righe=mysql_num_rows($risultati_mysql);
if ($num_righe == 0){
echo "non ci sono informazioni";
} else {
echo "<FORM METHOD=GET ACTION=\"visualizza.php\">";
echo "seleziona una persona";
echo "<SELECT NAME=\"id_nome\">";
while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga["nome"];

echo "<OPTION VALUE=\"$nome\">$nome";
}
}

echo "<\SELECT>";

echo "<BR>";
echo "<INPUT TYPE=\"SUBMIT\" VALUE=\"Visualizza info\">";
echo "<INPUT TYPE=\"RESET\" VALUE=\"cancella\">";
mysql_close($connessione);
?>

Questo mi dà il form a tendina con i nomi, l'unica cosa che l'ultimo campo del menù è </SELECT> come posso toglierlo?!

e il secondo file:

<HTML>
<BODY>
<CENTER>Vedi i record della tabella nomi</CENTER>
<?php

$connessione=mysql_connect ("localhost","root","");
if (!$connessione){
echo "Impossible connettersi";
exit;
}
$db=mysql_select_db("sport",$connessione);
if (!$db) {
echo "impossibile selezionare db";
exit;
}


$sql="SELECT nome,indirizzo,provincia,citta,paese,hobby FROM nomi,hobby WHERE nomi.id=hobby.ID_nome";
$risultati_mysql=mysql_query ($sql,$connessione);
$num_righe=mysql_num_rows ($risultati_mysql);
if ($num_righe == 0){
echo "non ci sono informazioni";
} else {

echo "<table align=\"center\" border=\"4\">";
echo "<TR><TH>NOME</TH><TH>INDIRIZZO</TH><TH>PROVINCIA</TH><TH>CITTA</TH><TH>PAESE</TH><TH>HOBBY</TH></TR>";
while ($riga=mysql_fetch_array($risultati_mysql))
{
$nome=$riga["nome"];
$indirizzo=$riga["indirizzo"];
$provincia=$riga["provincia"];
$citta=$riga["citta"];
$paese=$riga["paese"];
$hobby=$riga["hobby"];

echo "<tr><td>$nome</td><td>$indirizzo</td><td>$provincia</td><td>$citta</td><td>$paese</td><td>$hobby</td>";
}

}
echo "<BR>";

mysql_close($connessione);
?>
</FORM>
</BODY>
</HTML>

Tutto ok, visualizzo tutti i nomi associati ai vari hobby. L'unica cosa è che nel collegamento tra i due file in teoria selezionando una persona dovrei vedere solo gli hobby di quella ma mi vengono fuori tutti i nomi ed i relativi hobby.

Grazie mille per l'aiuto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema con eccessiva nitidezza apertura Camera Raw Photoshop 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
V Problema con librerie allegro5 c++ C/C++ 1
M Problema con php per calcolo costo percentuale PHP 7
S Problema con mysqli_num_rows PHP 18
grgfede Problema javascript con aruba Javascript 1

Discussioni simili