PDA

View Full Version : Separare risultati di una query


ziola
15-09-2010, 13:33
Non so quanto sia appropriato il titolo ma sono onestamente niubbo di php e mySql...vado al problema.

Inizialmente il sito che sto lavorando prevedeva il seguente script per mostrare a video l'ultima news inserita


<?php

include('conf.php');

$news_id = $_GET['news_id'];
if($news_id!=""){

$sql = "SELECT * FROM news where news_id = $news_id";

$link = @mysql_connect(HOST, USERNAME, PASSWD)
or die('Connessione al database fallita.');

@mysql_select_db(DB_NAME)
or die('Selezione del database fallita.');

$result = @mysql_query($sql);



while ($row = mysql_fetch_assoc($result)) {

$category = $row["category"];
$newsTitle = $row["titolo"];
$newsContent = $row["text"];
$submitDate = $row["date"];

echo "Titolo-->".$newsTitle;

}

}else{

$sql = "SELECT * FROM news order by news_id desc limit 0,1";

$link = @mysql_connect("62.149.150.102", "Sql286887", "925e8516")
or die('Connessione al database fallita.');

@mysql_select_db("Sql286887_1")
or die('Selezione del database fallita.');

$result = @mysql_query($sql);



while ($row = mysql_fetch_assoc($result)) {
$category = $row["category"];
$newsTitle = $row["titolo"];
$newsContent = $row["text"];
$submitDate = $row["date"];


echo "<span style='color:#E5241F; font-size:15px; font-weight:bold; padding:0 0 0 5px; margin-top:10px;text-decoration:underline;'>$category</span><br>";
echo "<span style='color:#E5241F; font-size:15px; font-weight:bold; padding:0 0 0 5px; margin-top:10px;'>$newsTitle</span><br>";
echo "<span style='font-size:13px;padding:0 0 0 5px'>$newsContent</span><br>";
echo "<span style='color:#aaaaaa; font-size:11px;padding:0 0 0 5px;'>$submitDate</span>";



}




}
?>

Adesso il mio problema è, mantenendo la stessa tabella per le news nel db, scrivere su 2 <div> differenti da una parte le notizie riguardanti il settore maschile e dall'altra quelle del femminile. Sempre prelevando i dati dalla stessa tabella, quindi non vorrei crearne 2, magari richiamandomi la "value" della option che potete vedere di sotto.

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<select name="category">
<option value="Serie C maschile">Serie C maschile</option>
<option value="I divisione femminile">I divisione femminile</option>
</select>
News title:<br/>
<input type="text" name="title" size="40"/><br/><br/>
Content:<br/>
<textarea name="newstext" rows="15" cols="67"></textarea><br/>
<center><input type="submit" name="submit" value="Save" /></center>
</form>


Spero di essere abbastanza chiaro. Di sotto vi riporto l'img del sito per rendervi più chiaro il mio problema.

http://www.olimpiavolley.com/forum.png

dojolab
15-09-2010, 13:36
A) puoi memorizzare TUTTO il risultato in un array e quando vai a stamparlo separi le due tipologie
B) puoi memorizzare tutto in due array (array di array) quello maschile e quello femminile
C) puoi fare due query (poco pulito)

[...]*se mi viene in mente altro te lo dico

ziola
15-09-2010, 13:39
intanto ti ringrazio per la celerità. Avevo già pensato all'array come soluzione più pulita ma come avrai capito sono un pò niubbo. Di conseguenza approfitto della tua bonta per farmi due esempi, se puoi farmi questo piacere, di come potrei arrivare alle soluzioni da te proposte.
Purtroppo so lavorare solo con esempi alla mano :muro:

dojolab
15-09-2010, 13:49
intanto ti ringrazio per la celerità. Avevo già pensato all'array come soluzione più pulita ma come avrai capito sono un pò niubbo. Di conseguenza approfitto della tua bonta per farmi due esempi, se puoi farmi questo piacere, di come potrei arrivare alle soluzioni da te proposte.
Purtroppo so lavorare solo con esempi alla mano :muro:

Permettimi ma è veramente brutto il value inserito nelle option (della lista).
Usa dei numeri (0, 1, 2, 3, ecc...) e collegali poi tramite DB (su un altra tabella, facendo una JOIN).

Per farti un esempio sono un pò incasinato ora, comunque molto semplicemente, prendiamo la situazione B. Ti fai una query, estrai i dati.

Cicli i risultati (che è di per se un array) e quando incontri il flag (impostato dal value, nel form) 1 li inserisci in un array (maschile), altrimenti quando becchi il 2 in un altro array (femminile).

La dichiarazione di un array è molto semplice, ti consiglio di visitare php.net per approfondire meglio; ne va della tua formazione se riesci ad arrivarci da solo :)

ziola
15-09-2010, 13:57
Permettimi ma è veramente brutto il value inserito nelle option (della lista).
Usa dei numeri (0, 1, 2, 3, ecc...) e collegali poi tramite DB (su un altra tabella, facendo una JOIN).

Per farti un esempio sono un pò incasinato ora, comunque molto semplicemente, prendiamo la situazione B. Ti fai una query, estrai i dati.

Cicli i risultati (che è di per se un array) e quando incontri il flag (impostato dal value, nel form) 1 li inserisci in un array (maschile), altrimenti quando becchi il 2 in un altro array (femminile).

La dichiarazione di un array è molto semplice, ti consiglio di visitare php.net per approfondire meglio; ne va della tua formazione se riesci ad arrivarci da solo :)

Ok grazie mille ci proverò :stordita:

Ps: Il value l'ho impostato così per evitare che chiunque avesse inserito l'articolo potesse sbagliare la dicitura della categoria...così ho creato una lista di option già pronte. Adesso che le esigenze del sito sono cambiate è ovvio che devo dare loro altro valore...magari se riesco ti faccio vedere e grazie!