MySQL : union select problem

Programovacie jazyky, rady, poradňa...
sebci
Star
Star
Používateľov profilový obrázok
Príspevky: 600
Registrovaný: 28 feb 2006, 16:03
Bydlisko: ZVOLEN, centrum

MySQL : union select problem

Príspevok od používateľa sebci »

prosim o radu pri funkcii union select vyber údajov z viacero tabuliek pripojenej mysql databazy

$query = ("SELECT * FROM `kontakty` WHERE `email` LIKE '" . $_POST['email'] . "' LIMIT 1") UNION ("SELECT * FROM `skolenia` WHERE `datum` LIKE '" . $_POST['datum'] . "' LIMIT 1");
$result = mysql_query($query);
$line = mysql_fetch_array($result,MYSQL_ASSOC);

de by mohla byt chyba pretoze dostavam v riadku query chybu :

Parse error: syntax error, unexpected T_STRING
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MySQL : union select problem

Príspevok od používateľa audiotrack »

LIMIT 1") UNION ("SELECT

tie úvodzovky tam máš navyše
sebci
Star
Star
Používateľov profilový obrázok
Príspevky: 600
Registrovaný: 28 feb 2006, 16:03
Bydlisko: ZVOLEN, centrum

Re: MySQL : union select problem

Príspevok od používateľa sebci »

nepomohlo ale nevadi :) thx
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MySQL : union select problem

Príspevok od používateľa audiotrack »

... a na začiatku a konci ti chýbajú zátvorky (teraz len dúfam že zapojíš hlavu a dáš ich tam kde majú byť)
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: MySQL : union select problem

Príspevok od používateľa Mmartin »

S MySQL som dlho nerobil, teraz sa k tomu vsetkemu vraciam, a napada ma, ci riadok

Kód: Vybrať všetko

$query = ("SELECT * FROM `kontakty` WHERE `email` LIKE '" . $_POST['email'] . "' LIMIT 1") UNION ("SELECT * FROM `skolenia` WHERE `datum` LIKE '" . $_POST['datum'] . "' LIMIT 1");
nema byt takto

Kód: Vybrať všetko

$query = "(SELECT * FROM `kontakty` WHERE `email` LIKE '" . $_POST['email'] . "' LIMIT 1") UNION ("SELECT * FROM `skolenia` WHERE `datum` LIKE '" . $_POST['datum'] . "' LIMIT 1)";
Ovecka
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1227
Registrovaný: 25 aug 2005, 0:57

Re: MySQL : union select problem

Príspevok od používateľa Ovecka »

urcite nie ... ale ako pise audiotrack

Kód: Vybrať všetko

$query = (("SELECT * FROM `kontakty` WHERE `email` LIKE '" . $_POST['email'] . "' LIMIT 1") UNION ("SELECT * FROM `skolenia` WHERE `datum` LIKE '" . $_POST['datum'] . "' LIMIT 1"));
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MySQL : union select problem

Príspevok od používateľa audiotrack »

aj jeden zle, aj druhý. To čo napísal Mmartin je lepšie, a bolo by to úplne dobre keby odstránil tie úvodzovky čo som dal ako červené v prvej odpovedi
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: MySQL : union select problem

Príspevok od používateľa Mmartin »

Vidiiiis, na to som zabudol, sorry
Oprava:

Kód: Vybrať všetko

$query = "(SELECT * FROM `kontakty` WHERE `email` LIKE '" . $_POST['email'] . "' LIMIT 1) UNION (SELECT * FROM `skolenia` WHERE `datum` LIKE '" . $_POST['datum'] . "' LIMIT 1)";
Tak uz by to naozaj malo ist
Zabudate totiz, ze query sa je string, cize prvy a posledny znak bude uvodzovka ".
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MySQL : union select problem

Príspevok od používateľa audiotrack »

query nie je string, len mysql_query je funkcia ktorá ako parameter vyžaduje string :)
sebci
Star
Star
Používateľov profilový obrázok
Príspevky: 600
Registrovaný: 28 feb 2006, 16:03
Bydlisko: ZVOLEN, centrum

