Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL, PHP: useiden rivien muutos yhdellä lomakkeella

aksun [05.05.2013 19:40:23]

#

hei, onko mahdollista muuttaa useita rivejä yhdellä mysql lausekkeella?
Minulla on tässä tällane 2v2 liiga-sivu, ja tarkotuksena ois et häviäjä ilmottaa tuloksen lomakkeeseen. Tässä tulee kumminkin ongelma. Lomakkeen tarkoitus ois editoida mysql taulua(voitot ja häviöt-sarakkeita), kummankin pelaajan osalta. Mietin miten tämän voisi tehdä vai pitääkö laittaa kaksi eri lomaketta?

Metabolix [05.05.2013 19:43:40]

#

Lomakkeella ja SQL-kyselyillä ei ole mitään tekemistä keskenään, vaan voit aivan hyvin ajaa kaksi SQL-kyselyä peräkkäin, vaikka käyttäjä olisi lähettänyt vain yhden lomakkeen.

aksun [07.05.2013 20:40:20]

#

Joo, kokeilin laittaa kaksi kyselyä samaan variaabeliin, mutta vain toinen rivi päivittyy vaan(häviöt). mikä on vikana?

// hae lomakemuuttujat
$voittaja = $_POST['voittaja'];
$havi = $_POST['haviaja'];
$voitp = $_POST['voittajap'];
$havip = $_POST['haviajap'];
$nimi = $_POST['nimi'];

//yhteys ulkoiselle palvelimelle
$yhteys = mysql_connect("localhost", "asdlol :D", "asdlol :D");

//valitaan tietokanta "testi"
mysql_select_db("asdlol :D", $yhteys) or die("Tietokantaa ei löytynyt!");


//haetaan kaikki tietueet
$kysely = "UPDATE pelaajat SET voitot = voitot + 1, pinnat = pinnat + '$voitp' WHERE nimi='$voittaja'";
$kysely = "UPDATE pelaajat SET haviot = haviot + 1, pinnat = pinnat + '$havip' WHERE nimi = '$havi'";

//suoritetaan kysely
$haku = mysql_query($kysely, $yhteys);


//suljetaan yhteys
mysql_close($yhteys);

header('Location: ../index.php?nayta=Kiitos tiedosta');

tmub [07.05.2013 20:47:16]

#

Mieti mitä teet tässä

$kysely = "UPDATE pelaajat SET voitot = voitot + 1, pinnat = pinnat + '$voitp' WHERE nimi='$voittaja'";
$kysely = "UPDATE pelaajat SET haviot = haviot + 1, pinnat = pinnat + '$havip' WHERE nimi = '$havi'";

dartvaneri [07.05.2013 20:49:08]

#

Sijoitat tuossa ensiksi muuttujan arvoksi ekan kyselyn, ja sen jälkeen seuraavalla rivillä laitat sen arvoksi toisen kyselyn, joka korvaa edellisen arvon. Jos haluat liittää kaksi merkkijonoa, käytä .= -operaatiota.

Lisäksi suosittelen käyttämään PDO:ta ja opettelemaan PHP:n perusteet.

Edit.

$muuttuja = "kissa";
//muuttajan arvo on 'kissa'
$muuttuja = "koira";
//muuttujan arvo on 'koira'

$muuttuja = "kissa";
//muuttujan arvo on 'kissa'
$muuttuja .= " ja koira";
//muuttujan arvo on 'kissa ja koira'

Edit2. Ja turhaan yritä yhdistää nuita sql-lauseita, et onnistu siinä. Käytä kahta eri kyselyä.

Metabolix [07.05.2013 20:55:57]

#

Kysely suoritetaan kohdassa mysql_query. Sinulla pitäisi olla siis kaksi mysql_query-riviä, joilla ajetaan eri kyselyt.

Koodissasi on myös vakava tietoturva-aukko, mahdollisuus SQL-injektioon.

aksun [07.05.2013 21:19:01]

#

OK, katselen näitä asioita. Kiitos avusta.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta