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?
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.
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');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'";
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ä.
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.
OK, katselen näitä asioita. Kiitos avusta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.