Re: MySQL : union select problem

Príspevok od používateľa sebci »

hmm no forma "()union()" takisto nie sice nula bodov ale chyba sa posunula o dva riadky nizsie

$query = "(SELECT * FROM `kontakty` WHERE `email` LIKE '" . $_POST['email'] . "' LIMIT 1) UNION (SELECT * FROM `skolenia` WHERE `datum` LIKE '" . $_POST['datum'] . "' LIMIT 1)";
$result = mysql_query($query);
$line = mysql_fetch_array($result,MYSQL_ASSOC);

$line chyba ...Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MySQL : union select problem

Príspevok od používateľa audiotrack »

tak máš zlé to query. Majú tie tabuľky skolenia a kontakty rovnakú počet stlpcov? (aj tak si ale myslim že si chcel skôr join ako union)
sebci
Star
Star
Používateľov profilový obrázok
Príspevky: 600
Registrovaný: 28 feb 2006, 16:03
Bydlisko: ZVOLEN, centrum

Re: MySQL : union select problem

Príspevok od používateľa sebci »

ach ked som si to studoval kombinacie citania z tabuliek tak som dosiel aj k funkcii join oki vyskusam ju pravdou je ze nemam rovnaky pocet stlpcov to mi uplne vypadlo tato podmienka pri pouziti union nejak som zabudol sorry ze som na to nemyslel a zytocne otravoval a zaroved dakujem za pomoc
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: MySQL : union select problem

Príspevok od používateľa Mmartin »

Audiotrack ano, zle som to sformuloval, tak, oprava
query, ktore vyzaduje mysql(i)_query() je string...
sebci
Star
Star
Používateľov profilový obrázok
Príspevky: 600
Registrovaný: 28 feb 2006, 16:03
Bydlisko: ZVOLEN, centrum

Re: MySQL : union select problem

Príspevok od používateľa sebci »

audiotrack:

nech študujem ako študujem tak sa neviem dopracovat k vysledku.

Mám dve tabulky "kontakty" a "školenia" v databaze... každa obsahuje rozdielne stlpce čo je asi samozrejme už z nazvu

uvodný index page obsahuje pole s vloženým emailom po potvrdení sa v nasledujucej objednávkovej časti objavia udaje klienta s databazy s tabulky "kontakty" a súčasne v jednom pripojení vytiahne aj do dalších prichystaných polí údaje o pripravovanych školeniach z druhej tabulky "školenia".

index page:

Kód: Vybrať všetko

<form name="form1" action="order.php" method=post>

<table>
<tr>
<td><b>Prihlasenie:</b>&nbsp;&nbsp; </td><td><input type=text name="email" value="@" style="width: 210px"/></td>
</tr>

<tr>
<td></td><td align="center"><input type=submit value="Prihlásiť" style="width: 200px"></td>
</tr>

</form>
Objednávková časť:

Kód: Vybrať všetko

<?php

$sqluser = "user"; //mySQL pouzivatel
$sqlpass = "pass"; //mySQL heslo
$sqlserver = "localhost"; //adresa sql servra
$sqldatabase = "db"; //nazov databazy
$sqlhandle = mysql_connect($sqlserver,$sqluser,$sqlpass);
mysql_select_db($sqldatabase);
mysql_query('SET NAMES UTF8');
mysql_query('SET COLLATION_CONNECTION=UTF8_UNICODE_CI');






$query = "SELECT  `email`, `meno`, `priezvisko`, `ulica`, `cislo`, `psc`,  `mesto`, `firma`, `adresa_firmy`, `ico`, `dic`, `telefon`, `datum_skolenia`, `nazov_skolenia`, `cena_skolenia` FROM `kontakty`, `skolenia`  WHERE `email` LIKE '" . $_POST['email'] . "' LIMIT 1";
$result = mysql_query($query);
$line = mysql_fetch_array($result,MYSQL_ASSOC);

