Jestem w stanie uzyskać zarówno wartość, jak i wiersz wyniku zapytania mysql.
Ale staram się uzyskać pojedynczy wynik zapytania. na przykład:
$result = mysql_query("SELECT COUNT(*) FROM Students;");
Potrzebuję wyniku do wyświetlenia. Ale rezultatu nie otrzymuję.
Próbowałem z następującymi metodami:
mysql_fetch_assoc()
mysql_free_result()
mysql_fetch_row()
Ale nie udało mi się wyświetlić (pobrać) rzeczywistej wartości.
Odpowiedzi:
Musisz aliasować agregat za pomocą
as
słowa kluczowego, aby go wywołaćmysql_fetch_assoc
$result=mysql_query("SELECT count(*) as total from Students"); $data=mysql_fetch_assoc($result); echo $data['total'];
źródło
Jeśli potrzebujesz tylko wartości:
$result = mysql_query("SELECT count(*) from Students;"); echo mysql_result($result, 0);
źródło
echo mysql_result(mysql_query("SELECT count(*) from Students;"),0);
zapisuje jedną niepotrzebną zmienną$result = mysql_query("SELECT COUNT(*) AS `count` FROM `Students`"); $row = mysql_fetch_assoc($result); $count = $row['count'];
Wypróbuj ten kod.
źródło
Zacznij korzystać z PDO.
mysql_ * jest przestarzałe w PHP 5.5.0 i zostanie całkowicie usunięte w 7. Ułatwmy aktualizację i zacznijmy go używać już teraz.
$dbh = new \PDO($dsn, $user, $password); $sth = $dbh->prepare('SELECT count(*) as total from Students'); $sth->execute(); print_r($sth->fetchAll());
źródło
$num_result = mysql_query("SELECT count(*) as total_count from Students ") or exit(mysql_error()); $row = mysql_fetch_object($num_result); echo $row->total_count;
źródło
tutaj jest kod pokazujący liczbę wierszy w tabeli z PHP
$sql="select count(*) as total from student_table"; $result=mysqli_query($con,$sql); $data=mysqli_fetch_assoc($result); echo $data['total'];
źródło
AS
tutaj, zamiast pisaćecho $data['count(*)'];
Dla użytkowników mysqli kod będzie wyglądał następująco:
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name); $result = $mysqli->query("SELECT COUNT(*) AS Students_count FROM Students")->fetch_array(); var_dump($result['Students_count']);
lub:
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name); $result = $mysqli->query("SELECT COUNT(*) FROM Students")->fetch_array(); var_dump($result[0]);
źródło
$howmanyuser_query=$conn->query('SELECT COUNT(uno) FROM userentry;'); $howmanyuser=$howmanyuser_query->fetch_array(MYSQLI_NUM); echo $howmanyuser[0];
po tylu godzinach znakomicie :)
źródło
$abc="SELECT count(*) as c FROM output WHERE question1=4"; $result=mysqli_query($conn,$abc); if($result) { while($row=mysqli_fetch_assoc($result)) { echo $row['c']; } }
W tym oblicza liczbę wystąpień w kolumnie pytanie1, działa całkowicie
źródło
$result = mysqli_query($conn, "SELECT COUNT(*) AS `count` FROM `Students`"); $row = mysqli_fetch_array($result); $count = $row['count']; echo'$count';
źródło
W przypadku mysql w wersji 5.7.20 udało mi się uzyskać liczbę wierszy z tabeli przy użyciu PHP w wersji 7.0.22:
$query = "select count(*) from bigtable"; $qresult = mysqli_query($this->conn, $query); $row = mysqli_fetch_assoc($qresult); $count = $row["count(*)"]; echo $count;
Trzecia linia zwróci strukturę, która wygląda następująco:
array(1) { ["count(*)"]=>string(4) "1570" }
W takim przypadku końcowa instrukcja echo zwróci:
1570
źródło
Myślę, że w Twoim kodzie jest literówka i powinieneś usunąć przedostatni średnik w:
$result = mysql_query("SELECT COUNT(*) FROM Students;");
źródło
Musisz aliasować agregat za pomocą
as
słowa kluczowego, aby go wywołaćmysqli_fetch_assoc
$result=mysqli_query($conn,"SELECT count(*) as total from Students"); $data=mysqli_fetch_assoc($result); echo $data['total'];
źródło
$db = new PDO('mysql:host=localhost;dbname=java_db', 'root', '') or die(mysql_errno()); $Sql = "SELECT count(*) as 'total' FROM users"; $stmt = $db->query($Sql); $stmt->execute(); $data = array(); $total = $stmt->fetch(PDO::FETCH_ASSOC); print '<pre>'; print_r($total); print '</pre>';
źródło
Myślę, że to lepsza odpowiedź.
$query = "SELECT count(*) AS total FROM table_name"; mysql_select_db('database_name'); $result = mysql_query($query); $values = mysql_fetch_assoc($result); $num_rows = $values['total']; echo $num_rows;
źródło
niech ci się przyda:
$checkValid = "SELECT COUNT(*) as total FROM ". $this->db_table ." WHERE UserName = ?"; $stmt = $this->conn->prepare($sqlQuery); $stmt->bindParam(1, $this->UserName); $stmt->execute(); $dataRow = $stmt->fetch(PDO::FETCH_ASSOC); $total = $dataRow["total"];
źródło
$qry_appr = "SELECT COUNT(*) FROM comments WHERE admin_panel_id ='$id' AND status = 'ON'"; $qry_data = mysqli_query($con, $qry_appr); $approve_count = mysqli_fetch_array($qry_data); $toatalCount = array_shift($approve_count); echo $toatalCount;
To również będzie w porządku, ale robi to, co zwraca wartość indeksu 0 przez przesunięcie tablicy pobierania. Witam wszystkich
źródło
Z gamy opcji ta nie została wymieniona. Nawet jeśli nie jest to optymalne lub niepotrzebne, ale można to zrobić za pomocą prostej pętli:
$result=mysqli_query($conn, "SELECT count(1) as total from Students"); foreach ($result as $rez) {$numb=$rez['total'];} echo $numb;
źródło
mysql_
funkcji - nawet jeśli to stare pytanie używa ich. W moim IDE pojawiłaby się flaga informująca, że$numb
może nie zostać zadeklarowana. Korzystanie z pętli zostało już wykonane przez PushkarPokharkar, ale znowu jest to niepotrzebne. Zrobię wszystko, co w mojej mocy, aby pomóc badaczom, odrzucając techniki, których nie polecam.Jeśli chcesz tylko wartość zliczania, możesz zrobić skrót:
$cnt = mysql_num_rows(mysql_query('select * from students'));
źródło