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.