 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[PHP] ma le tabelle come si dovrebbe gestirle? Clicca QUI per vedere il messaggio nel forum |
maynard80 |
e tabelle html come si dovrebbe gestirle? cioè se ho un centinaio di tuple da stampare secondo una certa query secondo voi è giusto costruire la tabella tramite stringhe php o è meglio costruire tabelle con pezzi di codice php?
nel senso:
PHP:
function stampaRosa(){
$color1 = '#DDFFDD';
$color2 = '#DDCAFF';
$color = '#5533dd';
$count=1;
$query = "SELECT giocatori.cognome,giocatori.ruolo FROM giocatori,utente_has_giocatori where utente_has_giocatori.utente_nick='alex' and giocatori.cognome=utente_has_giocatori.giocatori_cognome";
$res = mysql_query($query);
if ($res)
echo "<br><br>GIOCATORI presenti nella ROSA: ".mysql_num_rows($res)."";
if (!$res) {
echo "Errore nella query richiesta.\n";
exit;
}
echo "<table><tr><td bgcolor='$color' width='160'><b>Cognome</b></td><td bgcolor='$color' width='160'><b>Ruolo</b></td></tr>";
while ($row = mysql_fetch_array($res)) {
if($count%2)
$color=$color1;
else
$color=$color2;
echo"<form action='iframe4.php' method='post' enctype='multipart/form-data'>";
printf ("<tr>");
printf ("<td bgcolor='$color'> $count) %s</td><td bgcolor='$color'>%s</td>", $row[0], $row[1]);
$selezione=$row[0];
printf ("<td><input type='hidden' value='$selezione' name='venduto'><input type='submit' value='Vendi !'></td></tr>");
printf ("</tr>");
$count++;
echo "</form>";
}
echo "</table>";
}
da uno a 10 quanto fa schifo? (il php lo studio da una settimana)
se volete sorridere un po' sul codice brutto ve lo permetto, ma a patto che inserite un consiglio serio almeno :D |
Alf |
Potresti fare un for da 1 a mysql_num_rows($res) (per esempio invece del while)
:) |
maynard80 |
ok, ma il mio quesito interessa l'uso delle tabelle, secondo voi la funzione php deve ritornare una stringa da usare da una tabella html, oppure va bene fare tutto in php? |
Alf |
Mhh ora ho bene al tua domanda.
Non saprei non ci vedo molta differenza.
Cosa credi di fare quando fai echo ???
Dai in pasto all'html (al servr web) un codice html no ?
Cmq come penseresti di creare "una stringa da usare da una tabella html" ???
La tabella o la crei dinamicamente oppure la crei statica (sapendo pero' quante sono le righe).
Ma nel secondo caso mi pare un po' inutile usare php |
maynard80 |
gia che ci siamo, se condo voi dove sta l'errore in questa query?
code:
UPDATE utente SET budget = (
(SELECT budget from utente where nick='$utente')
-(select valore from giocatori where cognome='$comprato')
) WHERE nick='$utente'
utente(nick,psw,budget)
giocatori(cognome,ruolo,valore) |
Drake83 |
Originally posted by maynard80
gia che ci siamo, se condo voi dove sta l'errore in questa query?
code:
UPDATE utente SET budget = (
(SELECT budget from utente where nick='$utente')
-(select valore from giocatori where cognome='$comprato')
) WHERE nick='$utente'
utente(nick,psw,budget)
giocatori(cognome,ruolo,valore)
comincia col dire che errore ti segnala.magari è piu' facile capire se è errore di sintassi o semantico. |
korn |
Un paio di appunti veloci:
- perché avresti messo enctype='multipart/form-data' in una form che passa soltanto un campo testuale?
- ma soprattutto, perché fare una form per ogni tupla? Sarebbe più elegante e pulito fare una form globale, così da alleggerire il codice e permettere eventualmente selezioni multiple.
- $selezione=$row[0]; è inutile, potresti semplicemente fare value='" . $row[0] . "'.
- ultima cosa, per i valori delle proprietà dei tag HTML sarebbe meglio utilizzare i doppi apici, per farlo dentro una stringa PHP usa \". |
maynard80 |
query SQL:
code:
UPDATE utente SET budget = ( (
SELECT budget
FROM utente
WHERE nick = 'alex'
) - (
SELECT valore
FROM giocatori
WHERE cognome = 'zola' ) )
WHERE nick = 'alex'
Messaggio di MySQL:
#1093 - You can't specify target table 'utente' for update in FROM clause
dove sbaglio? le tabelle sono
utente(nick,psw,budget)
giocatori(cognome,ruolo,valore) |
korn |
Originally posted by maynard80
query SQL:
code:
UPDATE utente SET budget = ( (
SELECT budget
FROM utente
WHERE nick = 'alex'
) - (
SELECT valore
FROM giocatori
WHERE cognome = 'zola' ) )
WHERE nick = 'alex'
Messaggio di MySQL:
#1093 - You can't specify target table 'utente' for update in FROM clause
dove sbaglio? le tabelle sono
utente(nick,psw,budget)
giocatori(cognome,ruolo,valore)
Nel momento in cui fai un UPDATE non hai bisogno di fare una SELECT per leggere valori dalla stessa tabella, ad esempio se dovessi incremetare un campo numerico potresti fare UPDATE tabella SET campo = (campo+10);.
Nel tuo caso quindi la soluzione dovrebbe essere questa (non posso testarla in questo momento, ma in genere uso query simili e funzionano correttamente):
UPDATE utente SET budget = budget - (
SELECT valore
FROM giocatori
WHERE cognome = 'zola' )
WHERE nick = 'alex';
Attenzione però, perché le versioni di MySQL precedenti alla 4 non supportano le sottoquery, quindi assicurati di averne una aggiornata.
E meno male che ComDig è fuffa.......... :asd: |
|
|
|
|