tjumsen Skrevet 28. september 2013 Del Skrevet 28. september 2013 jeg trenger noe hjelp med php if else . . jeg trenger litt hjelp til og lage til slik at man kan legge en tekst som 10001 i en html form og da finner man det i en DB , vist han er merket inne så skal han oppdaterers med merket ute .. og motsatt man er ute og skal oppdateres med inne ..noen som kan hjelpe meg med det ? Lenke til kommentar
trondes Skrevet 28. september 2013 Del Skrevet 28. september 2013 Dette tror jeg nok du klarer selv igrunn bare 5 deler. Les fra $_POST Hent data fra databasen ( SELECT * FROM xxxxx WHERE xxxxxx ) Sjekk om han er registert som inne eller ute oppdatert databasen med inne eller ute gi tilbakemelding til brukeren Start på den første delen, og spør hvis du står fast så vil jeg mer en gjerne hjelp deg Lenke til kommentar
tjumsen Skrevet 28. september 2013 Forfatter Del Skrevet 28. september 2013 ja den biten har jeg . og klare og hente info fra den . men det er dette med hvordan jeg skal få den if else funksjon til og virke . jeg har prøvd og lese litt på php.net . men vart ikke så smart av det . jeg har den update funksjonen til mysql .$db="my db";$link = mysql_connect('localhost', 'root', 'root');if (! $link)die("Couldn't connect to MySQL");mysql_select_db($db , $link)or die("Couldn't open $db: ".mysql_error());mysql_query(" UPDATE my_table SET name='$name' , name2='$name2' , name3='$name' WHERE code='$code'");echo "Record Updated";mysql_close($link);?> men jeg trenger litt hjelp og kjøre denne sammen med if inne update to ute else if ute update ute . Lenke til kommentar
Yawa Skrevet 28. september 2013 Del Skrevet 28. september 2013 (endret) Det første du må gjøre er å hente ut data fra databasen. Det kan du gjøre slik: $qry = mysql_query(SELECT * FROM my_table WHERE code = mysql_real_escape_string($_POST['code']); $get = mysql_fetch_assoc($qry); nå kan du foreta en php if/else slik: if ($get['field']=='inne'){ $to = 'ute'; } else { $to = 'inne'; } $upd = mysql_query('UPDATE my_table SET target = '.mysql_real_escape_string($to).' WHERE code = '.mysql_real_escape_string($_POST['code'])); OBS! Nå er jeg litt rusten på mysql da det er er en stund siden jeg har benyttet det, så dobbeltsjekk at jeg har skrevet riktig. Jeg vil anbefale deg å se nærmere på PDO eller evt. mysqli i den forbindelse. Men som du ser, så henter jeg først ut data fra databasen. Videre sjekker jeg dataen med php.if/else for å avgjøre hvilken ny verdi som skal sette ("inne" eller "ute") Til slutt, når jeg vet hvilken verdi som skal benyttes, oppdaterer jeg tabellen basert på angitt referanse. Endret 28. september 2013 av Yawa Lenke til kommentar
Thorbear Skrevet 28. september 2013 Del Skrevet 28. september 2013 Ok, punkt 1: Ikke bruk mysql_*Disse funksjonene er utdaterte, usikre, og vil bli fjernet fra fremtidige versjoner av PHP. Om du ønsker en veldig enkel overgang til et litt bedre system kan du kikke på mysqli_*Om du ønsker å lære deg det som i dag ansees for å være det beste og sikreste, kikk på "prepared statements" gjennom enten mysqli eller PDO. Personlig anbefaler jeg PDO, fordi den gir noe ekstra funksjonalitet, og fordi du da ikke trenger å lære deg nye funksjoner om du seinere skal utvikle mot en annen type database enn MySQL. Punkt 2: Benytt deg av krøllparanteser og innrykk if (! $link) { die("Error"); } Dette gjør det mye enklere å lese koden. Når det gjelder selve problemet ser det ut til at du prøver å gjøre alt sammen i én eneste SQL-setning, om du ikke har noe særlig erfaring med verken PHP eller SQL vil jeg fraråde deg å gjøre det på den måten først. Begynn heller med noe slik: Kjør en spørring (SELECT) for å hente ut informasjon om person med den gitte koden. Sjekk så denne informasjonen for å se om personen er inne eller ute, hvis du for eksempel har en boolean i databasen for å håndtere dette sjekker du ganske enkelt om denne er true eller false, og setter inn det motsatte i databasen med en UPDATE. Lenke til kommentar
tjumsen Skrevet 30. september 2013 Forfatter Del Skrevet 30. september 2013 ok ..jeg har sett denne opp noe slikt nå . <? $con = mysql_connect('localhost','root','root'); if (!$con){ die ("Kunne ikke koble til databasen" . mysql_error()); } mysql_select_db('hlan', $con); $qry = mysql_query(SELECT * FROM ticket WHERE id = mysql_real_escape_string($_POST['code']); $get = mysql_fetch_assoc($qry); if ($get['status']=='inne'){ $to = 'ute'; echo "Record ute"; } else { $to = 'inne'; echo "Record inne"; } $upd = mysql_query('UPDATE ticket SET status = '.mysql_real_escape_string($to).' WHERE id = '.mysql_real_escape_string($_POST['code'])); ?> DB tabellen mine ser slikt ut id name nick email klan combo plass status 10001 name test [email protected] crew TrackMania A1 Inne men jeg får ikke denne koden til og virke .. Lenke til kommentar
Feh Skrevet 1. oktober 2013 Del Skrevet 1. oktober 2013 (endret) En enklere måte å skrive connectsetningen på: connect.php <?php $connect = mysqli_connect('localhost', 'username', 'password', 'database') or die (mysqli_error()); $fetch='mysqli_fetch_assoc'; $query='mysqli_query'; $escape='mysqli_real_escape_string'; ?> ettellerannet.php <?php require('connect.php'); $code=$escape($_POST['code']); $query_status = $query($connect, "SELECT * FROM ticket WHERE id = '$code'"); while($row=$fetch($query_status)) { if($row['status'] == 'inne') { $status='ute'; } else if ($row['status'] == 'ute') { $status='inne'; } } $query($connect, "UPDATE ticket SET status='$status' WHERE id='$code'") or die("Spørring feilet: <br />".mysqli_error()); ?> <p>Brukeren er <?php echo $status; ?></p> Utestet, men tror det skal virke. Jeg vet ikke hvor "code" kommer fra, men jeg tipper at du ikke trenger å escape den. Aldri bruk short_tag, <?. Bruk alltid <?php når du starter php kode. Anbefaler deg også å legge mysqli_connect i en egen fil som du bare kan inkludere på hver side der du trenger den, istedenfor å skrive inn setningen på alle sider. Jeg pleier også å lagre mysqli kommandoene som variabler, så jeg sparer meg selv for mye unødvendig skriving av lange strenger som mysqli_real_escape_string etc. Sånn ellers, hva er det du egentlig skal med scriptet? Jeg har litt vanskelig for å forstå hva du egentlig er ute etter her. Er poenget at du selv skal kunne sette statusen til brukerne, via en form? Eller skal statusen oppdateres dersom de f.eks logger seg inn? Endret 1. oktober 2013 av Feh Lenke til kommentar
tjumsen Skrevet 2. oktober 2013 Forfatter Del Skrevet 2. oktober 2013 jeg skal bruke dette via en form . man skriver inn billett nr sitt og da kan man se hvem som er inne og hvem som er ute . Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå