Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nie liczy MAX
Forum PHP.pl > Forum > Bazy danych > MySQL
maciu
Zadaniem kodu jest wyciągnięcie z bazy największy ID z danej tabeli. Funkcje bazy opierająsię na klasie

[php:1:28807af63d]
<?
$query = "select MAX(id) from tabela";
$db ->query($query);
$max= $db-> fetch_row();
$max=$max[0]+1;
?>
[/php:1:28807af63d]

klasa obsługująca baze (nie wkleiłem tu całej)
[php:1:28807af63d]
<?
class db
{
var $connect_id;
var $db_name;
var $query_result;


function db($db_host, $db_user, $db_pass, $db_name, $p = true)
{
if($p == false)
{
$this -> connect_id = @mysql_connect($db_host, $db_user, $db_pass);
}
else
{
$this -> connect_id = @mysql_pconnect($db_host, $db_user, $db_pass);
}

if($this -> connect_id)
{
$dbselect = @mysql_select_db($db_name, $this -> connect_id);
if(!$dbselect)
{
$this -> _error('dbselect');
mysql_close($this -> connect_id);
return false;
}
else
{
$this -> dbname = $db_name;
return true;
}
}
else
{
$this -> _error('connect');
return false;
}
}

function query($query)
{
$this -> query_result = '';
$start = $this -> _get_time();
$this -> query_result = @mysql_db_query($this -> dbname, $query, $this -> connect_id);
if(!$this -> query_result)
{
$this -> _error('query');
return false;
}
else
{
$this -> executed_queries++;
$this -> timer += $this -> _get_time() - $start;
return true;
}
}

function fetch_row($query_result = '')
{
$query_result = (empty($query_result)) ? $this -> query_result : $query_result;
$array = mysql_fetch_array($query_result, MYSQL_ASSOC);
if(!$array)
{
return false;
}
else
{
return $array;
}
}
?>
[/php:1:28807af63d]

problem polega na tym, że kod nie wyciąga z bazy nawiększwego ID
kszychu
[php:1:8867c67707]<?php
$query = "select MAX(id) AS max_id from tabela";
?>[/php:1:8867c67707]
maciu
nie działa, dlaczego tak?
spenalzo
kszychu nie ma to akurat tutaj znaczenia..

maciu - sprawdź czy kod co innego wyciaga... Poza tym dodaj sobie obsługę błędów MySQLa.
maciu
kod niczego innego nie wyciaga (wyciąga liczbe 0), obsługe błędów zrobiłem (tylko tu nie napisałem żeby nie zaśmiecać) i nie wykazuje ona żadnych błędów.
DeyV
sprawdź jeszcze takie pytanie:
[sql:1:d620ff391d]SELECT id FROM tabela ORDER BY id DESC[/sql:1:d620ff391d]
maciu
Cytat
sprawdź jeszcze takie pytanie:
[sql:1:e30dc97c32]SELECT id FROM tabela ORDER BY id DESC[/sql:1:e30dc97c32]


przy takim zapytaniu przeglądarka wyrzuca slowo Array
maciu
w tej klasie baza jest ustawiona jako MYSQL_ASSOC i gdy probuje pobrac wartość max['id'] to nie widzi tego, a gdy tablica nie jest asocjacyjna i pobiore wartość max[0] to prawidlowy wynik wyśwetli. O co chodzi?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.