Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

chiarimenti php & mysql

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

chiarimenti php & mysql

Postdi laki » 16/02/04 10:48

Per far un po' di pratica con mysql ho creato un form a due campi con variabili $componenti e $quantita.
Successivamente ha creato anche la pagina per salvare i dati nella tabella creata con phpmyadmin! La tabella è formata dalle colonne ID, Componenti, Quantita
I 2 problemi che ho sono questi!
1 :arrow: se eseguo le pagine in locale,andando a controllare con phpmyadmin la tabella in questione, noto che nn ha scritto nulla nei due campi. Se invece lo uppo sul server lo script scrive nei campi!

Per quale motivo :eeh: :?: c'è da settare qualcosa per far andare php e mysql in locale! le variabili localhost, name e password le ho gia impostate, anche perchè in locale nn mi da errori di connessione al db.

2 :arrow: qual'è il codice in php da inserire in una pagina per visualizzare il valore contenuto nella colonna componente della tabella X.

Se vi servono i codici delle pagine, chiedete che li posto.
Grazie
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano

Sponsor
 

Re: chiarimenti php & mysql

Postdi Dylan666 » 16/02/04 13:55

laki ha scritto:1 :arrow: se eseguo le pagine in locale,andando a controllare con phpmyadmin la tabella in questione, noto che nn ha scritto nulla nei due campi. Se invece lo uppo sul server lo script scrive nei campi!


Ma tu ti sei installato un server in locale, vero? Altrimenti tutto il linguaggio PHP come lo collaudi?

In pratica se crei una pagina "prova.php" e nel sorgente scrivi:
Codice: Seleziona tutto
<HTML>
<HEAD><TITLE>Prova in PHP</TITLE></HEAD>
<BODY>
<?PHP
print ("<B><CENTER>Hello world!</CENTER></B>");
?>
</BODY>
</HTML>


la scritta "Hello world" si vede in locale sul tuo PC?
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi laki » 16/02/04 14:29

si, ho installato il web server in locale ( apache, php e mysql ), e il codice scritto in php funziona!
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano

Postdi Dylan666 » 16/02/04 15:08

Questo è uno script per visualizzare TUTTI i dati mpostati nella colonna Componenti:

Codice: Seleziona tutto
<HTML>
<HEAD>
<TITLE>Visualizza Database</TITLE>
</HEAD>
<BODY>
<?PHP
/* Imposta le variabili di accesso al database */
$Host = "nome_host";
$User = "nome _user";
$Password = "metti_password";
$DBName = "nome_db";
$TableName = "nome_table";

$Link = mysql_connect ($Host,$User,$Password);

$Query = "SELECT * from $TableName";
$Result = mysql_db_query($DBName, $Query, $Link);

//Crea la tabella per visualizzare i dati
print("<TABLE BORDER=1 WIDTH=\"75%\" CELLSPACING=2 ALIGN=CENTER>\n");
print("<TR ALIGN=CENTER VALIGN=TOP>\n");   print("<TD ALIGN=CENTER VALIGN=TOP>id</TD>\n");
print("<TD ALIGN=CENTER VALIGN=TOP>Componenti</TD>\n");
print("</TR>\n");

//Prende i risultati dal database
while ($Row = mysql_fetch_array ($Result)) {
   print("<TR ALIGN=CENTER VALIGN=TOP>\n");
   print("<TD ALIGN=CENTER VALIGN=TOP> $Column[componenti]</TD>\n");
   print("</TR>\n");
   }
mysql_close ($Link);
print ("</TABLE>\n");
?>
</BODY>


Naturalmente tutti i dati da "nome_host" a "nome_table" li devi personalizzare...
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi laki » 16/02/04 15:18

Ok! questo codice è molto utile (stasera proverò)...ma riguardo al fatto che in locale nn scive nel db e "uppandolo" si :mmmh: ?? Hai qualche idea Dylan :?:
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano

Postdi Dylan666 » 16/02/04 15:33

Ma sei sicuro di aver installato il DB correttamente? Controlla la procedura qui oppure usa il MySQLadmin (vedi la 2° pagina della link di prima)
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi laki » 16/02/04 15:38

è proprio da http://www.freephp.html.it che ho preso la guida per installare il web server insieme a php e mysql!
Ma ti dirò di più.
se scrivo con codice php, la creazione di una tabella in mysql, la crea!!!e solo che poi nn scrive i dati all'interno delle colonne della tabella!!
Es. mi crea una tabella prova con due colonne : componenti e quatita, ma nn scrive i dati all'interno di esse :!:
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano

Postdi feno » 16/02/04 15:40

solitamente per la connessione al db imposti variabili come il nome utente , la pw il db a cui deve collegarsi.
Hai fatto una copia totale della struttura del db mysql? anche con glli utenti?

mi spigo meglio, se tu hai una user pippo solo sul server e tu cerchi di inerire i dati nel db in locale usando la user pippo... bhè molto probabilmente non funziona. Strano però dovrebbe darti un qualche messaggio di errore.
Cià

F@no
feno
Utente Senior
 
Post: 268
Iscritto il: 29/05/02 08:36
Località: Somewhere in Italy

Postdi laki » 16/02/04 15:47

per evitarmi problemi ho messo come nome e pass di mysql in locale le stesse che ho sul server che ospita il sito!
Ho anche provato a cambiare nome o\e pass in locale...e giustamente dava i mess di errori che avevo impostato.

Quindi escluderei problemi legati a nome,pass,e db!

