E Emil W Medlem sedan mars 2009 512 inlägg Frågan 18 dec. 2009 19:53 #1 jag försöker få resultat hur många som har röstat på ja och nej
men jag får detta felmeddelande
Column 'id' in field list is ambiguous
<?php
$server = "**********";
$user = "********";
$pass = "*********";
$con = @mysql_connect($server,$user,$pass);
if(!$con)
{
die('fel' . mysql_error());
}
mysql_select_db("**********", $con);
$utt = "SELECT a.svar1,id, b.svar_id,id FROM poll AS a JOIN svar_poll AS b ON a.svar1 = b.svar_id WHERE svar_id = 1";
$vissa = mysql_query($utt) or die(mysql_error());
if(isset($_GET['svara']))
{
$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$ia = intval($_GET['svara']);
mysql_query("INSERT INTO svar_poll (`svar_id`,`ip`) VALUES('$ia','$ip')") or die('Ett fel har uppstått !' . mysql_error());
}
echo "<center><br>";
echo "<b>Cyklar du på vintern ?</b>";
while($row = mysql_fetch_array($vissa))
{
$id = intval($row['id']);
echo"<br><ahref='start_webbokning.php?svara=$id'>".htmlspecialchars($row['svar1'])."</a>";
echo "$vissa";
}
echo "</center>";
?>
tydal Medlem sedan juni 2003 4 013 inlägg Field list är de kolumner som du vill hämta ut, alltså det som står mellan SELECT och FROM, i ditt fall:
a.svar1,
id,
b.svar_id,
id
Ambiguous betyder tvetydig, alltså att något kan syfta på flera saker. I ditt fall är det alltså id som är tvetydigt. Förmodligen finns id med i båda tabellerna som du hämtar från och Mysql kan ju då inte veta vilket id det är du vill hämta, utan du måste tala om det genom att ange tabellens namn före, som du gjort med svar1 och svar_id.
E Emil W Medlem sedan mars 2009 512 inlägg kan du visa för jag förstår inte riktigt hur du menar
tydal Medlem sedan juni 2003 4 013 inlägg Jag gissar att det är id från tabellen poll du vill ha ut, i så fall skriver du:
$utt = "SELECT a.svar1, a.id , b.svar_id FROM poll AS a JOIN svar_poll AS b ON a.svar1 = b.svar_id WHERE svar_id = 1";
E Emil W Medlem sedan mars 2009 512 inlägg jag vill hämta ut hur många har röstat på ja och hur många som har röstat på nej
tydal Medlem sedan juni 2003 4 013 inlägg Hur ser dina tabeller poll och svar_poll ut?
E Emil W Medlem sedan mars 2009 512 inlägg tabellen poll innehåller fälten
+--+-------+
|id | svar1|
+--+-------+
| 1 | ja |
+---+-------+
| 2 | nej |
+---+-------+
och tabellen svar_poll innehåller
fälten
+---+----------+-----+
| id | svar_id | ip |
+--+-----------+-----+
| 1 | 2 | |
+--+-----------+-----+
| 2 | 1 | |
+--+-----------+-----+
om man har svarat ja då blir svar_id 1 och om man svarar nej då blir svar_id 2
tydal Medlem sedan juni 2003 4 013 inlägg $utt = "SELECT COUNT(*) AS antal, svar1 FROM svar_poll LEFT JOIN poll ON (poll.id = svar_poll.svar_id) GROUP BY svar_id";
Då får du ett svar som exempelvis ser ut så här:
+-------+-------+
| antal | svar1 |
+-------+-------+
| 5 | ja |
| 3 | nej |
+-------+-------+
E Emil W Medlem sedan mars 2009 512 inlägg jag har inte antal i tabellen i databasen
L Ledel Medlem sedan dec. 2004 736 inlägg Testa att köra tydals SQL-fråga. I ditt recordset får du då "antal" som innehåller just antal, och svar1 som innehåller svarsalternativen, ja eller nej.
Skulle du få felmeddelande, posta det.
E Emil W Medlem sedan mars 2009 512 inlägg ska jag behålla select satsen också
tydal Medlem sedan juni 2003 4 013 inlägg Du sa att du vill hämta ut hur många som har röstat ja och hur många som har röstat nej. Det gör du med SELECT-satsen jag skrev. Om du ska ha någon annan SELECT-sats beror på om du vill hämta ut något mer, och i så fall, vad?
E Emil W Medlem sedan mars 2009 512 inlägg så här ser koden ut nu jag får felmeddelandet
Resource id #6
<?php
$server = "*************'";
$user = "*******'";
$pass = "*************";
$con = @mysql_connect($server,$user,$pass);
if(!$con)
{
die('fel' . mysql_error());
}
mysql_select_db("**********", $con);
$uttt = mysql_query("SELECT id,svar1 FROM poll");
if(isset($_GET['svara']))
{
$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$ia = intval($_GET['svara']);
mysql_query("INSERT INTO svar_poll (`svar_id`,`ip`) VALUES('$ia','$ip')") or die('Ett fel har uppstått !' . mysql_error());
}
$uttt = mysql_query("SELECT * FROM poll");
$utt = "SELECT COUNT(*) AS antal, svar1 FROM svar_poll LEFT JOIN poll ON (poll.id = svar_poll.svar_id) GROUP BY svar_id";
$v = mysql_query($utt);
echo "<center><br>";
echo "<b>Cyklar du på vintern ?</b>";
while($row = mysql_fetch_array($uttt))
{
$id = intval($row['id']);
echo "<br><a href='start_webbokning.php?svara=$id'>".htmlspecialchars($row['svar1'])."</a>";
echo "</center>";
}
echo "$v";
?>
E Emil W Medlem sedan mars 2009 512 inlägg Någon som vet varför jag får detta fel ?
Resource id #6
för kod se inlägget här ovanför.
P Pedda Medlem sedan juni 2000 6 031 inlägg Du kör mysql_query här:
$v = mysql_query($utt);
och skriver ut:
echo "$v";
mysql_query returnerar en resource vid lyckade frågor och False om det misslyckats.
Kanske du ska ta och kolla på mysql_num_rows() om du vill ha reda på hur många rader som returnerades.