[Funktion] auf doppelt überprüfen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Funktion] auf doppelt überprüfen?

    Hallo brauche dringend hilfe und hoffe Ihr könnt mir da weiterhelfen!?!

    Also ich benötige eine funktion die prüft, ob es bereits einen Eintrag (Reise) gibt mit

    der ausgewählten Schiffs_ID,
    dem ausgewählten Starttermin,
    und mit der Reisedauer von

    wen ja Fehlermeldung: es existiert bereits ein Eintrag so und so

    Mein Code funktion.lib:

    PHP-Code:
    function pruefeAufDoppeltenEintrag($verbindung$schiffe_id$starttermin$dauer) {
        
    $query "SELECT * FROM `reisen` WHERE schiffe_id='$schiffe_id' AND starttermin='$starttermin'AND dauer='$dauer'";
        
    $ergebnis mysql_query($query$verbindung);
        
    $doppelt false;
        
        while((
    $zeile mysql_fetch_array($ergebnisMYSQL_ASSOC)) && !$doppelt) {
            
    $start $zeile['starttermin'];
            
    $ende $start 24 60 60 $zeile['dauer'];
            
            if(
    $start <= $starttermin && $ende >= $starttermin) {
                
    $doppelt true;
            }
       return 
    $doppelt

    Mein Code in der Formular ausgabe Seite:

    PHP-Code:
    $doppelt pruefeAufDoppeltenEintrag($verbindung$schiffe_id$starttermin); 
    Kann mir da jemand helfen??? Ich selber finde keine Lösung, bin ein absoluter Anfänger, vielen Dank in voraus

    MR

  • #2
    Re: [Funktion] auf doppelt überprüfen?

    Original geschrieben von meliah_rage
    Ich selber finde keine Lösung
    Zahlreiche Antworten hast du aber hier schon bekommen:
    http://forum.de.selfhtml.org/?t=153607&m=999499
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ja aber ich musste einiges ändern und ich weiß einfach nicht wie ich das umsetzen soll, mir fehlt der komplette Ansatz!!!

      Ich suche, lese, und teste seit mehren Tagen, aber irgendwie find ich den korrekten Anfang hier nicht... wär echt klasse wen ihr mir da nochmals helfen würdet - sorry nochmal aber ich will ja auch verstehen was ich da mache - MR

      Kommentar


      • #4
        Wie ist denn die Spaltendefinition von 'starttermin' ? Ist das ein UNIX_TIMESTAMP oder ein MySql Date Field ?
        Hast du dir mal testweise die Werte nach deren Belegung
        PHP-Code:
        $ergebnis mysql_query($query$verbindung) OR die(mysql_error());
        $doppelt false;
        while((
        $zeile mysql_fetch_array($ergebnisMYSQL_ASSOC)) && !$doppelt) {
          
        $start $zeile['starttermin'];
          
        $ende $start 24 60 60 $zeile['dauer'];
          
        var_dump($start,$starttermin,$ende);
          continue;
          [...]

        ausgeben lassen ? Lässt du allfällige MySql Fehlermeldungen ausgeben ?Hast du das error_reporting aufgedreht ?
        PHP-Code:
        error_reporting(E_ALL); 
        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          also die DB einträge sind folgende:

          Reisen
          id auto_increment
          reederei_veranstalter_id
          fahrtgebiete_id
          schiffe_id
          starttermin
          reisedauer
          preis_pro_person

          Reisen Anzeige:
          id = 1
          reederei_veranstalter_id = 7
          fahrtgebiete_id = 3
          schiffe_id = 2
          starttermin = 1167606000
          reisedauer = 5
          beschreibung = Test Eintrag 1
          preis_pro_person = 3780

          MySQL error meldungen werden keine Angezeigt! Werden aber im Code mit MySQL_error(); und DIE abgefragt! Allerdings nur oben beim Verbindungsaufbau!?!

          Wie kann ich den so eine Prüfung formulieren das diese auch einigermaßen sinnvoll ist, und vor allem Funktioniert - Bin für jede Hilfe dankbar... da ich alleine kein Idee habe

          PHP-Code:
          function pruefeAufDoppeltenEintrag($verbindung$schiffe_id$starttermin$reisedauer) {
              
          $query "SELECT * FROM `reisen` WHERE schiffe_id='$schiffe_id' AND starttermin='$starttermin' AND reisedauer='$reisedauer'";
              
          $ergebnis mysql_query($query$verbindung);
              
          $doppelt false;
              
              if (
          mysql_num_rows($ergebnis) > 0) {
                  
          $doppelt true;
              }
             return 
          $doppelt

          Was fehlt ist die eigentliche Prüfungsabfrage mit if else, Fehlermeldung z.B dieses Schiff ist unterwegs, (Starttermin + Dauer)

          MR - vilen Dank für die Hilfe!!!

          Kommentar


          • #6
            Hast du das die(mysql_error()) auch direkt NACH dem Absetzen deiner Query gemacht ? imho wird sich mysql über ' und ' bei Integer Spalten beschweren.

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Original geschrieben von jahlives
              imho wird sich mysql über ' und ' bei Integer Spalten beschweren.
              Nö, damit sollte es klarkommen.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                PHP-Code:
                <?php

                function starteDatenbank() {
                    
                $host ='';
                    
                $user ='';
                    
                $passwort '';
                    
                $db ';

                    $verbindung = @mysql_connect($host, $user, $passwort);

                    if (!$verbindung) {
                        die('
                Keine Verbindung zum Datenbank-Server' . mysql_error());
                    }

                    mysql_select_db($db, $verbindung)or die('
                Konnte Datenbank nicht Auswaehlen' . mysql_error());
                    mysql_query('
                SET NAMES utf8');

                    return $verbindung;
                so sieht es ganz am Anfang der Funktion.lib aus...denke das stimmt schon

                Mit der vorhergehenden Error ALL bringt er mir nur undefinierte Index und undefinierte Variablen?

                leider kann ich hier nicht den ganzen Code Posten
                grüße MR und danke für die Mühe und Hilfestellung

                Kommentar


                • #9
                  Original geschrieben von meliah_rage
                  Mit der vorhergehenden Error ALL bringt er mir nur undefinierte Index und undefinierte Variablen?
                  Na dann weisst du ja, was du jetzt zu tun hast - die Ursachen dieser Meldungen beseitigen.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    hab ich doch gerade gemacht! Gibt jetzt keine Fehlermeldung mehr aus...??? Aber weder in der Firefox Fehlerkonsole noch auf den php Seiten... die Formulierung einer solchen Prüfung gestalltet sich aber wirklich kompliziert??? Das was ich nicht verstehe wie ich es Formulieren muss

                    grüße MR
                    Zuletzt geändert von meliah_rage; 08.06.2007, 13:46.

                    Kommentar

                    Lädt...
                    X