Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Autonumeracja id od 1
Forum PHP.pl > Forum > Bazy danych > MySQL
Plebanov
Czy jest mozliwosc by autonumeracja w tabeli zaczynala sie od 1 a nie od 0??
phpion
Tabeli w MySQL czy tablicy w PHP? Jeśli to pierwsze to przeciez AUTO_INCREMENT startuje od 1, natomiast jeśli to drugie to we wszystkich znanych mi językach indeksowanie tablic zaczyna się od 0.

Jeśli chciałbyś zmodyfikować aktualną wartość AUTO_INCREMENT to skorzystaj z polecenia:
  1. ALTER TABLE tbl AUTO_INCREMENT = 100;
Plebanov
Tak chodzi mi o tabele w mysql..

To jest skrypt do pobierania z bazy tytulu filmu i jego ID
  1. <?php
  2. include 'mysql/connection.php';
  3.  
  4. $wynik = mysql_query("SELECT * FROM test")
  5. or die('Błąd zapytania');
  6.  
  7.  
  8. if(mysql_num_rows($wynik) > 0) {
  9.   echo "<table cellpadding=\"2\" border=0 width=400>";
  10.   while($r = mysql_fetch_array($wynik)) {
  11.       echo "<tr>";
  12.       echo "<td>
  13.         <a href=\"film.php?id=$id\">$r[3], $r[2]</a>
  14.         <br><br>
  15.         </td>";
  16.       echo "</td>";
  17.       echo "</tr>";
  18.         $id=$r['id'];
  19.   }
  20.   echo "</table>";
  21. }
  22. ?>


A tutaj mam skrypt z wykorzystaniem ID do wyswietlania reszty informacji o filmie

  1. <?php
  2.  
  3. $result = mysql_query('select * from test where id = '.$_GET['id']. ' limit 1')
  4.    or die('Błąd zapytania. Podane ID jest niepoprawne!');
  5.  
  6. if ($id = (is_numeric($_GET['id']))) {
  7.  
  8. while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
  9.    echo $row[1];  
  10. }
  11. }
  12.  
  13. ?>


Problem polega na tym ze nie wiem czemu przy pierwszym filmie pobiera mi ID=0 i nie wyswietla nic o filmie.. Nie wiem co teraz zrobic.

PS - taki jest skrypt do dodawania filmow

  1. <?php
  2. mysql_connect('localhost', 'root', '');
  3.  
  4. mysql_query("CREATE TABLE test (id int( 11 ) NOT NULL AUTO_INCREMENT ,
  5. nazwa varchar( 100 ) NOT NULL default '',
  6. tytul varchar( 100 ) NOT NULL default '',
  7. tytul_pl varchar( 100 ) NOT NULL default '',
  8. produkcja varchar( 100 ) NOT NULL default '',
  9. gatunek varchar( 100 ) NOT NULL default '',
  10. data_sw varchar( 100 ) NOT NULL default '',
  11. data_pl varchar( 100 ) NOT NULL default '',
  12. rezyseria varchar( 100 ) NOT NULL default '',
  13. scenariusz varchar( 100 ) NOT NULL default '',
  14. zdjecia varchar( 100 ) NOT NULL default '',
  15. muzyka varchar( 100 ) NOT NULL default '',
  16. na_podstawie varchar( 100 ) NOT NULL default '',
  17. wiek varchar( 100 ) NOT NULL default '',
  18. czas varchar( 100 ) NOT NULL default '',
  19. dystrybucja varchar( 100 ) NOT NULL default '',
  20. opis varchar( 100 ) NOT NULL default '',
  21. obrazek varchar( 100 ) NOT NULL default '',
  22. PRIMARY KEY ( id ))");
  23. ?>
  24.  
  25. <form action="ind.php" method="post">
  26. <table>
  27. <tr>
  28. <td>
  29. Nazwa
  30. <input type="text" name="nazwa">
  31. Tytuł (eng)
  32. <input type="text" name="tytul">
  33. Tytuł (pl)
  34. <input type="text" name="tytul_pl">
  35. </td>
  36. <td>
  37. Produkcja
  38. <input type="text" name="produkcja">
  39. Gatunek
  40. <input type="text" name="gatunek">
  41. Data (Świat)
  42. <input type="text" name="data_sw">
  43. Data (Polska)
  44. <input type="text" name="data_pl">
  45. </td>
  46. <td>
  47. Reżyseria
  48. <input type="text" name="rezyseria">
  49. Scenariusz
  50. <input type="text" name="scenariusz">
  51. Zdjęcia
  52. <input type="text" name="zdjecia">
  53. Muzyka
  54. <input type="text" name="muzyka">
  55. Na podstawie
  56. <input type="text" name="na_podstawie">
  57. Wiek
  58. <input type="text" name="wiek">
  59. Czas
  60. <input type="text" name="czas">
  61. Dystrybucja
  62. <input type="text" name="dystrybucja">
  63. </td>
  64. <td>
  65. Opis
  66. <textarea name="opis" cols="50" rows="10"></textarea>
  67. Obrazek
  68. <input type="text" name="obrazek">
  69.  
  70. </td>
  71. <td>
  72. </tr>
  73. <tr>
  74. <td>
  75. <input type="submit" value="dodaj">
  76. </td>
  77. </tr>
  78. </table>
  79. </form>
  80. <?php
  81. $nazwa = $_POST['nazwa'];
  82. $tytul = $_POST['tytul'];
  83. $tytul_pl = $_POST['tytul_pl'];
  84. $produkcja = $_POST['produkcja'];
  85. $gatunek = $_POST['gatunek'];
  86. $data_sw = $_POST['data_sw'];
  87. $data_pl = $_POST['data_pl'];
  88. $rezyseria = $_POST['rezyseria'];
  89. $scenariusz = $_POST['scenariusz'];
  90. $zdjecia = $_POST['zdjecia'];
  91. $muzyka = $_POST['muzyka'];
  92. $na_podstawie = $_POST['na_podstawie'];
  93. $wiek = $_POST['wiek'];
  94. $czas = $_POST['czas'];
  95. $dystrybucja = $_POST['dystrybucja'];
  96. $opis = $_POST['opis'];
  97. $obrazek = $_POST['obrazek'];
  98.  
  99. if($nazwa and $tytul and $tytul_pl and $produkcja and $gatunek and $data_sw and $data_pl and $rezyseria and $scenariusz and $zdjecia and $muzyka and $na_podstawie and $wiek and $czas and $dystrybucja and $opis and $obrazek) {
  100.    
  101. $connection = @mysql_connect('localhost', 'root', '')
  102.     or die('Brak połączenia z serwerem MySQL');
  103. $db = @mysql_select_db('test', $connection)
  104.     or die('Nie mogę połączyć się z bazą danych');
  105.      
  106.    
  107. $ins = @mysql_query("INSERT INTO test SET nazwa='$nazwa', tytul='$tytul', tytul_pl='$tytul_pl', produkcja='$produkcja', gatunek='$gatunek', data_sw='$data_sw', data_pl='$data_pl', rezyseria='$rezyseria', scenariusz='$scenariusz', zdjecia='$zdjecia', muzyka='$muzyka', na_podstawie='$na_podstawie', wiek='$wiek', czas='$czas', dystrybucja='$dystrybucja', opis='$opis', obrazek='$obrazek'");
  108.  
  109. if($ins) echo "Rekord o ID: ".$id." został dodany poprawnie";
  110.     else echo "Błąd nie udało się dodać nowego rekordu";
  111.      
  112. mysql_close($connection);
  113. }
  114.  
  115. ?>


Moze gdzies mam blad w skryptach. jak ktos widzi takowy to prosze o pomoc
batman
  1. <?php
  2. $wynik = mysql_query("SELECT * FROM test")
  3. or die('Błąd zapytania');
  4.  
  5. ?>

Poczytaj o mysql_insert_id, a wszystko stanie się jasne.
Plebanov
Cytat
mysql_insert_id() zwróci 0 jeśli ostatnie zapytanie nie generowało wartości AUTO_INCREMENT. Jeśli chcesz przechować zwrócony przez tę funkcję wynik, upewnij się, że wywołujesz ją zaraz po zapytaniu generującym nową wartość.


Takie cos wyczytalem ale nie wiem czy o to dokladnie Ci chodzilo.. i i tak nie wiem co zrobic - poczatkujacy jestem wiec sie nie denerwujcie.
batman
Rozumiem, że $id ma być identyfikatorem filmu. Jeśli tak, to w pętli wstaw takie coś:
  1. <?php
  2. echo '<a href="film.php?id='.$r['kolumna_z_id'].'">'.$r[3].', '.$r[2].'</a>';
  3. ?>

Pamiętaj, by wstawić odpowiednią wartość zamiast kolumna_z_id.
Plebanov
Cytat(batman @ 29.11.2008, 20:52:42 ) *
Rozumiem, że $id ma być identyfikatorem filmu. Jeśli tak, to w pętli wstaw takie coś:
  1. <?php
  2. echo '<a href="film.php?id='.$r['kolumna_z_id'].'">'.$r[3].', '.$r[2].'</a>';
  3. ?>

Pamiętaj, by wstawić odpowiednią wartość zamiast kolumna_z_id.


Dzieki - dziala smile.gif
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.