if($line) {
$form = '<form name="form2" action="confirmation.php" method=post>
<center>
<h1><font color="#FFFFFF">Martin Krug - Školenia / Overenie údajov</font></h1>
</center>
<br>
<div align="center">
<div id="body" style="width:800px;">
<div id="left" style="width:350px; float:left;">
<table>
	<tr>
		<td>Email:  </td><td><input type=text name="email" disabled="disabled" style="width: 210px" value="' . $line['email'] . '"/></td>
	</tr>
	<tr>	
		<td>Meno: </td><td><input type=text name="meno" disabled="disabled" style="width: 210px" value="' . $line['meno'] . '"/></td>
	</tr>
	<tr>
		<td>Priezvisko: </td><td><input type=text name="priezvisko" disabled="disabled" style="width: 210px" value="' . $line['priezvisko'] . '"/></td>
	</tr>
	<tr>
		<td>Ulica a popisné číslo:  </td><td><input type=text name="ulica" style="width: 150px" disabled="disabled" value="' . $line['ulica'] . '"/>
                            <input type=text name="cislo" style="width: 50px" disabled="disabled" value="' . $line['cislo'] . '"/></td>
	</tr>
	<tr>
		<td>Mesto a PSČ: </td><td><input type=text name="mesto" disabled="disabled" style="width: 150px" value="' . $line['mesto'] . '"/>
	 	 <input type=text name="psc" style="width: 50px" disabled="disabled" value="' . $line['psc'] . '"/></td>
	</tr>
	<tr>
		<td>Názov Firmy: </td><td><input type=text name="firma" disabled="disabled" style="width: 210px" value="' . $line['firma'] . '"/></td>
	</tr>
	<tr>
		<td>Adresa Firmy: </td><td><input type=text name="adresa_firmy" disabled="disabled" style="width: 210px" value="' . $line['adresa_firmy'] . '"/></td>
	</tr>
	<tr>
		<td>IČO: </td><td><input type=text name="ico" disabled="disabled" style="width: 210px" value="' . $line['ico'] . '"/></td>
	</tr>
	<tr>
		<td>DIČ: </td><td><input type=text name="dic" disabled="disabled" style="width: 210px" value="' . $line['dic'] . '"/></td>
	</tr>
	<tr>
		<td>Telefón: </td><td><input type=text name="telefon" disabled="disabled" style="width: 210px" value="' . $line['telefon'] . '"/></td>
	</tr>

	<tr>
		<td>Datum školenia: </td><td><input type=text name="datum_skolenia" disabled="disabled" style="width: 210px" value="' . $line['datum_skolenia'] . '"/></td>
	</tr>
	<tr>
		<td>: </td><td><input type=text name="nazov_sklonia" disabled="disabled" style="width: 210px" value="' . $line['nazov_skolenia'] . '"/></td>
	</tr>
	<tr>
		<td>Cena Školenia: </td><td><input type=text name="cena_skolenia" disabled="disabled" style="width: 210px" value="' . $line['cena_skolenia'] . '"/></td>
	</tr>

	<tr>
		<td></td><td align="center"><a href="javascript:history.go(-1)" title="Return to previous page"><input type=submit value="Naspäť"></a><input type=submit value="Potvrdiť"></td>
	</tr>
</table>
</div>


</div>


</form>';
echo $form;

} else {


echo "<p>Neplatný alebo neexsitujúci email</p>";


echo "<p><a href=\"javascript:history.go(-1)\" title=\"Return to previous page\">&laquo; Späť</a></p>";
}



//odpojenie zo servera
mysql_close($sqlhandle);

?>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MySQL : union select problem

Príspevok od používateľa audiotrack »