:idea: Nn è che per caso ci sono altri setting da apportare oltre a quelli segnalati da dylan (che peraltro ho già fatto!) :?:
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano

Postdi Triumph Of Steel » 16/02/04 16:20

1. se l'utente con cui ti colleghi a MySQL tramite le pagine ASP, è ROOT (di solito si)...
2. usi un utente diverso da root

se è il secondo, bisogna settare i privilegi sul databse che usi..
ma, secondo me, è molto probabile il punto 1...

posta il codice ed eventualmente anche un DUMP del database
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi laki » 16/02/04 16:41

dunque..Tos è andato sul tecnico.e quasi mi perdo.
Cmq vediamo se ho capito:
1. il web server è installato su win 2000. tu parli di root quindi forse intendi linux? come win 2000 sono amministratore.

2. ho tutti i privilegi..dato che le tab le posso creare anche tramite codice php!

i codici:
config.inc.php
Codice: Seleziona tutto
<?
// parametri del database
$db_host = "localhost";
$db_user = "laki";
$db_password = "xxx";
$db_name = "xxx";
?>

insert.php
Codice: Seleziona tutto
<?
include "config.inc.php";
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
   die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
   or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
mysql_close($db);
?>

save.php
Codice: Seleziona tutto
<?
include "config.inc.php";
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
   die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
   or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = "INSERT INTO prova (componente, quantita) VALUES ('$componente', '$quantita')";
if (mysql_query($query, $db))
   echo "L'articolo è stato inserito correttamente";
else
   echo "Erorre durante l'inserimento";
mysql_close($db);
?>
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano

Postdi laki » 16/02/04 16:52

ecco anche il dump richiesto da Tos:
Codice: Seleziona tutto
# phpMyAdmin MySQL-Dump
# version 2.3.3pl1
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Generation Time: Feb 16, 2004 at 04:50 PM
# Server version: 4.00.17
# PHP Version: 4.3.4
# Database : `my_laki`
# --------------------------------------------------------

#
# Table structure for table `prova`
#

CREATE TABLE prova (
  id int(11) NOT NULL auto_increment,
  componente text NOT NULL,
  quantita int(11) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano

Postdi Triumph Of Steel » 16/02/04 16:53

l'unico modo per sapere se inserisce o no, è fare un ECHO delle variabili

Codice: Seleziona tutto
echo $componente."<br>".$quantita;


ma se è un form, sono quasi sicuro che non se le porta dietro.. quindi aggiungerei:
Codice: Seleziona tutto
$componente = $HTTP_POST_VARS['NOME_DEL_CAMPO_COMPONENTE'];
$quantita = $HTTP_POST_VARS['NOME_DEL_CAMPO_QUANTITA'];


sul server online funziona, forse xchè è abilitato a prendere le variabili in automatico dai form...
questo HTTP_POST_VARS non fa cmq male nemmeno a quello online...
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi laki » 16/02/04 17:06

piccolo appunto...ho sbagliato a riportare il codice di insert.php
Codice: Seleziona tutto
<?
include "config.inc.php";
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
   die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
   or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
mysql_close($db);
?>
<form method="post" action="save.php">
Componente:<br><input type="text" size=40 name="componente"><br>
Quantità:<br><input type=text size=40 name="quantita">
<br><br>
<input type="submit" value="Invia">
</form>

questo è giusto. :oops:

tos scrive:
$componente = $HTTP_POST_VARS['NOME_DEL_CAMPO_COMPONENTE'];

quindi nel mio caso 'NOME_DEL_CAMPO_COMPONENTE' sarà uguale a componente??giusto??
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano

Postdi Triumph Of Steel » 16/02/04 17:12

esatto..
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi laki » 17/02/04 09:00

molto bene..grazie alla dritta di Tos ho risolto il problema della scrittura nella tabella! :)

Ora però rimane il problema di leggere i dati dalla tabella e stamparli a video! Lo script di dylan nn è riuscito a risolvere il prob.

Ho pensato nella note che ci potrebbe essere qualcosa nn settato bene nel php.ini...
se servisse ho salvato il risultato del codice
Codice: Seleziona tutto
<? phpinfo(); ?>
essendo un po lungo nn lo posto ma lo potete trovare qui
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano

Postdi Triumph Of Steel » 17/02/04 14:35

Connessione:
Codice: Seleziona tutto
$db = @mysql_connect($db_host.":".$db_port, $db_user, $db_password);
if ($db == FALSE) die ("Connection error!! Check config file...");
@mysql_select_db($db_name, $db) or die ("Database connection error!!");


SELECT
Codice: Seleziona tutto
$qry = "SELECT * FROM tabella"; (opzionale, " ORDER BY campo")
$res = mysql_query($qry);
while(list($var1,$var2) = mysql_fetch_array($res)) {
  echo "- ".$var1."<br>";
  echo "- ".$var2."<br>";
}


dover $var1 e $var2 sono componente e quantità...
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi laki » 17/02/04 15:56

Tos...complimenti :D
Hai risolto un problema che durava da giorni..!
Spero di nn avere più problemi (anche se dubito molto).
;)
So many times it happenes too fast you trade your passion for glory, don't lose your grip on the dreams of the past you must fight just to keep them alive!
--------------------------
Laki
laki
Utente Senior
 
Post: 164
Iscritto il: 02/12/02 17:46
Località: Milano


Torna a Software Windows


Topic correlati a "chiarimenti php & mysql":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti