Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]Problem z zapytaniem SQL
Forum PHP.pl > Forum > Przedszkole
joCkero
Witam,

Otoz po zapytaniu SQL
  1. CREATE TABLE shoutbox (
  2. id int(11) DEFAULT '0' NOT NULL AUTO_INCREMENT,
  3. tresc text,
  4. imie text,
  5. ip text,
  6. UNIQUE id (id),
  7. PRIMARY KEY (id)
  8. );

MySQL zwrócił komunikat:
#1067 - Invalid default value for 'id'

Znalazlem na jednym z forow ten sam problem, wtedy ktos poradzil aby wyslac takie zapytanie
  1. CREATE TABLE `shoutbox` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `tresc` text NOT NULL DEFAULT '',
  4. `imie` text NOT NULL DEFAULT '',
  5. `ip` text NOT NULL DEFAULT '',
  6. PRIMARY KEY (`id`)
  7. ) AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;


Fakt, wchodiz, bez problemu, ale na stronie wyswietla sie komunikat Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Co zrobic?
l0ud
Jeżeli chodzi o pierwsze zapytanie, wystarczy usunąć z niego "DEFAULT '0'". I tak nie jest potrzebne.

Błąd może jednak wynikać z czego innego...
joCkero
Usuniecie default, pomoglo, ale wczesniej juz to wykonalem. Jeydnie wciaż widnieje problem Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/r/a/radiobrg/shoutbox.php on line 40 zawartosc 40 lninijki wyglada nastepujaco while ($wiersz = mysql_fetch_array($wykonaj)) { . Podobnie jest w przypadku panelu administracyjnego.
sowiq
Cytat
id int(11) DEFAULT '0' NOT NULL auto_increment,
Wartości dla INT'ów podaje się bez cudzysłowów, czyli powinno być:
Cytat
id int(11) DEFAULT 0 NOT NULL auto_increment,


A co do drugiego problemu, pokaż zapytanie, bo to w nim jest najprawdopodobniej błąd.
joCkero
Cytat(sowiq @ 5.11.2008, 20:15:38 ) *
Wartości dla INT'ów podaje się bez cudzysłowów, czyli powinno być:

A co do drugiego problemu, pokaż zapytanie, bo to w nim jest najprawdopodobniej błąd.


Usuniecie cudzysłowow nic nie dało, a co do drugie problemu i zapytania, znajduje sie ono w odpowiedziach.
l0ud
Daj wszystko to, co jest przed 40 linią w shoutbox.php
joCkero
Kod
<?
ob_start();
/*****************************************************/
/*      jPORTAL - internetowy system portalowy       */
/*****************************************************/
/* autor: Pawel 'jaco' Jaczewski                     */
/* email: info@websys.pl                             */
/*****************************************************/
include ('config.php');

#===========================#

function site_main() {

global $tresc, $imie, $all, $ip, $REMOTE_ADDR, $emots, $prefix, $PHP_SELF;

if(is_user_login()=='yes')
$info = get_user_info();

main_title_open();
echo 'Shoutbox';
main_title_close();
main_text_open();
#=================#
$shoutbox = $prefix.'shoutbox';  
$tresc = wordwrap($tresc, 15, " ", 1);
$imie = wordwrap($imie, 15, " ", 1);  
$tresc = strip_tags ($tresc);
$imie = strip_tags ($imie);
#=================#
if ($tresc!="" && $imie!="") {
$zapytanie = "INSERT INTO $shoutbox SET tresc='$tresc', imie='$imie', ip='$ip'";
$wykonaj = mysql_query ($zapytanie);
$dalej="shoutbox.php";
header("Location: $dalej");
}
if ($all!=ok) {
$zapytanie = "SELECT * FROM $shoutbox ORDER BY id DESC LIMIT 10";
$wykonaj = mysql_query($zapytanie);
while ($wiersz = mysql_fetch_array($wykonaj)) {
?>
piotrooo89
strzelam spróbuj tak:

  1. <?php
  2. $sql = mysql_query("SELECT * FROM shoutbox ORDER BY id DESC LIMIT 10");
  3. while ($wiersz = mysql_fetch_array($sql))
  4. ?>
melkorm
Ja obstawiam coś magicznego w prefiksie lub brak połączenia z bazą danych ;p
l0ud
joCkero, za pomocą phpmyadmina zobacz, jakie prefiksy mają inne tabele w bazie danych. Chodzi o powtarzający się fragment na początku każdej nazwy tabeli.

  1. CREATE TABLE [prefix]shoutbox (
  2. id int(11) NOT NULL AUTO_INCREMENT,
  3. tresc text,
  4. imie text,
  5. ip text,
  6. UNIQUE id (id),
  7. PRIMARY KEY (id)
  8. );


Gdzie [prefix] to to, co odczytasz.
sowiq
Cytat(joCkero @ 5.11.2008, 20:21:38 ) *
Usuniecie cudzysłowow nic nie dało, a co do drugie problemu i zapytania, znajduje sie ono w odpowiedziach.


Racja. Błąd Twojego zapytania wynikał z tego, że dałeś auto_increment razem z default.
Sorry za wprowadzenie w błąd wstydnis.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.