Estrarre dati da tabella mysql

leon-kennedy

Utente Attivo
19 Mag 2010
147
0
0
Ciao a tutti,ho un piccolo problema:
PHP:
<?php
session_start();

//connessione al database
include('connect.php');

if($_POST) {
 
effettua_login();

}

else

{

mostra_form();
	
}

function effettua_login()

{

// recupero il nome e la password inseriti dall'utente

$user = trim(filter_var($_POST['user'], FILTER_SANITIZE_STRING));
$pass= trim(filter_var($_POST['pass'], FILTER_SANITIZE_STRING));
$pass= sha1($pass); 

// verifico se devo eliminare gli slash inseriti automaticamente da PHP

if(get_magic_quotes_gpc()) {

$user  = stripslashes($user);

$pass  = stripslashes($pass);

}
	
// verifico la presenza dei campi obbligatori
	
if(!$user || !$pass) {

header("location:log_error.php");

exit;
	
}
	
// effettuo l'escape dei caratteri speciali per inserirli all'interno della query
	
$user = mysql_real_escape_string($user);

$pass = mysql_real_escape_string($pass);

// preparo ed invio la query
$query = "SELECT * FROM iscritti WHERE nickname='$user' AND password='$pass'"; 
$result = mysql_query($query);

// controllo l'esito

if (!$result) {
die("Errore nella query $query: " . mysql_error());

}

$record = mysql_fetch_array($result);

if(!$record) {
header("location:log_error.php");
} else {
$_SESSION['username'] = $_POST['user'];
header("location:log_success.php");
}
}
?>
Qui nella sessione['username'] si salva il nome scritto dall'utente in caso in cui il log in avvenga con successo.
Ora io nella pagina successiva ho messo questo codice per continuare la sessione:
PHP:
<?php
session_start();
if(!isset($_SESSION['username']))
{
header('location:../log_error.php');
exit;
}
?>

Io vorrei estrarre i dati dalla tabella SQUADRA_dati che è strutturata così:

id INT(25) auto_increment
team VARCHAR(25)
manager VARCHAR(25)
cash INT(25)

Come posso fare?
 
ciao
anche se capisco poco cosa c'entra tutto il codice per loggarsi, se chi si logga può vedere i dati della tabella
dovresti fare così

PHP:
<?php 
session_start(); 
if(!isset($_SESSION['username'])) 
{ 
	header('location:../log_error.php'); 
	exit; 
}else{
	//connessione al db
	$query="SELECT * FROM SQUADRA_dati";
	$result=mysql_query($query);
	while($riga=mysql_fetch_array($result)){
		echo "id ".$riga['id']." team ".$riga['team']." manager ".$riga['manager']." cash ".$riga['cash']."<br>";
	}
}
?>
 
ma i dati estratti dalla tabella squadra sono gli stessi per tutti gli utenti?
 
ciao
si utilizzando il WHERE
però come detto non vedo i campi che mettono in relazione le tabelle utente con le squadre e tra l'altro tu passi alla pagina solo la password, cosa lega la password alla tabella delle squadre?
 
Si,hai ragione,ho messo adesso il campo "team" per effettuare il log in,ma ho un problema 0:)

PHP:
<?php
$team = $_POST['team'];
$query=("SELECT * FROM SQUADRA_dati WHERE team='$team'");
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($result)) 
{ 
echo "<table>";
echo "<tr>"; 
echo "<td>". $row['team']. "</td><td>". $row['manager']. "</td><td>". $row['punti']."</td><td>". $row['vittorie']. "</td><td>". $row['pareggi']. "</td><td>". $row['sconfitte']. "</td>";
echo "</tr>"; 
} 
echo "</table>"; 
?>
Lo script non mi da nè errori,ma nemmeno funziona
 
Ultima modifica:
ciao
manca qualcosa
$query=("SELECT * FROM SQUADRA_dati WHERE team='$team'");

PHP:
//....
$query=mysql_query("SELECT * FROM SQUADRA_dati WHERE team='$team'");
//...
 
Ciao mi restituisce questo errore:
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 'Resource id #6' at line 1
 
ciao
metti dei var_dump per vedere i risultati, poi li togli

PHP:
<?php
//sopra immagino che avrai i dati di connessione
$team = $_POST['team'];
var_dump($_POST['team']);
$query="SELECT * FROM SQUADRA_dati WHERE team='$team'";
var_dump($query);
//eccetera.......
?>
il primo dovrebbe darti es
string(9) "nome_team"
il secondo
string(50) "SELECT * FROM SQUADRA_dati WHERE team='nome_team'"

comunque verifica inoltre la corrispondenza esatta tra i nomi nello scrip e nel db comprese maiuscoli/minuscole
questo perchè vista cosi la querry sembrerebbe giusta
 
Mi restituisce questo:

NULL string(40) "SELECT * FROM SQUADRA_dati WHERE team=''"

Forse devo modificare qualcosa qui quando verifico il log in?
PHP:
<?
if(!$record) {
header("location:log_error.php");
} else {
$_SESSION['username'] = $_POST['team'];
header("location:log_success.php");
}
}
?>
 
ciao
NULL -> vuol dire che non trasmetti il post
di conseguenza la select ti viene errata in quanto la variabile $team è nulla
string(40) "SELECT * FROM SQUADRA_dati WHERE team=''"
se non trasmetti il post anche quello che hai fatto non serve
$_SESSION['username'] = $_POST['team'];

devi verificare sulla pagina di log che il campo di input abbia nome="team",
se non i chiama team o cmabi nell'input in team o cambi li nome in $_post
 
Ciao scusa se disturbo ancora,ma vorrei ancora il tuo aiuto:
PHP:
<?
//estraiamo i dati
$team = $_SESSION['username']; 
$query="SELECT * FROM SQUADRA_dati WHERE team='$team'"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($result))
{
//postiamo i dati
echo "<ul>";
echo "<li>" .$row['team']."</li>";
echo "<li>" .$row['manager']."</li>";
echo "<li>" .$row['livello']."</li>";
echo "<li>" .$row['campionato']."</li>";
echo "<li>" .$row['cash']."</li>";
echo "<li>" .$row['punti']."</li>";
echo "<li>" .$row['vittorie']."</li>";
echo "<li>" .$row['pareggi']."</li>";
echo "<li>" .$row['sconfitte']."</li>";
echo "<li>" .$row['sponsor']."</li>";
echo "</ul>";
}
?>
Vorrei formattare il campo $row['cash'] con number_format e inoltre vorrei metterci il simbolo degli euro con &euro;
Puoi aiutarmi?
 
ciao

PHP:
<?php
// ......
echo "<li>" .number_format($row['cash'], 2, ',', ' ')." €</li>"; 
// ......
?>
ti da un numero 111 222,33 ultima opzione uno spazio ' '
ti da un numero 111222,33 ultima opzione vuota ''
il simbolo dell'euro te lo scrivo con degli spazi, che poi tu toglierai, perche altrimenti vedi il simbolo e non il suo codice
& # 8364 ;
prima di </li> devi scivere il codice in rosso sensa gli spazi
 

Discussioni simili