dbouraza Δημοσ. 2 Μαΐου 2022 Δημοσ. 2 Μαΐου 2022 Καλησπέρα σας. Εχω καιρό να γράψω σε php και έχω κολλήσει σε ένα σημείο. με if else για να κάνω εισαγωγή σε βάση. Παιρνω μηδενική τιμή και δεν μπορώ να βρώ που έχω κάνει λάθος. Θα μπορούσε κάποιος να με βοηθήσει?
dbouraza Δημοσ. 3 Μαΐου 2022 Μέλος Δημοσ. 3 Μαΐου 2022 Εχεις δίκιο. Τωρα δεν ξέρω αν πρέπει να το ανεβάσω σας code ή σαν file. Τελος πάντων το ανεβάζω έτσι. Στο bold μέρος είναι που έχω το πρόβλημα. Μου δίνει μηδενική τιμή στα $visitsrvdate=int($data['visitsrvdate']); και $visitdate=int($data['visitdate']); ενώ υπάρχει περιεχόμενο στη βάση. Σαν να μην τις διαβάζει αυτές τις γραμμές καν. Ευχαριστώ για το χρόνο <?php include_once('includes/connection.php'); include_once('includes/help_functions.php'); $visit= new Lifts; $id = $_GET['id']; $data = $visit->fetch_visitsingle($id); $visitdate1=date('d-m-Y',$data['visitdate']); $visitsrvdate1=date('d-m-Y',$data['visitsrvdate']); if(count($_POST)>0){ $visitid=$_POST['visitid']; $visitliftid=$_POST['visitliftid']; $visittype=$_POST['visittype']; $visitamount=$_POST['visitamount']; $visitvat=$_POST['visitvat']; if ($_POST['visitsrvdate']) { $visitsrvdate=strtotime($_POST['visitsrvdate']); } else { $visitsrvdate=int($data['visitsrvdate']); } if ($_POST['visitdate']) { $visitdate=strtotime($_POST['visitdate']); } else { $visitdate=int($data['visitdate']); } $visitinfo=nl2br($_POST['visitinfo']); $query = $pdo->prepare('UPDATE visit SET visitliftid=?, visittype=?, visitamount=?, visitvat=?, visitsrvdate=?, visitdate=?, visitinfo=? WHERE visitid=?'); $query->bindValue(1, $visitliftid); $query->bindValue(2, $visittype); $query->bindValue(3, $visitamount); $query->bindValue(4, $visitvat); $query->bindValue(5, $visitsrvdate); $query->bindValue(6, $visitdate); $query->bindValue(7, $visitinfo); $query->bindValue(8, $visitid); $query->execute(); header('Location:lift.php?id='.$visitliftid); } include_once('header.php');?> <div class="c_form"> <h4>Προσθήκη Νέας Επισκεψης</h4> <?php if (isset($error)) { ?> <small><?php echo $error;?></small> <?php } ?> <form action="uvisit.php?id=<<?php echo $id; ?>" method="post" autocomplete="off"> <label><input type="hidden" name="visitid" value="<?php echo $data['visitid'];?>"/></label> <label><select name="visittype"> <option value="<?php echo $data['visittype'];?>"><?php echo $data['visittype'];?> (Εαν διαφορετικό παρακαλω επιλεξτε)</option> <option value="Συντήρηση">Συντήρηση</option> <option value="Επισκευή">Επισκευή</option> <option value="Βλάβη">Βλάβη</option> <option value="Εξοδα">Εξοδα</option> </select></label> <label><input type="hidden" name="visitliftid" value="<?php echo $data['visitliftid'];?>"/></label> <label><input type="text" name="visitamount" value="<?php echo $data['visitamount'];?>" placeholder="Ποσό Συντήρησης" /></label> <label><input type="text" name="visitvat" value="<?php echo $data['visitvat'];?>" placeholder="Πόσο ΦΠΑ (Μονο ο αριθμός)" /></label> <label>Ημερομηνία Επισκεψης: <?php echo $visitsrvdate1;?><input type="date" name="visitsrvdate" /></label> <label>Ημερομηνία Πληρωμής: <?php echo $visitdate1;?><input type="date" name="visitdate" /></label> <label><textarea rows="15" cols="60" placeholder="Πληροφορίες" name="visitinfo"><?php echo $data['visitinfo'];?></textarea></label> <label><input type="submit" value="Ανανέωση"></label> </form> </div> <?php include_once('footer.php');?>
k33theod Δημοσ. 5 Μαΐου 2022 Δημοσ. 5 Μαΐου 2022 (επεξεργασμένο) Δεν ξέρω με το int που κάνεις μήπως σου χαλάει τις ημερομηνίες, To timestamp είναι long. To int δεν είναι συνάρτηση και χρησιμοποιείται έτσι (int) $value, Σαν συνάρτηση χρησιμοποίησε το intval ($data['visitdate']) Πέρνεις από την db το visit με αυτή τη γραμμή $data = $visit->fetch_visitsingle($id); και τις ίδιες τιμές στις ημερομηνίες τις πέρνεις και πάνω με τα visitdate1 και visitsrvdate1. Τι τιμές έχουν τα visitdate1 και visitsrvdate1 είναι άδεια? Αν ναι και η εγγραφή με το $id υπάρχει τότε πρέπει να δεις για πρόβλημα στο $visit->fetch_visitsingle($id) γιατί ενώ πρέπει να φέρει δεδομένα δεν το κάνει. Τα if kai else δεν έχουν κάποιο συντακτικό λάθος. Επεξ/σία 5 Μαΐου 2022 από k33theod
Moderators Kercyn Δημοσ. 6 Μαΐου 2022 Moderators Δημοσ. 6 Μαΐου 2022 Τις τιμές αυτές πώς τις περνάς; Γιατί εγώ δε βλέπω πουθενά να εμπλέκεται καμιά βάση στο bold.
dbouraza Δημοσ. 6 Μαΐου 2022 Μέλος Δημοσ. 6 Μαΐου 2022 Ευχαριστω πολύ για το χρόνο σας. Τις τιμες απο τη βάση τις παίρνω απο το $data = $visit->fetch_visitsingle($id); Τα visitdate1 και visitsrvdate1 δεν είναι άδεια είναι η ημερομηνία που μου εχω δώσει στην αρχική εγγραφή και μου τα δίνει στην φόρμα σαν υπάρχουσα τιμή. Μετά όταν κάνω update παίρνω το if else, δηλαδη αν έχει τιμή στο πεδίο ή φόρμα τότε περνάει την τιμή από τη φόρμα αλλιώς παίρνει την τιμή που υπάρχει ήδη στη βάση ($data['visitsrvdate']). Τα values των πχ $visitsrvdate=int($data['visitsrvdate']); το έχω τσεκάρει και παίρνει από την $data = $visit->fetch_visitsingle($id); . Ναι το int είναι λάθος το copiara κατα λάθος δεν το έχω στο κώδικα, κανονικά είναι σκέτο. Δεν μπορώ να καταλάβω τι λάθος κάνω.
k33theod Δημοσ. 7 Μαΐου 2022 Δημοσ. 7 Μαΐου 2022 Στις 3/5/2022 στις 10:37 ΜΜ, dbouraza είπε Μου δίνει μηδενική τιμή στα $visitsrvdate=int($data['visitsrvdate']); και $visitdate=int($data['visitdate']); ενώ υπάρχει περιεχόμενο στη βάση. Εφόσον λες ότι έχεις τιμή εδώ $visitdate1=date('d-m-Y',$data['visitdate']); δεν μπορώ να καταλάβω γιατί πιστεύεις ότι είναι null τό $visitsrvdate το κάνεις echo και βλέπεις ότι είναι null? Δοκίμασε χωρίς καθόλου cast (int). Τι βάση χρησιμοποιείς και τι data έχεις στα dates
Λύση dbouraza Δημοσ. 8 Μαΐου 2022 Μέλος Λύση Δημοσ. 8 Μαΐου 2022 Σας ευχαριστω πολύ για το χρόνο σας. Με αυτα που είπατε με έκαναν να δω πιο προσεκτικά τον κώδικα και τελικά το λάθος ήταν ένα < <form action="uvisit.php?id= << ?php echo $id; ?>" method="post" autocomplete="off"> Εκανε το submit αλλα οχι σωστα. Και πάλι ευχαριστώ για το χρόνο σας
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα