PF2G Posted August 17, 2012 at 01:44 PM Report #472584 Posted August 17, 2012 at 01:44 PM Boas, Eu estou a fazer a listagem dos automoveis do utilizador, e na edição faço uma box popup, mas nao consigo por a info nas input text: listagem dos automoveis (matricula e apolice) <?php $cod_car; $select_id="SELECT * FROM civil_users WHERE nif_user='".$_SESSION['username']."' OR email_user='".$_SESSION['username']."'"; $query_id=mysql_query($select_id, $connect) or die(mysql_error()); $id=mysql_fetch_assoc($query_id); $select_car="SELECT * FROM cars WHERE id_owner='".$id['id_user']."'"; $query_car=mysql_query($select_car, $connect) or die(mysql_error()); $car=mysql_fetch_assoc($query_car); ?> <table class="car_info"> <?php if($row_car=mysql_num_rows($query_car)!=0){ do{ ?> <tr> <td align="left"> Matrícula: </td> <td width="10px"></td> <td align="right"> <label> <?php echo $car['matricula_car']; ?> </label> </td> <td> <a href="#login-box" class="login-window"> <input class="button_edit" name="edit_car" type="submit" value="Editar"/> </a> </td> </tr> <tr height="10px"></tr> <tr> <td align="left"> Apólice: </td> <td width="10px"></td> <td align="right"> <label> <?php echo $car['apolice_seg']; ?> </label> </td> </tr> <tr> <td align="right" colspan="3"> <label > <?php echo $car['id_car']; ?></label> </td> </tr> <tr height="35px"></tr> <?php }while($car=mysql_fetch_assoc($query_car)); } ?> </table> box popup <?php $select_id_user="SELECT * FROM civil_users WHERE nif_user='".$_SESSION['username']."' OR email_user='".$_SESSION['username']."'"; $query_id_user=mysql_query($select_id_user, $connect) or die(mysql_error()); $id_user=mysql_fetch_assoc($query_id_user); $select_car_id="SELECT * FROM cars WHERE id_owner='".$id['id_user']."'"; $query_car_id=mysql_query($select_car_id, $connect) or die(mysql_error()); $car_id=mysql_fetch_assoc($query_car_id); ?> <!-- hidden inline form --> <div id="login-box" class="login-popup"> <a href="#" class="close"><img src="images/close_pop.png" class="btn_close" title="Close Window" alt="Close" /></a> <form method="post" class="signin" action="edit_car.php"> <fieldset class="textbox"> <label class="username"> <span>Matrícula:<?php echo $car_id['id_car']; ?></span> <input type="text" id="username" name="matricula_info" value="<?php echo $car_id['matricula_car'] ?>" /> </label> <label class="password"> <span>Apólice:</span> <input type="text" id="password" name="apolice_info" value="<?php echo $car_id['apolice_seg'] ?>" /> </label> <input class="button" type="submit" name="edit_car_info" value="Editar"/> </fieldset> </form> Alguem me pode ajudar, sff? Obrigado, PF2G
joaocasta Posted August 17, 2012 at 01:52 PM Report #472589 Posted August 17, 2012 at 01:52 PM (edited) <label class="username"> <span>Matrícula:<?php echo $car_id['id_car']; ?></span> <input type="text" id="username" name="matricula_info" value="<?php echo $car_id['matricula_car'] ?>" /> </label> <label class="password"> <span>Apólice:</span> <input type="text" id="password" name="apolice_info" value="<?php echo $car_id['apolice_seg'] ?>" /> </label> PF2G nao sei se reparaste mas esqueceste-te de colocar ";" em todos os echos que fizeste... e podias usar um while aqui $car_id=mysql_fetch_assoc($query_car_id); ve se resolve... Edited August 17, 2012 at 01:55 PM by joaocasta
PF2G Posted August 17, 2012 at 01:55 PM Author Report #472591 Posted August 17, 2012 at 01:55 PM Não resolve nada :S
pikax Posted August 17, 2012 at 03:06 PM Report #472621 Posted August 17, 2012 at 03:06 PM onde e' que o $id esta' declarado? <?php $select_id_user="SELECT * FROM civil_users WHERE nif_user='".$_SESSION['username']."' OR email_user='".$_SESSION['username']."'"; $query_id_user=mysql_query($select_id_user, $connect) or die(mysql_error()); $id_user=mysql_fetch_assoc($query_id_user); $select_car_id="SELECT * FROM cars WHERE id_owner='".$id['id_user']."'"; $query_car_id=mysql_query($select_car_id, $connect) or die(mysql_error()); $car_id=mysql_fetch_assoc($query_car_id); Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
PF2G Posted August 17, 2012 at 03:12 PM Author Report #472623 Posted August 17, 2012 at 03:12 PM É $id_user, ok. Mas continua a dar a mesma coisa, aparece a info do 2º registo em todos...
pikax Posted August 17, 2012 at 03:16 PM Report #472624 Posted August 17, 2012 at 03:16 PM Mas continua a dar a mesma coisa, aparece a info do 2º registo em todos... como assim? Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
PF2G Posted August 17, 2012 at 03:19 PM Author Report #472626 Posted August 17, 2012 at 03:19 PM <?php $query_id_user=mysql_query("SELECT * FROM civil_users WHERE nif_user='".$_SESSION['username']."' OR email_user='".$_SESSION['username']."'", $connect) or die(mysql_error()); $id_user=mysql_fetch_array($query_id_user); $query_car_id=mysql_query("SELECT * FROM cars WHERE id_owner='".$id_user['id_user']."'", $connect) or die(mysql_error()); $car_id=mysql_fetch_assoc($query_car_id); $query_infocar=mysql_query("SELECT * FROM cars WHERE id_car='".$car_id['id_car']."'", $connect) or die(mysql_error()); $infocar=mysql_fetch_assoc($query_car_id); ?> <!-- hidden inline form --> <div id="login-box" class="login-popup"> <a href="#" class="close"><img src="images/close_pop.png" class="btn_close" title="Close Window" alt="Close" /></a> <form method="post" class="signin" action="edit_car.php"> <fieldset class="textbox"> <label class="username"> <span>Matrícula:<?php echo $infocar['id_car']; ?></span> <input type="text" id="username" name="matricula_info" value="<?php echo $infocar['matricula_car']; ?>" /> </label> <label class="password"> <span>Apólice:</span> <input type="text" id="password" name="apolice_info" value="<?php echo $infocar['apolice_seg']; ?>" /> </label> <input class="button" type="submit" name="edit_car_info" value="Editar"/> </fieldset> </form> </div> Tenho aqui 3 registos. Se eu quiser editar qualquer que seja aparece-me a info do 2º registo.
pikax Posted August 17, 2012 at 03:23 PM Report #472628 Posted August 17, 2012 at 03:23 PM <?php $query_car_id=mysql_query("SELECT * FROM cars WHERE id_owner='".$id_user['id_user']."'", $connect) or die(mysql_error()); $car_id=mysql_fetch_assoc($query_car_id); $query_infocar=mysql_query("SELECT * FROM cars WHERE id_car='".$car_id['id_car']."'", $connect) or die(mysql_error()); $infocar=mysql_fetch_assoc($query_car_id); Isto vai muito provavelmente dar o mesmo resultado, acho que tens demasiadas querys e tem que ver que a a 1 query pode returnar varios valores, mas tu so' estas a apanhar o primeiro registo. Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
PF2G Posted August 17, 2012 at 03:36 PM Author Report #472632 Posted August 17, 2012 at 03:36 PM Ja tentei só mexer com esta: $query_car_id=mysql_query("SELECT * FROM cars WHERE id_owner='".$id_user['id_user']."'", $connect) or die(mysql_error()); $car_id=mysql_fetch_assoc($query_car_id); Mas não estou a ver como consigo o id_carro
joaocasta Posted August 17, 2012 at 03:38 PM Report #472633 Posted August 17, 2012 at 03:38 PM acho q podes fazer dois where.
pikax Posted August 17, 2012 at 03:38 PM Report #472635 Posted August 17, 2012 at 03:38 PM $query_car_id=mysql_query("SELECT * FROM cars WHERE id_owner='".$id_user['id_user']."'", $connect) or die(mysql_error())); $row = mysql_fetch_row($query_car_id); $carid = $row["id_car"]; Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
PF2G Posted August 17, 2012 at 03:47 PM Author Report #472638 Posted August 17, 2012 at 03:47 PM Não aparece nada. E se fizer: <?php $query_id_user=mysql_query("SELECT * FROM civil_users WHERE nif_user='".$_SESSION['username']."' OR email_user='".$_SESSION['username']."'", $connect) or die(mysql_error()); $id_user=mysql_fetch_array($query_id_user); $query_car_id=mysql_query("SELECT * FROM cars WHERE id_owner='".$id_user['id_user']."'", $connect) or die(mysql_error()); $row = mysql_fetch_array($query_car_id); $car_id = $row["id_car"]; ?> Dá-me a mesma treta mas é a info do 1º registo
pikax Posted August 17, 2012 at 03:55 PM Report #472639 Posted August 17, 2012 at 03:55 PM (edited) $result = mysql_query("SELECT c.* FROM cars c,civil_users cu WHERE (nif_user='".$_SESSION['username']."' OR email_user='".$_SESSION['username']."') AND c.id_owner = cu.nif_user"); while($row = mysql_fetch_row($result)) { echo "<h1>".$row["id_car"]."</h1>"; //imprime o id_car print_r($row); //imprime todos os campos echo "<br><br><br>"; //explicito! //codigo para mostrar os registos... } EDIT: corrigir erros no codigo Edited August 17, 2012 at 04:08 PM by pikax Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
PF2G Posted August 17, 2012 at 04:04 PM Author Report #472643 Posted August 17, 2012 at 04:04 PM Ei man que complicação. Dá a mesma
pikax Posted August 17, 2012 at 04:10 PM Report #472646 Posted August 17, 2012 at 04:10 PM Ei man que complicação. Dá a mesma Complicacao???? Complicacao era o que estavas a fazer. Era melhor usar joins, mas previ que ainda te ia confundir mais... Se fizeste copy&paste do meu codigo e nao te apareceu nenhum erro, e' melhor activares os erros no PHP, o codigo tinha uns erros, experimenta agr: $result = mysql_query("SELECT c.* FROM cars c,civil_users cu WHERE (nif_user='".$_SESSION['username']."' OR email_user='".$_SESSION['username']."') AND c.id_owner = cu.nif_user"); while($row = mysql_fetch_row($result)) { echo "<h1>".$row["id_car"]."</h1>"; //imprime o id_car print_r($row); //imprime todos os campos echo "<br><br><br>"; //explicito! //codigo para mostrar os registos... } EDIT: corrigir erros no codigo Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
yoda Posted August 17, 2012 at 06:14 PM Report #472687 Posted August 17, 2012 at 06:14 PM PF2G nao sei se reparaste mas esqueceste-te de colocar ";" em todos os echos que fizeste... Não é mandatório. @PF2G, Analisa bem a tua dúvida, porque ninguém te vai dar a solução pronta a usar. Até agora não tens participado muito a tentar resolvê-la, pelo que me parece (copiar e colar código não é resolver). before you post, what have you tried? - http://filipematias.info sense, purpose, direction
taviroquai Posted August 17, 2012 at 11:57 PM Report #472712 Posted August 17, 2012 at 11:57 PM (edited) <?php $query_id_user=mysql_query("SELECT * FROM civil_users WHERE nif_user='".$_SESSION['username']."' OR email_user='".$_SESSION['username']."'", $connect) or die(mysql_error()); $id_user=mysql_fetch_array($query_id_user); $query_car_id=mysql_query("SELECT * FROM cars WHERE id_owner='".$id_user['id_user']."'", $connect) or die(mysql_error()); $car_id=mysql_fetch_assoc($query_car_id); $query_infocar=mysql_query("SELECT * FROM cars WHERE id_car='".$car_id['id_car']."'", $connect) or die(mysql_error()); $infocar=mysql_fetch_assoc($query_car_id); ?> <!-- hidden inline form --> <div id="login-box" class="login-popup"> <a href="#" class="close"><img src="images/close_pop.png" class="btn_close" title="Close Window" alt="Close" /></a> <form method="post" class="signin" action="edit_car.php"> <fieldset class="textbox"> <label class="username"> <span>Matrícula:<?php echo $infocar['id_car']; ?></span> <input type="text" id="username" name="matricula_info" value="<?php echo $infocar['matricula_car']; ?>" /> </label> <label class="password"> <span>Apólice:</span> <input type="text" id="password" name="apolice_info" value="<?php echo $infocar['apolice_seg']; ?>" /> </label> <input class="button" type="submit" name="edit_car_info" value="Editar"/> </fieldset> </form> </div> Tenho aqui 3 registos. Se eu quiser editar qualquer que seja aparece-me a info do 2º registo. Vários problemas: 1. Não vejo código que indica o envio da identificação do carro quando clicas no "editar". Envias os dados por Ajax? Estás a enviar correctamente? Já viste no firebug? 2. também não vejo onde recebes o POST/GET da identificação do carro que envias-te no ponto 1 3. Claro, tens 3 registos mas só estás a obter 1 registo com $infocar=mysql_fetch_assoc($query_car_id); <?php $query_id_user=mysql_query("SELECT * FROM civil_users WHERE nif_user='".$_SESSION['username']."' OR email_user='".$_SESSION['username']."'", $connect) or die(mysql_error()); $id_user=mysql_fetch_array($query_id_user); $query_car_id=mysql_query("SELECT * FROM cars WHERE id_owner='".$id_user['id_user']."'", $connect) or die(mysql_error()); $row = mysql_fetch_array($query_car_id); $car_id = $row["id_car"]; ?> 4. nif = username ? email = username ? Isto está correcto? 5. Adiciona LIMIT 1 na 1º query onde procuras pelo utilizador (só para o caso de teres mais utilizadores que satisfação a condição WHERE 6. é aqui que supostamente deves selecionar (falta a coluna no WHERE) o carro com base na identificação que enviaste no ponto 1 Corrigi isso tudo! Edited August 18, 2012 at 12:03 AM by taviroquai
PF2G Posted August 18, 2012 at 08:36 AM Author Report #472722 Posted August 18, 2012 at 08:36 AM Vários problemas: 1. Não vejo código que indica o envio da identificação do carro quando clicas no "editar". Envias os dados por Ajax? Estás a enviar correctamente? Já viste no firebug? 2. também não vejo onde recebes o POST/GET da identificação do carro que envias-te no ponto 1 3. Claro, tens 3 registos mas só estás a obter 1 registo com $infocar=mysql_fetch_assoc($query_car_id); 4. nif = username ? email = username ? Isto está correcto? 5. Adiciona LIMIT 1 na 1º query onde procuras pelo utilizador (só para o caso de teres mais utilizadores que satisfação a condição WHERE 6. é aqui que supostamente deves selecionar (falta a coluna no WHERE) o carro com base na identificação que enviaste no ponto 1 Corrigi isso tudo! E usar o GET foi a primeira que experimentei, mas dá barraca por causa disto: <td> <a href="#login-box" class="login-window"> <input class="button_edit" name="edit_car" type="submit" value="Editar" /> </a> </td> Se eu acrescentar o GET não me dá nada. E sim nif = username ? email = username está correto, por que o $_SESSION ou é o nif ou o email.
joaocasta Posted August 18, 2012 at 09:04 AM Report #472723 Posted August 18, 2012 at 09:04 AM Porque nao colocar um form?
PF2G Posted August 18, 2012 at 11:32 AM Author Report #472730 Posted August 18, 2012 at 11:32 AM Não joaocosta. O que eu tenho de fazer e peço que alguem me ajude, pois nao estou ver maneira, é fazer o GET sem que dê problemas com o form popup. A maneira como fiz foi <a href="?matr=<?php echo $car['matricula'] ?>#login-box"> (...)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now