Avatar
albertpatera
Redaktor
Avatar
albertpatera:

Ahoj,

v tomhle kódu je něco špatně, ale já nemůžu přijít na to, co je špatně.

Zde je kód:

if($submit) {



$zaznam = mysql_query("INSERT INTO describe_company SET title=$title, describe=$describe ;");
$dotaz = mysql_query("SELECT * FROM describe_company");
      while($zaznam = mysql_fetch_array($dotaz)) {

        $title = $zaznam['title'];
        $describe = $zaznam['describe'];


          echo $title;
          echo $describe;

      }

}
else


$zaznam = mysql_query("INSERT INTO describe_company SET title=$title, describe=$describe ;");
$dotaz = mysql_query("SELECT * FROM describe_company");
      while($zaznam = mysql_fetch_array($dotaz)) {

        $title = $zaznam['title'];
        $describe = $zaznam['describe'];


          echo $title;
          echo $describe;

      }

Mohli byste mi prosím říct, co je špatně? Díky za rady :-)

// Dotaz SELECT je OK, ale INSERT mi nechce nic zapsat do databáze

Editováno 8.6.2014 23:45
 
Odpovědět 8.6.2014 23:43
Avatar
Odpovídá na albertpatera
Martin Konečný (pavelco1998):

Nebude to tím, že ty hodnoty neházíš do apostrofů? Pokud je to string.

 
Nahoru Odpovědět  +1 8.6.2014 23:57
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Martin Konečný (pavelco1998)
albertpatera:

To jsem právě skoušel i s těma apostrovama a stejně to nešlo :-(

 
Nahoru Odpovědět 9.6.2014 0:01
Avatar
killer4567
Člen
Avatar
killer4567:

Pokud vim tak pro insert se používá Values a ne Set . SET je myslím pro Update ... Insert se používá kkdyž chceš vložit něco new, update když chceš něco aktualizovat :) Takže pro insert je to: INSERT INTO table VALUES ('', '', '', '') (mezi ' ' se vkladaj data jaky chces)
Pro update je to UPDATE table SET položka = data

Editováno 9.6.2014 1:41
Nahoru Odpovědět  +1 9.6.2014 1:35
Nechtěj být člověkem, který je úspěšný, ale člověkem, který za něco stojí. | Proč nám skvělá technika, která šetří pr...
Avatar
kashpi
Redaktor
Avatar
Odpovídá na killer4567
kashpi:

přesněji je ten INSERT

INSERT INTO table (sloupec1,sloupec2,sloupec3) VALUES(1,2,3)
 
Nahoru Odpovědět  +1 9.6.2014 7:17
Avatar
killer4567
Člen
Avatar
killer4567:

Ano je, no nemusí zadávat stloupce :) MySQL si to přidelí sám (v tom poradí jak jsou zadány values) :)

Nahoru Odpovědět  +3 9.6.2014 17:20
Nechtěj být člověkem, který je úspěšný, ale člověkem, který za něco stojí. | Proč nám skvělá technika, která šetří pr...
Avatar
Martin
Člen
Avatar
Odpovídá na killer4567
Martin:

to je sice pravda, ale musí dodržet pořadí jako je v databázi. Pokud použije výše zníněnou notaci tak nevadí když prohodí dva sloupce mezi sebou. A pokud použije PDO místo mysql_.... tak to bude i bezpečnější.

Nahoru Odpovědět 9.6.2014 17:57
Je jedno co děláš, ale záleží jak dobře to umíš prodat.
Avatar
albertpatera
Redaktor
Avatar
albertpatera:

