Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tablice, indexy 0, 1, 2
Krzychur
post
Post #1





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.01.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam!
Właśnie napisałem swoją, narazie jeszcze prostą klasę obsługi bazy danych. Poniżej załączam urywek funkcji dodającej rekord to tablicy:
  1. <?php
  2. public function insert($table, $values, &$reference = '') {
  3. $this -> queries++;
  4.  
  5. foreach ($values as $field => $value) {
  6. if (!isset($comma)) {
  7. $array = array('fields' => '`'.$field.'`','values' => '''.$value.''');
  8. $comma = '';
  9. }
  10. else {
  11. $array['fields'] .= ', `'.$field.'`';
  12. $array['values'] .= ', ''.$value.''';
  13. }
  14. }
  15. $query = 'INSERT INTO `'.$this -> prefix.$table.'` ('.$array['fields'].') VALUES ('.$array['values'].')';
  16.  
  17. switch ($this -> db_type) {
  18.  
  19. // ... MySQL database
  20. case 'mysql':
  21. if (@mysql_db_query($this -> db_name,$query,$this -> link_id)) {
  22. $reference = mysql_insert_id();
  23. return TRUE;
  24. }
  25. else {
  26. $reference = mysql_error();
  27. return FALSE;
  28. }
  29. break;
  30. }
  31. }
  32. ?>

Zależy mi na napisaniu warunku, który pozwalałby na wysłanie zapytania w stylu:
INSERT INTO `tabela` VALUES ('x','y','z');
czyli bez podawania nazw pól w tabeli.

Wydaje mi się, że najłatwiejszym sposobem byłoby sprawdzenie indexów tablicy, czy są numerowane od zera wzwyż. Wydaje mi się też, że nie ma takiej funkcji, bo przeglądając manual, znalazłem tylko dwie funkcje, których skrócony opis zaczyna się wyrażeniem Checks mianowicie: array_key_exists i in_array...

Moje sugerowane rozwiązanie tego problemu to schematycznie:
Kod
<?
$i = -1;
foreach ($table as $index => $value) {
$i++;
if ($index != $i) {
  $false = '';
}
}
?>


Czy ktoś ma na myśli jakieś ciekawsze rozwiązanie? Dzięki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) !
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 18:20