Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Chyba v kódu

Aktivity
Avatar
albertpatera
Tvůrce
Avatar
albertpatera:8.6.2014 23:43

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):8.6.2014 23:57

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

Nahoru Odpovědět
8.6.2014 23:57
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
albertpatera
Tvůrce
Avatar
Odpovídá na Martin Konečný (pavelco1998)
albertpatera:9.6.2014 0:01

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:9.6.2014 1:35

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
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
michalkasparec
Tvůrce
Avatar
Odpovídá na killer4567
michalkasparec:9.6.2014 7:17

přesněji je ten INSERT

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

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
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:9.6.2014 17:57

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
Tvůrce
Avatar
albertpatera:9.6.2014 18:48

Tak to pořád nefunguje :-(

 
Nahoru Odpovědět
9.6.2014 18:48
Avatar
Jan Vargovský
Tvůrce
Avatar
Jan Vargovský:9.6.2014 19:24

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:9.6.2014 20:18

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
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:23.6.2014 12:19

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
Tvůrce
Avatar
Odpovídá na Michal Štěpánek
albertpatera:23.6.2014 21:23

protože to tak má bejt, ne?

 
Nahoru Odpovědět
23.6.2014 21:23
Avatar
Odpovídá na albertpatera
Michal Štěpánek:23.6.2014 21:55

A proč to u selectu neni?

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
Tvůrce
Avatar
Odpovídá na Michal Štěpánek
mkub:24.6.2014 12:15

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

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

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:24.6.2014 13:37

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
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
Tvůrce
Avatar
Odpovídá na Michal Štěpánek
mkub:24.6.2014 13:40

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:24.6.2014 13:46

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:24.6.2014 13:49

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:24.6.2014 13:51

ELSE neni ve slozenych zavorkach...

Nahoru Odpovědět
24.6.2014 13:51
No hope, no future, JUST WAR!
Avatar
FastNode
Tvůrce
Avatar
FastNode:24.6.2014 16:20

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

Člen
Avatar
:24.6.2014 17:17
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
24.6.2014 17:17
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na
Jan Vargovský:24.6.2014 18:31

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

Člen
Avatar
Odpovídá na Jan Vargovský
:24.6.2014 18:58

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
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Michal Haňáček
mkub:25.6.2014 3:39

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.