Tak to pořád nefunguje :-(

 
Nahoru Odpovědět 9.6.2014 18:48
Avatar
Jan Vargovský
Redaktor
Avatar
Jan Vargovský:

Když insertuješ do všech sloupců tak nemusíš vypisovat všechny ty sloupce, jedině, kdybys chtěl změnit pořadí.

 
Nahoru Odpovědět 9.6.2014 19:24
Avatar
Martin
Člen
Avatar
Odpovídá na albertpatera
Martin:

dotaz INSERT si vlož do proměnný a tu si před použitím vypiš aby jsi zjistil jak přesně posíláš ten dotaz do databáze a pak ho vlož přes phpmyadmin ten ti ukáže kde v dotazu máš chybu. Zároveň si můžeš udělat INSERT v phpmyadmin a dotaz porovnat s tím co tam posíláš ty.

Nahoru Odpovědět  +1 9.6.2014 20:18
Je jedno co děláš, ale záleží jak dobře to umíš prodat.
Avatar
Odpovídá na albertpatera
Michal Štěpánek:

proč tam je mezi uvozovkama ten středník?

$zaznam = mysql_query("INSERT INTO describe_company SET title=$title, describe=$describe ;");
Nahoru Odpovědět 23.6.2014 12:19
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
albertpatera
Redaktor
Avatar
 
Nahoru Odpovědět 23.6.2014 21:23
Avatar
Nahoru Odpovědět 23.6.2014 21:55
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
mkub
Redaktor
Avatar
Odpovídá na Michal Štěpánek
mkub:

nemyslim si, ze ta bodkociarka na konci by bola problem... skor ukoncuje SQL prikaz

 
Nahoru Odpovědět  +1 24.6.2014 12:15
Avatar
Odpovídá na mkub
Michal Štěpánek:

Ale je to jediný rozdíl mezi těmi dotazy a přitom select funguje a insert ne

Nahoru Odpovědět 24.6.2014 12:43
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Michal Haňáček:

A podle této

INSERT INTO table (sloupec1,sloupec2,sloupec3) VALUES(1,2,3)

notace, kterou zmínil Michal Kašparec to také nefunguje?

ten "SET" mi spíše asociuje s UPDATE, než INSERTem ...

Nahoru Odpovědět  +1 24.6.2014 13:37
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
mkub
Redaktor
Avatar
Odpovídá na Michal Štěpánek
mkub:

ta bodkociarka na konci by nemala sposobovat problem, kedze sa jedna o ukoncenie SQL prikazu...

myslim, ze chyba je uplne inde, SELECT je na vyber hodnot z tabulky a INSERT je na vkladanie a zmenu hodnot do tabulky

 
Nahoru Odpovědět 24.6.2014 13:40
Avatar
Odpovídá na mkub
Michal Štěpánek:

Od kdy je INSERT na změnu hodnot v tabulce?

Nahoru Odpovědět 24.6.2014 13:46
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na mkub
Michal Haňáček:

Přesně jak říká Michal, INSERTem přece nemůžeš hodnoty měnit, od toho je UPDATE ...

Nahoru Odpovědět 24.6.2014 13:49
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
vajkuba1234
Člen
Avatar
vajkuba1234:

ELSE neni ve slozenych zavorkach...

Nahoru Odpovědět  +1 24.6.2014 13:51
No hope, no future, JUST WAR! For world peace Israel must be DESTROYED!
Avatar
FastNode
Redaktor
Avatar
FastNode:

Můžeš zkusit přidat metodu die pro výpis MySQL chyb:

mysql_query($query) or die(mysql_error());
 
Nahoru Odpovědět 24.6.2014 16:20
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:
else {
/* obsah */
}

ne

else

/* obsah */

else bez závorek můžeš použít, pokud je příkaz jen na jeden řádek a ten řádek je PŘÍMO POD ŘÁDKEM S ELSE, jinak ne.

Editováno 24.6.2014 17:17
Nahoru Odpovědět  -1 24.6.2014 17:17
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Michal Vašíček
Jan Vargovský:

Na to jsi přišel jak? PHP pokud vím nerozlušuje mezery ani nic takového. To znamená, že ty můžeš mít klídně kód takhle:

if(true)


                              echo '1';

                                  else



    echo '0';

ale klidně i takto:

if(true) echo '1'; else echo '0';
 
Nahoru Odpovědět 24.6.2014 18:31
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na Jan Vargovský
Michal Vašíček:

Pardon :-)
Hlavní podstata mého příspěvku ale spočívala v tom, že když to nemá ve složených závorkách, může tam mít jen jeden příkaz.

Nahoru Odpovědět 24.6.2014 18:58
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
mkub
Redaktor
Avatar
Odpovídá na Michal Haňáček
mkub:

trosku som sa sekol,sorry a diki za opravu...
ale selecto, sa vyberaju z tabulkyu polozky, cize sa nic nemeni, ani nepridava, ale insert a update menia obsah tabulky

Editováno 25.6.2014 3:41
 
Nahoru Odpovědět 25.6.2014 3:39
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 25 zpráv z 25.