J'ai le code suivant que je veux exécuter, mais le problème est que $ this-> type est défini lorsque la classe est créée en spécifiant une pétition, une proposition ou un amendement. Comme vous pouvez le voir, mon instruction $ sql est une UNION des trois, et je veux spécifier quelle table (pet, prop, ou modifier) chaque ligne de données provient. Comme vous pouvez le voir, $ this-> type ne fera que dire l'un des trois. Pour que ma fonction fonctionne comme je le voulais, je l'ai fait (ce que je trouve est trop long, il doit y avoir un moyen plus court).Condensing this code
public function userProposals() {
$username = User::getUsername();
$state = User::userState();
$sql = "SELECT * FROM petition WHERE author = '$username'";
$query = mysql_query($sql);
while ($row = mysql_fetch_assoc($query)) {
echo "
<tr>
<td>$row[id]</td>
<td><a href='viewproposal.php?type=petition&id=$row[id]'>$row[title]</a></td>
<td>Petition</td>
<td>$state</td>
</tr>";
}
$sql = "SELECT * FROM proposition WHERE author = '$username'";
$query = mysql_query($sql);
while ($row = mysql_fetch_assoc($query)) {
echo "
<tr>
<td>$row[id]</td>
<td><a href='viewproposal.php?type=proposition&id=$row[id]'>$row[title]</a></td>
<td>Proposition</td>
<td>$state</td>
</tr>";
}
$sql = "SELECT * FROM amendment WHERE author = '$username'";
$query = mysql_query($sql);
while ($row = mysql_fetch_assoc($query)) {
echo "
<tr>
<td>$row[id]</td>
<td><a href='viewproposal.php?type=amendment&id=$row[id]'>$row[title]</a></td>
<td>Amendment</td>
<td>$state</td>
</tr>";
}
}
J'ai eu une erreur: Échec de la requête: Vous avez une erreur dans votre syntaxe SQL; consultez le manuel correspondant à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de la pétition * FROM FROM WHERE author = 'test44' UNION SELECT 'proposition' comme typ, * 'à la ligne 1. De $ query = mysql_query ($ sql); – asdfasdfasdfasdf
Excuses, @Farhan, j'ai oublié que vous pourriez utiliser * ou des champs mais pas les deux. Je l'ai réparé pour utiliser les champs spécifiques (que vous pourriez vouloir faire de toute façon pour minimiser le trafic envoyé à travers le fil). – paxdiablo
Etrange, vous devriez au moins être en mesure d'utiliser: SELECT 'pétition' comme type, pétition. * DE pétition ... –