radšej si mal napísať štruktúru tých tabuliek, keď neviem stlpce tak neviem na základe čoho ich má prepojiť. Tento kod je úplne zbytočne uvedený. Napíš slovne čo to query má vrátiť, v akom vzťahu majú byť kontakty a skolenia a aké stlpce obsahujú.
Ovecka
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1227
Registrovaný: 25 aug 2005, 0:57

Re: MySQL : union select problem

Príspevok od používateľa Ovecka »

audiotrack mas pravdu .... ja si za sebou necitam moja chyba... pak to takto konci
sebci
Star
Star
Používateľov profilový obrázok
Príspevky: 600
Registrovaný: 28 feb 2006, 16:03
Bydlisko: ZVOLEN, centrum

Re: MySQL : union select problem

Príspevok od používateľa sebci »

Stlpce KONTAKTY = `email`, `meno`, `priezvisko`, `ulica`, `cislo`, `psc`, `mesto`, `firma`, `adresa_firmy`, `ico`, `dic`, `telefon`,

Stlpce SKOLENIA = `datum_skolenia`, `nazov_skolenia`, `cena_skolenia`

prepojenie medzi samotnými tabulkami nema byť ziadne

Jediné o čo mi ide aby fungoval výpis z jednej aj z druhej do jedneho formuláru (do jeho polí, selectboxov), pritom z PRVEJ tabulky kontakty ma vytiahnut údaje na základe zadaného emailu v prvej casti index. a z DRUHEJ tabulky ma len vytiahnut VŠETKY udaje prakticky pojdu nie do polí ale select boxov, samozrejme tie druhe udaje nemaju mat nijaku suvislost s prvými takisto NEmaju byt viazane na prvo zadanu emailovu adresu.

je to zrozumitelne? alebo mam to spravit systemom ze v jednej stranke otvorim spojenie s databazou vlozi mi udaje podla emailovej adresy nasledne zavriem spojenie a znovu otvorim ho a iba jednoducho necham vypisat udaje z druhej tabulky do select boxov? a 2x uzavriet spojenie s databazou? ako silne pochybujem ze je to mozne som s toho zmateny nejsom v tom skuseny ale chcem sa tomu priucit.

Velmi pekne dakujem
sINN3R
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 330
Registrovaný: 17 jún 2006, 11:21
Bydlisko: Trencin - Slovakia - EU
Kontaktovať používateľa:

Re: MySQL : union select problem

Príspevok od používateľa sINN3R »

a este si mal doplnit ze by si mal nastudovat ako pracuje funkcia UNION pretoze som si neni celkom isty ze vie co to robi, mozno by si skor mal porozmyslat nad JOIN.
sebci
Star
Star
Používateľov profilový obrázok
Príspevky: 600
Registrovaný: 28 feb 2006, 16:03
Bydlisko: ZVOLEN, centrum

Re: MySQL : union select problem

Príspevok od používateľa sebci »

ani jedno ani druhe nebolo vobec treba, po dlhsej chvile som to spravil stacilo pred kazdym formularom vytvori nový SELECT na vyťah udajov z roznych tabuliek v jednej databaze. ani union ani join nebolo treba

Moj daľší dotaz ak možem tak sa jedna o javascript sum, problém je nasledovny :

jednoduchy script tu : http://javascript.internet.com/forms/au ... boxes.html

implementovaný k údajom vytiahnutých s DB do input proste s databazy si vytiahne čisla a nasledne tie čisla chcem spočitať do vyslednej sumy ibaže čo? nejde to. preto sa chcem spytať či je to spôsobené tým že samotný script sa vykoná ešte pred načítaním udajov s DB? i ked ako pozeram pri akejkolvek zmene udajov v input boxoch by sa malo automaticky prepočitavať na vyslednu sumu.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: MySQL : union select problem

Príspevok od používateľa chrono »

Ako (a kedy) do tých vstupných políčok zadávaš tie čísla? Robíš to pomocou Ajax?
Napísať odpoveď