CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
21.03.2012, 22:48:12
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 44
Beiträge: 46
|
|
AW: Checkbox in BD-Tabelle schreiben
Vielen Dank erstmal für die Geduld und die Hilfe.
@Urvater deinen Tipp mit dem value="'.$datensatz['id'].'" habe ich zwar gelesen habe das aber irgendwie falsch verstanden, deshalb auch irgendwie ignoriert.
Ich bin jetzt soweit das er die Werte der Checkbox in den jeweiligen Datensatz schreibt.
Allerdings habe ich das Problem wenn ich einen Datensatz nicht auswähle, schreibt er keine 0.
Habe das jetzt mit Echo überprüft und er gibt mit bei nicht ausgewählter Checkbox die ID's nicht aus.
Brauche mal wieder einen Brotkrümmel um den richtigen Weg zu finden.
Wenn Ihr noch andere Fehler findet bin ich für jeden Hinweis wie immer sehr Dankbar :)
PHP-Code:
<html>
<head>
<title>test</title>
</head>
<body>
<?php
include("../php/connect.php");
$sql = "SELECT id, auto FROM fahrzeug";
$abfrageergebnis = mysql_query( $sql ) or trigger_error(mysql_error(),E_USER_ERROR);
if (isset($_REQUEST['checkbtn'])) {
foreach ($_REQUEST['checkbtn'] as $value){
echo "1:$value";
//mysql_query ("UPDATE fahrzeug SET status='1' WHERE id='$value'") OR die(mysql_error());
}
}else {
echo "0:$value";
//mysql_query ("UPDATE fahrzeug SET status='0' WHERE id='$value'") OR die(mysql_error());
}
?>
<form action="<? echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<table>
<?PHP
while ($datensatz = mysql_fetch_array( $abfrageergebnis ))
{
echo '<tr>';
echo '<td style="width:155px">' . $datensatz['auto'] . '</td>';
echo '<td style="width:15px"><input name="checkbtn[]" type="checkbox" value="'.$datensatz['id'].'"></td>';
echo '<tr>';
}
?>
<td style="width:15px"><input type="submit" value="Senden" name="submit"></td>
</table>
</form>
</body>
</html>
|
22.03.2012, 08:23:32
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Checkbox in BD-Tabelle schreiben
Solange dies hier
PHP-Code:
$_SERVER["PHP_SELF"]
noch im Code ist/bleibt, gibt es von meiner Seite keine Unterstützung (mehr).
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
22.03.2012, 08:31:16
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
|
|
AW: Checkbox in BD-Tabelle schreiben
Versuch mal dieses Testskript.
Das könnte man als eine der möglichen Lösungen nutzen.
PHP-Code:
<html>
<head>
<title>test</title>
</head>
<body>
<?php
$sql = "SELECT id, auto FROM fahrzeug";
if (isset($_REQUEST['checkbtn'])) {
echo '<pre>';
print_r($_REQUEST);
echo '</pre>';
}
?>
<form action="<? echo $_SERVER['SCRIPT_NAME'].'?id=123';?>" method="post">
<table>
<tr>
<td style="width:155px">Fahrzeug</td>
<td>reservieren:<input type="checkbox" name="checkbtn" value="1"> frei:<input type="checkbox" name="checkbtn" value="0">
<tr>
<td style="width:15px"><input type="submit" value="Senden" name="submit"></td>
<tr>
</table>
</form>
</body>
</html>
|
22.03.2012, 12:46:11
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Checkbox in BD-Tabelle schreiben
Zitat:
Zitat von syntax
Habe das jetzt mit Echo überprüft und er gibt mit bei nicht ausgewählter Checkbox die ID's nicht aus.
|
Jo. PHP und MySQL sind so gemein und machen genau das, was Du getippert hast.
Zitat:
Wenn Ihr noch andere Fehler findet bin ich für jeden Hinweis wie immer sehr Dankbar :)
|
Halte Dich einfach mal an EVA:
Eingabe
Verarbeitung
Ausgabe
Es ist sinnfrei, das SELECT vor dem UPDATE zu erledigen.
Zitat:
PHP-Code:
$_SERVER["PHP_SELF"]
|
PHP_SELF ist böse! Potentielles Cross Site Scripting (XSS)!
Aber das:
Zitat:
PHP-Code:
<? echo htmlspecialchars($_SERVER["PHP_SELF"]);?>
|
ist Blödsinn. Im Scriptnamen gibt es (normalerweise) keine Specialchars.
Verwende das:
PHP-Code:
$_SERVER["SCRIPT_NAME"]
|
24.03.2012, 20:46:40
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 44
Beiträge: 46
|
|
AW: Checkbox in BD-Tabelle schreiben
Hallo Leute habs jetzt soweit erstmal hinbekommen,
da es mit einer Checkbox nicht ging, hab ich einfach eine zweite genommen die mir den Status als 0 setzt.
Mein letztes anliegen zu diesem Thema ist, das ich, wenn der jeweilige Wert bei Status steht die Checkbox einen Haken hat.
Mein Problem ist, das ich mit den Klammern setzen in der If-Anweidung nicht richtig klar komme.
Habe jede Variante die ich im Netz gefunden habe durchprobiert, allerdings kommen immer wieder neue Fehler .
Über Hilfe bzw. einen Tipp in die richtige Richtung wäre ich wie immer Dankbar.
Danke und schönes WE.
PHP-Code:
<html> <head> <title>test</title> </head> <body> <?php include("../php/connect.php");
$sql = "SELECT id, auto, status FROM fahrzeug";
$abfrageergebnis = mysql_query( $sql ) or trigger_error(mysql_error(),E_USER_ERROR);
if (isset($_REQUEST['checkbtn'])) { foreach ($_REQUEST['checkbtn'] as $value){ mysql_query ("UPDATE fahrzeug SET status='1' WHERE id='$value'") OR die(mysql_error()); } }
if (isset($_REQUEST['uncheckbtn'])) { foreach ($_REQUEST['uncheckbtn'] as $value){ mysql_query ("UPDATE fahrzeug SET status='0' WHERE id='$value'") OR die(mysql_error()); } }
$checked = $result['status'];
?>
<form action="<? $_SERVER["SCRIPT_NAME"] ?>" method="post"> <table> <?PHP while ($datensatz = mysql_fetch_array( $abfrageergebnis )) { echo '<tr>'; echo '<td style="width:155px">' . $datensatz['auto'] . '</td>'; echo '<td style="width:15px"><input name="checkbtn[]" type="checkbox" value="'.$datensatz['id'].'" ' . if ($checked == 1) echo 'checked'; .' ></td>'; echo '<td style="width:15px"><input name="uncheckbtn[]" type="checkbox" value="'.$datensatz['id'].'" 'if ($checked == 0) echo 'checked'; '></td>'; echo '<tr>'; } ?> <td style="width:15px"><input type="submit" value="Senden" name="submit"></td> </table> </form> </body> </html>
Geändert von syntax (24.03.2012 um 20:57:32 Uhr)
|
24.03.2012, 21:41:02
|
Anfänger
|
|
Registriert seit: Mar 2012
Ort: Düren
Alter: 33
Beiträge: 5
|
|
AW: Checkbox in BD-Tabelle schreiben
Versuche es doch mal so:
PHP-Code:
<html> <head> <title>test</title> </head> <body> <?php // incudieren der MySQL Verbindung (denke ich mal) include("../php/connect.php");
// Abfrage wennn der User Form abschickt: if(isset($_POST['submit'])) { foreach($_POST['checkbox'] as $key => $val) { // ID für die Abfrage gesichert nach: http://www.selfphp.de/forum/showpost.php?p=75460&postcount=5 $id = isset($_POST['id'][$key]) ? $_POST['id'][$key]+0 : 0; // $val ist dann der Wert ob makiert oder nicht makiert $status = isset($val) && $val != "" && $val <= 1 ? $val+0 : 0; // Nur eintragen wenn die ID größer 0 ist. if ($id > 0) { // MySQL Query: mysql_query ("UPDATE fahrzeug SET status='".$status."' WHERE id='".$id."'") OR die(mysql_error()); } } }
// Form erstellen: echo "<form action='".$_SERVER['SCRIPT_NAME']."' method='post'>"; // Tabelle: echo "<table border='0' cellpadding='0' cellspacing='0'>"; // Datenbank Abfrage $sql = "SELECT id, auto, status FROM fahrzeug"; $result = mysql_query( $sql ) or trigger_error(mysql_error(),E_USER_ERROR); // Schleife while ($data = mysql_fetch_array($result)) { echo "<tr>"; // Auto echo "<td style='width: 155px;'>".$data['auto']."</td>"; // CheckBox echo "<td style='width: 15px;'><input type='checkbox' name='checkbox[]'".($data['status'] == 1 ? " checked='checked'" : "")." /></td>"; // ID aber versteckt echo "<input type='hidden' name='id[]' value='".$data['id']."' />"; echo "</tr>"; // Zeile Ende } // Button echo "<tr><td colspan='2' align='center'><input type='submit' value='Absenden' name='submit' /></td></tr>"; echo "</table>"; // Ende Tabelle echo "</form>"; // Ende Form ?> </body> </html>
|
25.03.2012, 11:27:25
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
|
|
AW: Checkbox in BD-Tabelle schreiben
Dein SELECT muss entsprechend erweitert werden, damit du den vorhandenen Status aus der DB-Tabelle bekommst. Damit kanst du dann auf "checked" prüfen.
PHP-Code:
<?php $sql = "SELECT id, auto, status FROM fahrzeug"; $abfrageergebnis = mysql_query( $sql ) or trigger_error(mysql_error(),E_USER_ERROR); ?>
<form action="<?php echo $_SERVER["SCRIPT_NAME"] ?>" method="post"> <table> <?PHP while ($datensatz = mysql_fetch_array( $abfrageergebnis )) { if ($datensatz['status'] == 1) { $checked_1 ='checked';} if ($datensatz['status'] == 0) { $checked_2 = 'checked';} echo '<tr>'; echo '<td style="width:155px">' . $datensatz['auto'] . '</td>'; echo '<td style="width:15px"><input name="checkbtn[]" type="checkbox" value="'.$datensatz['id'].'" ' . $checked_1 .' ></td>'; echo '<td style="width:15px"><input name="uncheckbtn[]" type="checkbox" value="'.$datensatz['id'].'" '.$checked_2. '></td>'; echo '<tr>'; } ?> <td style="width:15px"><input type="submit" value="Senden" name="submit"></td> </table> </form>
Geändert von urvater (25.03.2012 um 11:46:19 Uhr)
|
25.03.2012, 13:07:03
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 44
Beiträge: 46
|
|
AW: Checkbox in BD-Tabelle schreiben
Ja genau das ist es was ich gesucht habe, vielen Danke Urvater.
Ich hatte das so ähnlich am Anfang aber ich habe es in den oberen PHP Code eingefügt und nicht ins <FORM> Element. Und da hat er mir immer gesagt das die Werte nicht definiert seien, dachte ich das liegt wieder an meinem Code deshalb hab ich versucht das anders zu lösen. Bin aber forh das ich nahe dran war :)
Wenn ich jetzt zwischen meinen 2 Checkboxen switchen will, soll heißen wenn ich auf "checkbtn" klicke soll der "uncheckbtn" inaktiv werden!
Löse ich das am besten auch mit PHP als Schleife oder lieber mit JavaScript?
PS.: Wenn eine von beiden Checkboxen aktiv ist bring er mir bei der anderen das der Wert nicht definiert sei, habe diese Fehlermeldung mit einem @ vor der Varialbe in meiner Checkbox gelöst, ich hoffe das dasss so OK ist oder habe ich damit eine Sicherheitslücke bzw. einen Fehler in meinem Script?
PHP-Code:
echo '<td style="width:15px"><input name="checkbtn[]" type="checkbox" value="'.$datensatz['id'].'" ' . @$checked_1 .' ></td>';
Danke
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:50:27 Uhr.
|