Pagina 1 di 2

Domande generali mysql e php

Inviato: 08/02/2010, 15:43
da BMercer
Probabilmente sto andando fuori tema, ma a me interesserebbe moltissimo una cosa che non riguarda phpbb:
Ho creato un database di nome "prove", una tabella di nome "clan_info", con 3 colonne "Id, name, score", la prima in autoincrement, la seconda di tipo VARCHAR, e la terza di tipo INT.

Poi ho eseguito correttamente le seguenti query:

Codice: Seleziona tutto

INSERT INTO clan_info (name, score) VALUES ('Lgk', 0);
INSERT INTO clan_info (name, score) VALUES ('Sc', 0);
INSERT INTO clan_info (name, score) VALUES ('Afk', 0);
E così ho ottenuto una cosa del tipo:
ID 1 2 3
name Lgk Sc Afk
score 0 0 0

Ora non riesco a capire come fare in modo che il risultato di una determinata query si trasformi in una variabile di tipo "$nome_variabile" per poter essere utilizzata in uno script.

Ad esempio, vorrei che tutti i dati in "name" venissero stampati a video, quindi faccio eseguire la query:

Codice: Seleziona tutto

$sql = "SELECT name FROM clan_info ORDER BY name";
$result = mysql_query($sql, $connessione) or die('Errore nell esguzione della query');
E a questo punto ho eseguito la query, ma dove sono i dati?

Re: Domande generali mysql e php

Inviato: 08/02/2010, 17:32
da Carlo
Sposto in Off-Topic.

Devi usare un ciclo while() e la funzione mysql_fetch_assoc(), esempio:

Codice: Seleziona tutto

<?php

.....
// connetto a mysql e selezionalo il db

$sql = "SELECT name FROM clan_info ORDER BY name";
$result = mysql_query($sql, $connessione) or die('Errore nell esguzione della query');

while($row = mysql_fetch_assoc($result)) {
    echo $row['name'] . "<br />";
}

?>

Re: Domande generali mysql e php

Inviato: 08/02/2010, 18:29
da BMercer
Grazie mille.
E se volessi prendere solo il valore score del clan di name Lgk, bisogna che crei una cosa del tipo

Codice: Seleziona tutto

$sql = "SELECT score FROM clan_info WHERE name='Lgk'";
$result = mysql_query($sql, $connessione) or die('Errore nell eseguzione della query');
 
Ma ora devo sempre inserire il ciclo while o no?
Poi mi sapresti dire dove posso trove le funzioni tipo mysql_fetch_assoc e simili spiegate bene?
Grazie ancora

Re: Domande generali mysql e php

Inviato: 08/02/2010, 19:06
da Carlo
No, se il record estratto è solo uno, allora puoi fare semplicemente così:

Codice: Seleziona tutto

$score = mysql_fetch_assoc($result); 

Re: Domande generali mysql e php

Inviato: 08/02/2010, 19:14
da BMercer
Fatto grazie

Re: Domande generali mysql e php

Inviato: 08/02/2010, 19:48
da Carlo
Cambiare il nome:

Codice: Seleziona tutto

UPDATE clan_info SET name = 'KgL' WHERE name = 'LgK'
Cambiare il punteggio:

Codice: Seleziona tutto

UPDATE clan_info SET score = 5 WHERE name = 'KgL'

Re: Domande generali mysql e php

Inviato: 08/02/2010, 20:37
da BMercer
Ho un piccolo problema però:
Quando ( dopo aver immesso i dati del database e dopo aver connesso e selezionato il database ) inserisco il seguente codice:

Codice: Seleziona tutto


if (isset($_POST['name'])) {
    
    $name = $_POST['name'];
    $sql = "INSERT INTO clan_info (name, total_score) VALUES ('". $name ."',0)";
    $result = mysql_query($sql, $connessione) or die('Errore nell eseguzione della query');
    echo "Il clan <b>". $name ."</b> è stato aggiunto con successo, se vuoi inseriscine un'altro";
    

} else {

    echo "Inserisci un nome <br/>";

} 
In modo che nel form

Codice: Seleziona tutto

<form action="#" method="post">
<input type="text" name="name" size="20" maxlength="20"><br>
<input type="submit" value="Inserisci">
</form>
Una volta inserito il nome di un clan, esso venga inserito nel database, e funziona.
Il problema è che la prima volta che lo script viene eseguito la variabile non possiede alcun valore, quindi compare sempre l'errore di variabile indefinita, come faccio a toglierla?

Re: Domande generali mysql e php

Inviato: 08/02/2010, 20:49
da Carlo
Ma sei hai inserito la condizione isset($_POST['name']), allora non dovrebbe darti errore.

Re: Domande generali mysql e php

Inviato: 08/02/2010, 21:02
da BMercer
No infatti scusa, il codice così funziona bene, ma solo perchè la variabile $name è dentro la condizione.
Il problema è che ora devo tirarla fuori da li perchè devo inserire tutte le funzioni in un specifico file ( includendolo poi in quella pagina ) che viene richiamato ad inizio pagina.

Re: Domande generali mysql e php

Inviato: 08/02/2010, 21:36
da Carlo
Non ho capito che vuoi fare... comunque puoi provare così:

Codice: Seleziona tutto

$name = isset($_POST['name']) ? $_POST['name'] : '';