phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

query - where risultato e stampa RIT o DNF, possibile?

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
juventissimo
Utente
Utente
Messaggi: 243
Iscritto il: 11/12/2011, 12:21
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL 5.5.36-34.2-log
Contatta:

Re: query - where risultato e stampa RIT o DNF, possibile?

Messaggio da juventissimo » 03/01/2015, 17:55

Micogian ha scritto:Sarà anche corretto ma non è così che io sono abituato a interrogare un database.
Una query può anche estrarre dati da più tabelle, basta che ci sia un riferimento in comune tra le tabelle.
Ad esempio, se mi serve il nome dell'utente che si trova in un'altraevo per lo meno avere a disposizione il suo ID.
Nella sezioni Wiki di questo forum avevo creato una guida su come si interroga un database e c'è un esempio anche con più tabelle.
Mettere mani sul tuo codice per me non è facile, è un sistema che non uso mai.
infatti ho a disposizione un campo in relazione comune perché sula tabella sls_t_season ho questo IDseason 5 che si autoincrementa (a cui è collegato un SeasonName chiamato pippo) invece su sls_t_career (mi appare il numero dell' IDseason) quindi mi piacerebbe che su career invece che il numero stampasse il nome pippo.
ho provato a fare una query esterna che analizzasse il numero, ma non va :( perchè manca credo una relazione all'IDdriver che decide quale record stampare

Codice: Seleziona tutto

SELECT sls_t_seasons.SeasonName
FROM sls_t_career
INNER JOIN sls_t_seasons
ON sls_t_career.IDseason=sls_t_seasons.IDseason

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: query - where risultato e stampa RIT o DNF, possibile?

Messaggio da Micogian » 03/01/2015, 20:06

Si possono interrogare più tabelle di un database pueche tra le due tabelel ci sia un campo in comune.
Un esempio basato su campi teorici potrebbe essere questo:

Codice: Seleziona tutto

$sql = "SELECT a.campo1, a.campo2, a.campo3, b.campo4, b.campo5
    FROM tabella1 a, tabella2 b
   WHERE a.campo1 = b.campo4";
    $result = mysql_query($sql);
    $x = 0;
    while ($row = mysql_fetch_array($result)) 
    {
        $var1[$x] = $row['campo1'] ;
        $var2[$x] = $row['campo2'] ;
        $var3[$x] = $row['campo3'] ;
        $var4[$x] = $row['campo4'] ;
        $var5[$x] = $row['campo5'] ;

            if($campo2[$x] == '9999')
            {
            $var2[$x] = "rit" ;
            )
        ++$x ;
    }
In questo modo si assegnano le stringhe "a" e "b" alle rispettive tabelle per semplifivare il codice.
Il campo a.campo1 sarà un campo della prima tabella, il campo b.campo4 sarà della seconda tabella.
a.campo1 e b.campo4 sono i valori in comune tra le tabelle.
Il risultato è un array di variabili denominato "var1[$x]" ecc. dove il valore $x è il numero progressino dei records.
Poi bisogna vedere come utilizzarli per la visualizzazione, il ciclo for del primo esempio va benissimo, va solo messo al posto giusto.

juventissimo
Utente
Utente
Messaggi: 243
Iscritto il: 11/12/2011, 12:21
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL 5.5.36-34.2-log
Contatta:

Re: query - where risultato e stampa RIT o DNF, possibile?

Messaggio da juventissimo » 04/01/2015, 15:10

ti ringrazio, ma non mi viene fuori nulla... appare solo pagina bianca con i miei tag di tabella

Codice: Seleziona tutto

<?php
// richiamo il file di configurazione
require 'config.php';

// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';

// il resto dello script: posso effettuare query
// senza preoccuparmi della connessione a MySQL
?>


			<table style="width: 1200px;text-align:center">
				<thead>
					<tr style="height:50px">
                        <th id="title">col1</th>
                        <th id="title">col2</th>
                        <th id="title">col3</th>
                        <th id="title">col4</th>
                        <th id="title">col5</th>
                    </tr>
				</thead>
				<tbody>

				<?php
    $sql = "SELECT a.IDdriver, a.RacePlace, a.IDseason, b.IDdriver, b.FName
        FROM sls_t_career a, sls_t_drivers b
       WHERE a.IDdriver = b.IDdriver";
        $result = mysql_query($sql);
        $x = 0;
        while ($row = mysql_fetch_array($result))
        {
            $IDdriver[$x] = $row['IDdriver'] ;
            $RacePlace[$x] = $row['RacePlace'] ;
            $IDseason[$x] = $row['IDseason'] ;
            $IDdriver[$x] = $row['IDdriver'] ;
            $FName[$x] = $row['FName'] ;

                if($RacePlace[$x] == '9999')
                {
                $RacePlace[$x] = "RIT" ;
        }
            ++$x ;
        }
				?>
				</tbody>
			</table>
:oops: :oops: :cry: :cry:

juventissimo
Utente
Utente
Messaggi: 243
Iscritto il: 11/12/2011, 12:21
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL 5.5.36-34.2-log
Contatta:

Re: query - where risultato e stampa RIT o DNF, possibile?

Messaggio da juventissimo » 04/01/2015, 19:00

ho trovato questa funzione IF da eseguire in query

Codice: Seleziona tutto

SELECT IF(a.RacePlace = 9999,'RIT',a.RacePlace) FROM sls_t_career a
poi l'ho presa ed integrata alla mia query, pero l'unica cosa che se la metto sulla mia pagina in php mi da errore, invece se la eseguo in phpmyadmin funziona alla grande :(

Codice: Seleziona tutto

SELECT a.IDdriver, a.TrackName, IF(a.RacePlace = 9999,'RIT',a.RacePlace), b.IDseason, b.SeasonName, a.IDrace
FROM sls_t_career a
JOIN sls_t_seasons b
ON a.IDseason=b.IDseason WHERE IDdriver=2
ORDER BY b.SeasonName,a.TrackName DESC
questo è l'errore che mi da se lo metto in nella pagina:

Codice: Seleziona tutto

Notice: Undefined index: RacePlace in E:\XAMPP\htdocs\ranking\gare.php on line 36
questa invece è la riga 36

Codice: Seleziona tutto

echo "<td>{$row['RacePlace']}</td>";    
EDIT: risolto :)))))))) bastava aggiungere nuovamente il valore da rinominare dopo le parentesi senza indicare l'alias o nome tabella :)))))))))))

Codice: Seleziona tutto

SELECT a.IDdriver, a.TrackName, IF(a.RacePlace = 9999,'RIT',a.RacePlace) RacePlace, b.IDseason, b.SeasonName, a.IDrace
                        FROM sls_t_career a
                        JOIN sls_t_seasons b
                        ON a.IDseason=b.IDseason WHERE IDdriver=2
                        ORDER BY b.SeasonName,a.TrackName DESC

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 45 ospiti