Da hast du vollkommen recht, ich werde es am späteren abend oder Morgen Ausprobieren.. hab zurzei nur ein tablet im hotel dis eignet sich nicht für "Programmkerarbeiten"
Beiträge von schnibli
-
-
Ich denke so ist es richtig :
SQL
Alles anzeigen//sql befehl $sql = "SELECT * FROM `tblAnlagenNr` WHERE (`AnlagenNr` LIKE ? OR `ProjektBezeichnung` LIKE ?) AND `Autr-Erh` = '1' AND `revidiert` = 'Nein' AND `aktiv` = 'Ja'"; $stmt = $db->prepare($sql); $stmt->bind_param("ss", $suchstr, $suchstr); $suchstr = '%' . $_POST['suchstring'] . '%'; // $erg = $db->query ($sql) or die ("Fehlermeldung=".$db->error);
aber ich bekomme den Fehler:
-
Ich dache es ligt an der definition von stmt:
SQL
Alles anzeigen//sql befehl $sql = "SELECT * FROM `tblAnlagenNr` WHERE (`AnlagenNr` LIKE ? OR `ProjektBezeichnung` LIKE ?) AND `Autr-Erh` = '1' AND `revidiert` = 'Nein' AND `aktiv` = 'Ja'"; $stmt = $db->prepare($sql); $suchstr = '%' . $_POST['suchstring'] . '%'; $stmt->bind_param("ss", $suchstr, $suchstr);
aber jetzt erscheint dieser fehler:
-
Ich suche immer viel zu weit xD...
Nun jetzt wird es immer schöneSQLNotice: Undefined variable: stmt in /volume1/web/anlagen/suchen.inc.php on line 22 Fatal error: Call to a member function bind_param() on a non-object in /volume1/web/anlagen/suchen.inc.php on line 22
ich kann mir denke das dies:
Fehlt aber es ändert nichts :s -
Und ähm hier:
SQL
Alles anzeigenecho '<table id="myTable" class="tablesorter" rules="all">' echo"<thead>"; echo"<tr><th>Anlagen Nr.</th><th>Projekt Bezeichnung</th><th>Bearbeiten</th></tr>"; echo"</thead> "; echo"<tbody>"; while(($row = $erg->fetch_assoc()) !== Null){ echo ' <tr> <td>' . htmlspecialchars($row["AnlagenNr"]) . '</td> <td>' . htmlspecialchars($row["ProjektBezeichnung"]) . '</td> <td> <a href="anlagen_details.php?navi=2&ida=' . htmlspecialchars($row["AnlagenNr"]) . '&sda=' . htmlspecialchars($_POST['suchstring']) . '"> Ändern </td> </tr>';
bringt er einen fehler bei
-
Ich Nutze Notepad++ keine gute wahl?
-
Hab jetzt alles schön Angepasst:
SQL
Alles anzeigen//sql befehl $sql = "SELECT * FROM `tblAnlagenNr` WHERE (`AnlagenNr` LIKE ? OR `ProjektBezeichnung` LIKE ?) AND `Autr-Erh` = '1' AND `revidiert` = 'Nein' AND `aktiv` = 'Ja'" $suchstr = '%' . $_POST['suchstring'] . '%'; $stmt->bind_param("ss", $suchstr, $suchstr); // HIER fehlte ein semikolon ; // if(!$stmt->execute()){ echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error; } $erg = $db->query ($sql) or die ("Fehlermeldung=".$db->error); echo"<table id="myTable" class="tablesorter" rules="all">"; echo"<thead>"; echo"<tr><th>Anlagen Nr.</th><th>Projekt Bezeichnung</th><th>Bearbeiten</th></tr>"; echo"</thead> "; echo"<tbody>"; while(($row = $erg->fetch_assoc()) !== Null){ echo ' <tr> <td>' . htmlspecialchars($row["AnlagenNr"]) . '</td> <td>' . htmlspecialchars($row["ProjektBezeichnung"]) . '</td> <td> <a href="anlagen_details.php?navi=2&ida=' . htmlspecialchars($row["AnlagenNr"]) . '&sda=' . htmlspecialchars($_POST['suchstring']) . '"> Ändern </td> </tr>'; } echo"</tbody>"; echo"</table>";
Dabei gibt er mir bei Zeile 10 den fehler: -
Es geht nicht mehr lange er-schisse ich mich xD
SQL
Alles anzeigen//sql befehl $sql = "SELECT * FROM `tblAnlagenNr` WHERE (`AnlagenNr` LIKE ? OR `ProjektBezeichnung` LIKE ?) AND `Autr-Erh` = '1' AND `revidiert` = 'Nein' AND `aktiv` = 'Ja'" $suchstr = '%' . $_POST['suchstring'] . '%'; $stmt->bind_param("s", $suchstr) echo"<table id="myTable" class="tablesorter" rules="all">"; echo"<thead>"; echo"<tr><th>Anlagen Nr.</th><th>Projekt Bezeichnung</th><th>Bearbeiten</th></tr>"; echo"</thead> "; echo"<tbody>"; while(($row = $erg->fetch_assoc()) !== Null){ echo '<tr> <td>' . htmlspecialchars($row["AnlagenNr"]) . '</td> <td>' . htmlspecialchars($row["ProjektBezeichnung"]) . '</td> echo ' <td> <a href="anlagen_details.php?navi=2&ida=' . htmlspecialchars($row["AnlagenNr"]) . '&sda=' . htmlspecialchars($_POST['suchstring']) . '"> Ändern </td> '; </tr>'; } echo"</tbody>"; echo"</table>"; ?>
-
Hier:
SQL<td><a href="anlagen_details.php?navi=2&ida=' . htmlspecialchars($row["AnlagenNr"]) .'&sda='%' . htmlspecialchars($_POST['suchstring'] . '%') .'">Ändern</td>
habe ich doch noch einen Fehler mit ' und " nicht?Edit:
Ich bin glaube ich zu müde xD
SQL
Alles anzeigen//sql befehl $sql = "SELECT * FROM `tblAnlagenNr` WHERE (`AnlagenNr` LIKE ? OR `ProjektBezeichnung` LIKE ?) AND `Autr-Erh` = '1' AND `revidiert` = 'Nein' AND `aktiv` = 'Ja'" $stmt->execute(); $suchstr = '%' . $_POST['suchstring'] . '%'; -- Hier stehe ich auf dem Schlauch ... ...->bind_param("s", $suchstr) -- Hier stehe ich auf dem schlauch...
-
Ich glaub irgendewas stimmt nocht nicht
SQL
Alles anzeigen<?php ini_set('error_reporting', -1); ini_set('display_errors', -1); require_once '.././auth.php'; include('db_connect_i.inc.php'); //sql befehl $sql = "SELECT * FROM `tblAnlagenNr` WHERE (`AnlagenNr` LIKE ? OR `ProjektBezeichnung` LIKE ?) AND `Autr-Erh` = '1' AND `revidiert` = 'Nein' AND `aktiv` = 'Ja'" echo"<table id="myTable" class="tablesorter" rules="all">"; echo"<thead>"; echo"<tr><th>Anlagen Nr.</th><th>Projekt Bezeichnung</th><th>Bearbeiten</th></tr>"; echo"</thead> "; echo"<tbody>"; while(($row = $erg->fetch_assoc()) !== Null){ echo '<tr> <td>' . htmlspecialchars($row["AnlagenNr"]) . '</td> <td>' . htmlspecialchars($row["ProjektBezeichnung"]) . '</td> <td><a href="anlagen_details.php?navi=2&ida=' . htmlspecialchars($row["AnlagenNr"]) .'&sda=''%' . htmlspecialchars($_POST['suchstring'] . '%') .'">Ändern</td> </tr>'; } echo"</tbody>"; echo"</table>"; ?>
Es wird nichts gefunden :s
-
Sorry muss gestehen habe den error() noch nicht überall ausgemerzt... bin jetzt aber gerade dran
Die Suche-Abfrage
SQL
Alles anzeigen<?php ini_set('error_reporting', -1); ini_set('display_errors', -1); require_once '.././auth.php'; include('db_connect_i.inc.php'); //sql befehl $sql = "SELECT * FROM `tblAnlagenNr` WHERE (`AnlagenNr` LIKE ? OR `ProjektBezeichnung` LIKE ?) AND `Autr-Erh` = '1' AND `revidiert` = 'Nein' AND `aktiv` = 'Ja'" echo"<table id="myTable" class="tablesorter" rules="all">"; echo"<thead>"; echo"<tr><th>Anlagen Nr.</th><th>Projekt Bezeichnung</th><th>Bearbeiten</th></tr>"; echo"</thead> "; echo"<tbody>"; while(($row = $erg->fetch_assoc()) !== Null){ echo '<tr> <td>' . htmlspecialchars($row["AnlagenNr"]) . '</td> <td>' . htmlspecialchars($row["ProjektBezeichnung"]) . '</td> <td><a href="anlagen_details.php?navi=2&ida='.$row["AnlagenNr"].'&sda='.$_POST['suchstring'].'">Ändern</td> </tr>'; } echo"</tbody>"; echo"</table>"; ?>
Gibt mir einen Fehler jedoch Funktioniert es nicht
-
Das raffe ich jetzt nicht gant :s
SQL
Alles anzeigen$sql = "SELECT * FROM `tblAnlagenNr` WHERE (`AnlagenNr` LIKE ? OR `ProjektBezeichnung` LIKE ?) AND `Autr-Erh` = '1' AND `revidiert` = 'Nein' AND `aktiv` = 'Ja'"; $erg = $db->query ($sql) or die ("Fehlermeldung=".$db->error()); echo"<table id="myTable" class="tablesorter" rules="all">"; echo"<thead>"; echo"<tr><th>Anlagen Nr.</th><th>Projekt Bezeichnung</th><th>Bearbeiten</th></tr>"; echo"</thead> "; echo"<tbody>"; while(($row = $erg->fetch_assoc()) !== Null){ echo '<tr> <td>'.$row["AnlagenNr"].'</td> <td>'.$row["ProjektBezeichnung"].'</td> <td><a href="anlagen_details.php?navi=2&ida='.$row["AnlagenNr"].'&sda='.$_POST['suchstring'].'">Ändern</td> </tr>'; }
Gibt nichts aus :s
-
Das mit den Tabellen (1,2,3, = berlin,wien,amsterdam) habe ich schon realisiert (Dies vor allem wenn es eine Allgemeine Änderung gibt das ich diese nur 1 mal eintragen muss
Probleme habe ich hauptsächlich nur bei komplexen abfragen wie z.b. meine nächste xD meinen Suchstring:
SQL//sql befehl $sql = 'SELECT * FROM tblAnlagenNr WHERE AnlagenNr LIKE \'%'.$_POST['suchstring'].'%\' OR ProjektBezeichnung LIKE \'%'.$_POST['suchstring'].'%\'';
Hier müsste noch
Hinein, alles auf der Tabelle "tblAnlagenNr"Edit:
Es soll noch neben dem Suchfeld eine Checkbox geben ob z.b. "autr-Erh" beachtet werden soll oder nicht. :s -
Typ "Text" Beinhaltet ja oder nein (oder welches Fomat soll ich nehmen für ja/nein?) ja in der tblAnlagenNr
-
Die AnlagenNr sollte im Jahr nur ein mal vorkommen. Wenn dies jedoch mehrmals vorkommt, soll nur 1 mal der Datensatz erscheinen.
Währe es möglich die 2 Tabelle auch noch zu filtern?
Also dijenige mit der ProjektBezeichnung noch einen Filter einbauen auf die Spalte "erhalten" ?Deine Lösung funktioniert.
-
Ja
Den 06.06.2010 möchte ich nicht.
Nur dijenigen die in 2013 vorkommen aber nicht in 2014
Wenn einer in 2010 vorkommt aber nicht in 2014 möchte ich den nicht xDDie Abfrage Stimmt so wie ich sie oben gepostet habe, habe eine Kontrolle durchgeführt
Die Zählung der Eintrage habe ich auch realisiert:
Nun noch eines.
Ich habe nun das Ergebniss:
Ich Besitze nun eine 2 Tabelle (tabAnlagenNr)
Auf dieser Tabelle habe ich eine Spalte ("AnlagenNr") die enthält auch
zusätzlich enthält diese den Namen der Anlage ("ProjektBezeichnung")
Also so:
AnlagenNr // ProjektBezeichnungIst es nun möglich bei meiner abfrage dies so zu importieren das ich am schluss die AnlagenNr (wie bissher) und die Projektbezeichnung herauskriege? (Also eine Join Abfrage möchte ich noch einbinden :))
Sows hier:
-
Anzahl der Aufgelisteten Datensätze....
Ich Brauche dijenigen die in 2013 vorkommen aber nicht in 2014 deine Abfrage bringt mir aber jene die auch in 2014 vorkommen ich würde sagen das Trifft meine Abfrage
Grundauswahl von 2013 aber nicht wenn zwischen 1.1.2014 -31.12.2014Kann ich diese Abfrage sinvoll weiterverarbeiten?
Nun habe ich ja die Betreffende AnlagenNr..
Auf einer 2 Tabelle ("tblAnlageAllgemein") währen noch die Anlagenbez.("bezeichnung") die ich Anhand der Anlagennummern("AnlagenNr") zuordnen könnte, nur wo muss ich das einfügen -
Hahaha es sollen alle Anlagen die den Service im Jahre 2013 hatten:
aber noch nicht im Jahre 2014:SQLHAVING `AnlagenNr` NOT IN ( SELECT `AnlagenNr` FROM `tblServiceDaten` WHERE `ServiceDatum` BETWEEN '2014-01-01' AND '2014-12-31' )
sollen angezeigt werden.
Ich glaube so stimmt es hab mal par checks durchgeführt und es scheint zu funzennoch ein kleines ding, kann ich die ausgabe auch gleich zählen und aufliesten :)?
-
Nein falsch verstanden
alle Service die im Jahre 2013 erledigt wurden aber noch nicht im Jahre 2014 sollen angezeigt werden.
Dies bringt mir doch die Lösung:
SQLHAVING `AnlagenNr` NOT IN ( SELECT `AnlagenNr` FROM `tblServiceDaten` WHERE `ServiceDatum` BETWEEN '2014-01-01' AND '2014-12-31' )
Oder nicht?
-
Hallo,
Danke jetzt wird doch auch schon was Angezeigt.
Jedoch hast du mich glaube ich falsch verstanden.
Es sollen alle AnlagenNr von 2013 Angezeigt werden außer diejenigen die auch im 2014 erledigt wurden.
Nun werden mir "glaube ich" alle Anlagen angezeigt die "Nur" in 2013 vorkamen auch wenn es früher als 2013 warP.S. die Klammern habe ich auch verschwinden lassen
Edit:
Kann es sein das dies die Lösung ist xDSQL
Alles anzeigen$sql = " SELECT `AnlagenNr` FROM ( SELECT `AnlagenNr`, `ServiceDatum` FROM `tblServiceDaten` WHERE `ServiceDatum` BETWEEN '2013-01-01' AND '2013-12-31' ORDER BY `ServiceDatum` DESC ) AS Sortiert GROUP BY `AnlagenNr` HAVING `AnlagenNr` NOT IN ( SELECT `AnlagenNr` FROM `tblServiceDaten` WHERE `ServiceDatum` BETWEEN '2014-01-01' AND '2014-12-31' ) ";
Zeile 25