10. juni 2015 - 19:45
Der er
8 kommentarer og 1 løsning
Vis resultatet af count(*)
Jeg har en sqli database der indeholder mærke og model på en lang række biler. Da det skal bruges til statistisk formål, kunne jeg godt tænke mig at tælle hvor mange forekomster der er af de forskellige mærker. $alfa = SELECT COUNT(*) AS "a" FROM statistik WHERE make=2; Mine spørgsmål er 1. Skal man have en linie for hvert mærke, eller kan det gøres mere simpelt ? 2. Hvordan får jeg vist resultatet af count ?
Annonceindlæg fra Infor
1. Du kan bruge GROUP BY: $alfa = SELECT make,COUNT(*) AS "a" FROM statistik GROUP BY make 2. Visning af databaseindhold: <?php $con = mysql_connect("$db_host","$db_user","$db_pass"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("$check_database_name", $con); $parentid = 0; while($row = mysql_fetch_array($alfa)) { $count = $row['a']; echo $count . " - " . $row['make'] . "<br>" } mysql_close($con); ?>
Får denne fejl Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in statistic.php on line 21 $alfa = "SELECT make,COUNT(*) AS \"a\" FROM statistik GROUP BY make"; $db_host = "local"; $database_name = "my_db"; $db_user = "user"; $db_pass = "pass"; $con = mysql_connect("$db_host","$db_user","$db_pass"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("$check_database_name", $con); $parentid = 0; while($row = mysql_fetch_array($alfa)) { $count = $row['a']; echo $count . " - " . $row['make'] . "<br>"; } mysql_close($con); ?>
Du mangler at definere databasenavn eller omdøbe variablen. $check_database_name = "my_db"; Jeg ved ikke om det er det der er fejlen, du kan lige prøve at se om det virker.
Jeg ved ikke hvorfor du sætter \" omkring a det plejer der ikke være. Så der skal stå: $alfa = "SELECT make,COUNT(*) AS a FROM statistik GROUP BY make";
<?php $alfa = "SELECT make, COUNT(*) AS a FROM statistik GROUP BY make"; $db_host = "mysql1.gigahost.dk"; // Your host name $database_name = "stengaard_cars"; // Your database name $db_user = "stengaard"; // Your login userid $db_pass = "SpUVumu7eR"; // Your password $con = mysql_connect("$db_host","$db_user","$db_pass"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("$check_database_name", $con); $parentid = 0; while($row = mysql_fetch_array($alfa)) { $count = $row['a']; echo $count . " - " . $row['make'] . "<br>"; } mysql_close($con); ?>
Ved godt at db_user og db_pass er udfyldt, men det er random data
Du har ikke rettet $check_database_name.
Så er det ikke så smart at bruge det gamle mysql API. Kig hellere på MySQLi eller PDO.
Så fandt jeg en løsning der virker, og hvor jeg bruger MySQLi. Dit forslag hjalp mig godt på vej, så tak for hjælpen cht22 :) $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $parentid = 0; $alfa = "SELECT make, model, COUNT(*) AS a FROM statistik GROUP BY make"; $result = $conn->query($alfa); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $count = $row['a']; echo $count . " - " . $row['make'] . " - " . $row['model'] . "<br>"; } } $conn->close(); ?>
Vi tilbyder markedets bedste kurser inden for webudvikling